すみません。
VBで新しいデータベースを任意の場所に作成
したいのですが、HELP等で確認しながらコー
ドを書いてみたのですが・・・
既定のWorkspaceにしか作れません。(T_T)
どうしたら任意の場所に新規でデータベース
を作れるのでしょうか?
VB6でJet3.0です。
> VB6でJet3.0です。
Jet 4.0 (Access 2000相当)でも
Jet 3.5x(Access 97相当)でもなく、
Jet 3.0 (Access 95相当)ですか…?
> 既定のWorkspaceにしか作れません。(T_T)
DAOの Workspaceオブジェクトの事でしょうか。
(規定のWorkspaceだと、何か問題があるのでしょうか?)
任意のWorkspaceを生成し、その中でデータベースを作成したいなら、
Dim WS As DAO.Workspace
Dim DB As DAO.Database
Set WS = DBEngine.CreateWorkspace(〜〜〜)
Set DB = WS.CreateDatabase(〜〜〜)
のようなイメージになるかと。
すみません。
Jetは4.0でした。。
大きな勘違いです。 m(__)m
しかも、ADOで作ってみたかったんです。
間違い&言葉足らずですみません。
また、Q&A掲示板で検索したところ、ADOX
なるモノで作れることが解りました。
重ね重ねすみません。
で、DB作ってテーブルまで作れたのですが
テーブルの主キーはどうやって設定すれば
いいのでしょうか?
テーブルは以下のように作成しています。
Set catDB = New ADOX.Catalog
catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strPath
Set tblNew = New ADOX.Table
With tblNew
.Name = "TB_NKDATA"
With .Columns
.Append "Fld1", adDate
.Append "Fld2", adVarWChar, 3
.Append "Fld3", adVarWChar, 8
.Append "Fld4", adDate
.Append "Fld5", adSmallInt
.Append "Fld6", adVarWChar, 8
.Append "Fld7", adCurrency
.Append "Fld8", adCurrency
.Append "Fld9", adCurrency
.Append "Fld10", adCurrency
End With
End With
catDB.Tables.Append tblNew
Set catDB = Nothing
ちなみに、Fld1〜10はちゃんと名前あります。。(^^;
> Jetは4.0でした。。
ありゃ。(;_;)
> しかも、ADOで作ってみたかったんです。
ありゃりゃりゃ。(i_i)
> テーブルの主キーはどうやって設定すれば
> いいのでしょうか?
ADOX.Keyオブジェクトを使います。例えば、
objKey.Name = "PrimaryKey"
objKey.Type = adKeyPrimary
objKey.RelatedTable = "TB_NKDATA"
objKey.Columns.Append "Fld1"
objKey.Columns.Append "Fld5"
tblNew.Keys.Append objKey
という感じですかね。(未確認)
# ADOXを使うより、CREATE TABLE SQLで定義した方が楽かも。。。(^^;
># ADOXを使うより、CREATE TABLE SQLで定義した方が楽かも。。。(^^;
そうですよね!!
とりあえず、DBが出来たんだから無理してADOXを使うことないですよね!
すみませんでした。
応用が利かなくて・・・
がんばってみます!!
ありがとうございました!! m(__)m
ツイート | ![]() |