こんにちは。maruru01です。
テーブルにあるフィールドの追加や削除は、ADOの拡張機能であるADOXを使用します。
まず、ADOと同じように参照設定でライブラリを追加します。
ライブラリ名は「Microsoft ADO Ext.2.5 for DDL and Security」です。(バージョンが2.5でないかも知れません。)
そうしたら、後はADOとだいたい同じで、オブジェクト変数を宣言して、新規オブジェクトへの参照を代入します。
Dim cat As ADOX.Catalog
Dim Tbl As ADOX.Table
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
Set Tbl = cat.Tables![テーブル名]
'フィールドの追加
Tbl.Columns.Append "追加フィールド名", adWChar
'フィールドの削除
Tbl.Columns.Delete "削除フィールド名"
Set Tbl = Nothing
Set cat = Nothing
Append、Deleteメソッドの引数など詳しいことは、MSDN Libraryなどで調べて下さい。
では。
Dドライブ直下"db2000.mdb"ファイル、"ABC"テーブル、"AAA"テーブルを削除するサンプルです
'~~~~~~~~~~~~~~~~~~~~
Private Sub DelField_Click()
Dim stDbName As String
Dim stTblName As String
Dim stFidName As String
Dim stConnect As String
Dim ADOCN As ADODB.Connection
Dim ADOCAT As ADOX.Catalog
stDbName = "D:\db2000.mdb"
stTblName = "ABC"
stFidName = "AAA"
stConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & stDbName & ";"
Set ADOCN = New ADODB.Connection
ADOCN.Open stConnect
Set ADOCAT = New ADOX.Catalog
ADOCAT.ActiveConnection = ADOCN
ADOCAT.Tables(stTblName).Columns.Delete (stFidName)
End Sub
'~~~~~~~~~~~~~~~~~~~~
※参照設定にて「Microsoft ADO Ext 2.5 DLL and Security」をチェックしてください
御期待にそえれば...
お礼
やってみたところ、もののみごとに消えたり追加されたりしてくれました。 本当にありがとうございました!