|

|
|
 |
2.13 SQLの実行 |
 |
|
|
|
|
|
INSERT文やUPDATE文、DELETE文などのSQLを実行したいときの方法です。これらを実行するときは、データベースオブジェクトのExecuteメソッドを使います。
これらのSQLになぜExecuteというメソッドを使うかというと、INSERTやUPDATEなどのSQLは、実行しても返ってくる情報(レコードセットなど)がないからです。
|
|
|
|
|
|
|
|
|
|
Executeの使い方です。例では、住所録テーブルというテーブルの中にあるレコードの更新と、新しいレコードの追加を行っています。
まずはUPDATE文ですが、@でSQLを組み立ててAでデータベースオブジェクトのExecuteメソッドを使って実行しています。SQLはstrSqlという変数の中にあります。
次にINSERT文ですが、BでSQLを組み立ててCで実行です。同じくデータベースオブジェクトのExecuteメソッドを使って実行しています。SQLは、これも同じくstrSqlという変数の中にあります。
ちなみにDAOの場合は、追加するときにデータが重複してもエラーが出なかったり、更新対象のキーが無くてもエラーが出なかったりするので注意しましょう。
Sub prcExecute2000()
'Access VBA Tips
'2.13 SQLの実行
'Access2000以降での手順
Dim daoDB As DAO.Database
Dim strSQL As String
'データベースのオープン(データベースオブジェクトの作成)
Set daoDB = CurrentDb
'@レコード更新のSQLを定義
strSQL = "UPDATE 住所録テーブル " & _
" SET 漢字氏名 = '結城圭介' " & _
" ,カナ氏名 = 'ユウキケイスケ' " & _
" ,性別 = 1 " & _
" WHERE レコードキー = 1 "
'Aレコードの更新のSQLを実行します
daoDB.Execute strSQL
'Bレコード追加のSQLを定義
strSQL = "INSERT INTO 住所録テーブル " & _
" (漢字氏名 " & _
" ,カナ氏名 " & _
" ,性別) " & _
"VALUES ('埼京線之介' " & _
" ,'サイキョウセンノスケ' " & _
" ,1) "
'Cレコード追加のSQLを実行します
daoDB.Execute strSQL
'データベースのクローズ
daoDB.Close
End Sub
|
※Access2000以降の場合。ただし、参照設定が必要です。
Sub prcExecute97()
'Access VBA Tips
'2.13 SQLの実行
'Access97までの手順
Dim daoDB As Database
Dim strSQL As String
'データベースのオープン(データベースオブジェクトの作成)
Set daoDB = DBEngine.Workspaces(0).Databases(0)
'@レコード更新のSQLを定義
strSQL = "UPDATE 住所録テーブル " & _
" SET 漢字氏名 = '結城圭介' " & _
" ,カナ氏名 = 'ユウキケイスケ' " & _
" ,性別 = 1 " & _
" WHERE レコードキー = 1 "
'Aレコードの更新のSQLを実行します
daoDB.Execute strSQL
'Bレコード追加のSQLを定義
strSQL = "INSERT INTO 住所録テーブル " & _
" (漢字氏名 " & _
" ,カナ氏名 " & _
" ,性別) " & _
"VALUES ('埼京線之介' " & _
" ,'サイキョウセンノスケ' " & _
" ,1) "
'Cレコード追加のSQLを実行します
daoDB.Execute strSQL
'データベースのクローズ
daoDB.Close
End Sub
|
※Access97までの場合。
|
|
|
|
|