SQL文でテーブルを追加・削除する
テーブル追加
Sub SQLで新規テーブル作成()
Dim myCon As New ADODB.Connection
Dim conStr As String, DBName As String, mySQL As String
'接続するデータベースと接続文字列
DBName = ThisWorkbook.Path & "\mdb\newDB.mdb"
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName
'新規テーブル作成のためのSQL
mySQL = "CREATE TABLE 商品マスタSQL (" & _
"商品ID TINYINT NOT NULL PRIMARY KEY," & _
"商品名 CHAR(20)," & _
"単価 MONEY" & _
");"
'対象mdbファイルに接続し、SQL文を実行してテーブル作成
With myCon
.Open conStr
.Execute mySQL
.Close
End With
Set myCon = Nothing
End Sub
テーブル削除
Sub SQLでテーブル削除() Dim myCon As New ADODB.Connection Dim conStr As String, DBName As String '接続するデータベースと接続文字列 DBName = ThisWorkbook.Path & "\mdb\newDB.mdb" conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBName '対象mdbファイルに接続し、SQL文を実行してテーブル削除 With myCon .Open conStr .Execute "DROP TABLE 商品マスタSQL のコピー;" .Close End With Set myCon = Nothing End Sub
mdbファイルに新規テーブルを追加するにはADOXオブジェクトを使用する方法以外にADOのConnectionオブジェクトやCommandオブジェクトを利用して「CREATE TABLE」命令を含むSQLを実行する方法もある。
テーブルを削除したい場合には、「DROP TABLE」命令を含むSQLを実行する方法もある。
Access(mdb)やSQL Server 以外のデータベースで使用していたSQL文ではそのまま利用できないことがあるので注意が必要。
実行前のテーブルリスト
実行結果

同名テーブルを作成しようとした時のエラーメッセージ
存在しないテーブルを削除しようとした時のエラーメッセージ

