Function useODBCWorkspace()
'ODBCワークスペースを使ったデモ
'========================================================================
'ODBCワークスペースでレコードを全てデバッグ出力する
Dim wks As Workspace, con As Connection
Dim qdf As QueryDef, rs As Recordset
Dim SQL As String, conStr As String
'ODBCワークスペースを開きPostgreSQLへ接続します
Debug.Print "PostgreSQLへ接続しています."
conStr = "ODBC;DATABASE=TEST;UID=postgres;FILEDSN=TEST;"
Set wks = CreateWorkspace("", "admin", "", dbUseODBC)
Set con = wks.OpenConnection("", dbDriverNoPrompt, False, conStr)
Debug.Print "QueryDefからレコードセットを開いています."
SQL = "SELECT * FROM zaiko ;"
Set qdf = con.CreateQueryDef("", SQL)
Set rs = qdf.OpenRecordset
Debug.Print "レコードセットのデータを全て表示します."
Do Until rs.EOF
Debug.Print rs!hinmei & " => " & rs!zaiko
rs.MoveNext
Loop
rs.Close
'また、QueryDefでSQLを発行し、データを更新します
Debug.Print "SQLを発行します."
SQL = "UPDATE zaiko SET zaiko = 100 WHERE hinmei = 'green' ;"
qdf.SQL = SQL
qdf.Execute
Debug.Print qdf.RecordsAffected & "件のレコードを更新しました."
qdf.Close
'もう一度レコードセットを開いて変更を確認します
Debug.Print "再びレコードセットを開いています."
SQL = "SELECT * FROM zaiko ;"
Set qdf = con.CreateQueryDef("", SQL)
qdf.SQL = SQL
Set rs = qdf.OpenRecordset
Debug.Print "もう一度レコードセットのデータを表示します."
Do Until rs.EOF
Debug.Print rs!hinmei & " => " & rs!zaiko
rs.MoveNext
Loop
rs.Close
qdf.Close
con.Close
wks.Close
Debug.Print "デモ終了."
End Function