|
▼小僧 さん:
返信をありがとうございます。
せっかくいただいたモジュールがまとまっているのでそのまま使えるように
こちらで使わせていただこうと思います。
>・Call テーブルの作成2 のようにCall ステートメントで呼び出す
>提示させて頂いたコードについても、他のコード(恐らくCSVファイルの取込がありそうですね)
そうなのです。
それにテーブルの.Sizeや.AllowZeroLengthも必要なのでまだまだ頑張ります。
.CreateField(項目名, dbDate)
この書き方だと設定できないのですよねー。
またヘルプと格闘です。
>との連携についてでも、当方で回答できる限りお付き合いさせて頂きますよ。
いつもいつもありがとうございます。
たんさんにもご指摘いただいたのでまず自分で努力してみますね。
私の頭ではどうにもならなくなったら申し訳ありませんがまた宜しくお願い致します。
他にも5テーブルを作成しなくてはいけないけど、indexは3テーブルのみ必要なのでいただいたサンプルを分割して使おうと悪戦苦闘しています。
そのあとデータをcsvから入れて・・・(はぁ〜先は長い)
Sub テーブルの作成2()
'要参照設定 Microsoft DAO x.x Object Library
Dim MakeTBL As DAO.TableDef
Dim TName As String
TName = "T_Branch"
If DCount("*", "MSysObjects", "Name = '" & TName & "'") > 0 Then _
DoCmd.DeleteObject acTable, TName
Set MakeTBL = CurrentDb.CreateTableDef(TName)
With MakeTBL
.Fields.Append .CreateField("Company", dbText)
.Fields.Append .CreateField("Branch", dbText)
.Fields.Append .CreateField("Post", dbText)
.Fields.Append .CreateField("Address", dbText)
End With
CurrentDb.TableDefs.Append MakeTBL
Set MakeTBL = Nothing
Select Case Left(UCase(TName), 1)
Case "T", "M" 'トランとマスタ
Call インデックスの作成(TName)
Case "W" 'ワーク
Case Else
MsgBox "そんなテーブル聞いてない!!"
End Select
End Sub
Sub インデックスの作成(TName As String)
Dim MyDb As Database
Dim MakeTBL As DAO.TableDef
Dim Idx As DAO.Index
Set MyDb = CurrentDb
Set MakeTBL = MyDb.TableDefs(TName)
Set Idx = MakeTBL.CreateIndex("Ind1")
With Idx
.Fields.Append .CreateField("Company")
.Fields.Append .CreateField("Branch")
.Primary = True
End With
MakeTBL.Indexes.Append Idx
MakeTBL.Indexes.Refresh
CurrentDb.TableDefs.Refresh
Set MakeTBL = Nothing
Set Idx = Nothing
End Sub
なんとかこれでちゃんとindexが付いた確認まではとれたので
あとはこれを少しづつ変形させて使わせていただきます。
ありがとうございました。
|
|