任意の場所に新規データベースを作るには?

解決


ひな  2003-10-02 04:30:07  No: 108911

すみません。
VBで新しいデータベースを任意の場所に作成
したいのですが、HELP等で確認しながらコー
ドを書いてみたのですが・・・
既定のWorkspaceにしか作れません。(T_T)

どうしたら任意の場所に新規でデータベース
を作れるのでしょうか?

VB6でJet3.0です。


魔界の仮面弁士  2003-10-02 05:11:24  No: 108912

> 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(〜〜〜)
のようなイメージになるかと。


ひな  2003-10-02 06:02:11  No: 108913

すみません。
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はちゃんと名前あります。。(^^;


魔界の仮面弁士  2003-10-02 09:49:43  No: 108914

> 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で定義した方が楽かも。。。(^^;


ひな  2003-10-02 20:26:36  No: 108915

># ADOXを使うより、CREATE TABLE SQLで定義した方が楽かも。。。(^^;

そうですよね!!
とりあえず、DBが出来たんだから無理してADOXを使うことないですよね!

すみませんでした。
応用が利かなくて・・・

がんばってみます!!
ありがとうございました!!  m(__)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加