アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスで作成したデータベースがあります。
簡単にテーブルを追加するプログラムを作成したいのですが可能かしら?
現在[会費管理2]というテーブルが無いので[会費管理2]と言うテーブルを追加して、そのテーブルに各フィールドを作成したいのです。
作成したSet tbl = catDB.Tables![会費管理2] に
'以下追加したいフィールド
Set colAdo = New ADOX.Column
With colAdo
.Name = "数値1"
.Type = adInteger
.Attributes = adColNullable
End With
tbl.Columns.Append colAdo
Set colAdo = New ADOX.Column
With colAdo
.Name = "数値2"
.Type = adInteger
.Attributes = adColNullable
End With
tbl.Columns.Append colAdo
Set colAdo = New ADOX.Column
With colAdo
.Name = "数値3"
.Type = adInteger
.Attributes = adColNullable
End With
tbl.Columns.Append colAdo
Set colAdo = New ADOX.Column
With colAdo
.Name = "日付"
.Type = adDate
.Attributes = adColNullable
End With
tbl.Columns.Append colAdo
Set colAdo = New ADOX.Column
With colAdo
.Name = "金額"
.Type = adCurrency
.Attributes = adColNullable
End With
tbl.Columns.Append colAdo
Set colAdo = Nothing
Set tbl = Nothing
Set catDB = Nothing
cnn.Close
End Sub

A 回答 (2件)

大変申し訳ございません。


私の勉強不足と思います。

> Set tbl = catDB.Tables![会費管理2]

テーブルが無い時点で、上記はエラーとなる気がします。
というより、
![会費管理2]
という記述したことが無いので、申し訳ありません。

私では解決できないと思いますので、他の方の回答を待ってください。

失礼いたしました。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/01/18 13:32

提示されたコードの最後 cnn.Close が気になりますが、


自分のmdb 上に作るものとして、変数宣言部分も入れると、以下の様になるのでしょうか。
テーブル「会費管理2」は、ないものとして作成するものになります。

Private Sub Sample1()
  Dim cnn As ADODB.Connection
  Dim catDB As ADOX.Catalog
  Dim tbl As ADOX.Table
  Dim colAdo As ADOX.Column

  Set cnn = CurrentProject.Connection
  Set catDB = New ADOX.Catalog
  catDB.ActiveConnection = cnn
  Set tbl = New ADOX.Table
  tbl.Name = "会費管理2"

  Set colAdo = New ADOX.Column
  With colAdo
    .Name = "数値1"
    .Type = adInteger
    .Attributes = adColNullable
  End With
  tbl.Columns.Append colAdo
  
  Set colAdo = New ADOX.Column
  With colAdo
    .Name = "数値2"
    .Type = adInteger
    .Attributes = adColNullable
  End With
  tbl.Columns.Append colAdo
  
  Set colAdo = New ADOX.Column
  With colAdo
    .Name = "数値3"
    .Type = adInteger
    .Attributes = adColNullable
  End With
  tbl.Columns.Append colAdo
  
  Set colAdo = New ADOX.Column
  With colAdo
    .Name = "日付"
    .Type = adDate
    .Attributes = adColNullable
  End With
  tbl.Columns.Append colAdo
  
  Set colAdo = New ADOX.Column
  With colAdo
    .Name = "金額"
    .Type = adCurrency
    .Attributes = adColNullable
  End With
  tbl.Columns.Append colAdo

  catDB.Tables.Append tbl

  catDB.Tables.Refresh
  RefreshDatabaseWindow

  Set colAdo = Nothing
  Set tbl = Nothing
  Set catDB = Nothing
  Set cnn = Nothing
End Sub

この回答への補足

早速ありがとうございます。
実はデータファイルの指定があるのです。
当然![会費管理2]のテーブルはありません。
下記に一部を書き込みしますが、可能かしら?
お手数おかけいたします。感謝いたします。

Private Sub コマンド1_Click()
Beep
If (MsgBox("データをアップデートしますが宜しいですか? 作業は一瞬で終わりますよ!!") = 7) Then
End If
Dim cnn As New ADODB.Connection
Dim catDB As New ADOX.Catalog
Dim colAdo As ADOX.Column
Dim tbl As ADOX.Table
Dim strCon As String
Dim lIdx As Long
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;"
strCon = strCon & "Data Source=c:\ynet\Hz2data1.mdb"
cnn.Open strCon
catDB.ActiveConnection = cnn
Set tbl = catDB.Tables![会費管理2]

補足日時:2010/01/16 17:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!