Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


26908 / 76732 ←次へ | 前へ→

【55150】Re:エクセルからAccessのアクションクエリを実行する方法
発言  ichinose  - 08/4/16(水) 21:40 -

引用なし
パスワード
   ▼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でも大丈夫ですよ!!

試してみてください

2 hits

【55133】エクセルからAccessのアクションクエリを実行する方法 phoo 08/4/16(水) 15:22 質問
【55136】Re:エクセルからAccessのアクションクエリ... VBWASURETA 08/4/16(水) 16:31 回答
【55138】Re:エクセルからAccessのアクションクエリ... VBWASURETA 08/4/16(水) 16:35 発言
【55154】Re:エクセルからAccessのアクションクエリ... phoo 08/4/17(木) 12:32 質問
【55162】Re:エクセルからAccessのアクションクエリ... VBWASURETA 08/4/17(木) 15:16 発言
【55150】Re:エクセルからAccessのアクションクエリ... ichinose 08/4/16(水) 21:40 発言
【55153】Re:エクセルからAccessのアクションクエリ... phoo 08/4/17(木) 12:29 質問
【55155】Re:エクセルからAccessのアクションクエリ... ハチ 08/4/17(木) 13:50 発言
【55163】Re:エクセルからAccessのアクションクエリ... neptune 08/4/17(木) 15:35 発言
【55166】Re:エクセルからAccessのアクションクエリ... ichinose 08/4/17(木) 20:48 発言
【55167】Re:エクセルからAccessのアクションクエリ... VBWASURETA 08/4/18(金) 9:26 質問
【55160】Re:エクセルからAccessのアクションクエリ... Yuki 08/4/17(木) 15:08 発言
【55168】Re:エクセルからAccessのアクションクエリ... phoo 08/4/18(金) 15:49 お礼

26908 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free