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文ではそのまま利用できないことがあるので注意が必要。
実行前のテーブルリスト
実行結果
同名テーブルを作成しようとした時のエラーメッセージ
存在しないテーブルを削除しようとした時のエラーメッセージ