SQL文でテーブルを追加・削除する

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文ではそのまま利用できないことがあるので注意が必要。

実行前のテーブルリスト

実行結果


同名テーブルを作成しようとした時のエラーメッセージ

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