カーソル位置づけでのデータ更新を行うサンプルコードについて説明します。
本サンプルコードは、rdoResultsetオブジェクトを使用してデータ更新を行います。rdoResultsetオブジェクトに行が1行もない場合には行を挿入し、1行以上ある場合には1行目を更新します。
アプリケーションの手順
コネクションを接続します。詳細は、“C.2.1 接続および切断”を参照してください。
rdoConnection.OpenResultsetメソッドでrdoResultsetオブジェクトを生成します。
データを編集します(行がない場合は行を挿入します)。
rdoResultset.BOFプロパティでカレント行がBOFかを確認します。
rdoResultset.EOFプロパティでカレント行がEOFかを確認します。
rdoResultset.AddNewメソッドでrdoResultsetオブジェクトに新しい行を作成します。
rdoResultset.Editメソッドでカレント行の値を編集できるようにします。
rdoColumn.Valueプロパティへ値を設定します。
rdoResultset.UpdateメソッドでrdoResultsetオブジェクトの編集内容によりINSERT文かUPDATE文を実行します。
rdoResultset.CloseメソッドでrdoResultsetオブジェクトを閉じます。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“C.2.9 エラー処理”を参照してください。
'オブジェクト宣言 Dim Env As rdoEnvironment Dim Con As rdoConnection Dim Rst As rdoResultset 'rdoEnvironmentオブジェクトの生成 Set Env = rdoEngine.rdoEnvironments(0) On Error GoTo ErrorProc '1. コネクション接続 Set Con = Env.OpenConnection("DSN01", rdDriverNoPrompt, _ False, "UID=USER01;PWD=PASS01;") '2. rdoResultsetオブジェクトの生成 Set Rst = Con.OpenResultset("SELECT * FROM TESTTBL", _ rdOpenStatic, _ rdConcurLock, _ rdExecDirect) '3. データの編集(rdoResultsetに1行もデータがない場合は行を追加する) If Rst.BOF And Rst.EOF Then Rst.AddNew Else Rst.Edit End If Rst.rdoColumns("KEY_C").Value = 300 Rst.rdoColumns("DEC_C").Value = 4444.444 Rst.rdoColumns("DAT_C").Value = "2007/04/10" Rst.rdoColumns("CHA_C").Value = "UPDATE DATA" '4. INSERT文/UPDATE文の実行 Rst.Update 'メッセージボックスの表示 MsgBox "行を更新しました", vbOKOnly, "Normal End" '5. rdoResultsetオブジェクトを閉じる Rst.Close '6. コネクション切断 Con.Close '7. オブジェクトの破棄 Set Rst = Nothing Set Con = Nothing Set Env = Nothing Exit Sub 'エラー処理 ErrorProc: 'エラー処理ルーチンを記述します