|
▼phoo さん:
こんばんは。SQLでテーブル作成なんて滅多にやらないんですが・・・。
一例です。
以下に示すコードを含むブックと同じフォルダ内に予めSample.mdb というmdbファイルを作成して置いてください(テーブルが一つもない状態で結構です)。
新規ブックの標準モジュールに
'============================================================
Sub main()
Dim sql_str As String
Dim retcode As Long
If open_ado(ThisWorkbook.Path & "\sample.mdb") = 0 Then
sql_str = "drop table testTable"
Call exec_sql(sql_str)
sql_str = _
"CREATE TABLE testTable (ID integer CONSTRAINT tkey PRIMARY KEY ,氏名 varchar(20),住所 varchar(30));"
retcode = exec_sql(sql_str)
If retcode = 0 Then
MsgBox "正常終了"
Else
MsgBox Error(retcode)
End If
Call close_ado
End If
End Sub
別の標準モジュールに
ado関連のプロシジャー
'=====================================================================
Option Explicit
Public cn As Object
Function open_ado(fullname As String) As Long
On Error Resume Next
Dim link_opt As String
link_opt = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & fullname
Set cn = CreateObject("ADODB.Connection")
cn.Open link_opt
open_ado = Err.Number
On Error GoTo 0
End Function
'===========================================================
Sub close_ado()
On Error Resume Next
cn.Close
Set cn = Nothing
On Error GoTo 0
End Sub
'==========================================================
Function exec_sql(sql_str) As Long
On Error Resume Next
cn.Execute sql_str
exec_sql = Err.Number
On Error GoTo 0
End Function
として、mainを実行してください。
フィールド名 データ型 主キー
ID 整数型 主キー
氏名 テキスト型 20文字制限
住所 テキスト型 30文字制限
というテーブルが作成されます。
又、
>また、既存テーブルのレコードをすべて一括で削除する方法も教えていただければ。
は、
Delete * from testTable
というSQLでいけると思います。
上記は、ADOで行っていますが、DAOでも大丈夫ですよ!!
試してみてください
|
|