• 締切済み

VBAでオプションボタンの更新ができるようにしたい

こんにちは。アクセスのVBAについてご質問です。「更新」をクリックすると、テーブルと非連結(なのかな?)のオプションボタン「変更の有無」でクリックしたボタンの更新ができるようにしたいのです。テーブルの項目名は「変更の有無(yes/no形式)」ですが、オプショングループには「opt有無」という名前を付け、「有」と「無」のボタンをつけました。おおまかにコードを載せてみます。これではだめなんでしょうか?どうぞよろしくお願いいたします。 Option Compare Database Dim cn As ADODB.Connection 'Connectionオブジェクト Dim rs As ADODB.Recordset 'Recordsetオブジェクト Private Sub Form_Load() Set cn = CurrentProject.Connection '[T許可書]テーブルからデータを取得 Set rs = New ADODB.Recordset rs.Open "T許可書", cn, adOpenKeyset, adLockOptimistic, adCmdTableDirect '変数selected貸出IDが0と等しくない(値がセットされている)のであれば、IDがその値のレコードを検索してカレントレコードにする If selected貸出ID <> 0 Then rs.Index = "PrimaryKey" rs.Seek selected貸出ID, adSeekFirstEQ End If 'ShowRecordプロシージャを呼び出し、フォームにカレントレコードを表示する Call ShowRecord End Sub Private Sub 更新_Click() Dim rtn As Integer 'メッセージボックスで押されたボタンの情報が入る '更新確認 rtn = MsgBox("このレコードを更新してよろしいですか?", vbQuestion + vbYesNo, "確認") If rtn = vbYes Then 'カレントレコードを編集 rs.Update rs!変更有無, rs!変更有無 MsgBox "更新完了しました。", vbInformation, "確認" Else End If End Sub

みんなの回答

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

オプションボタンの[有]と[無]のオプション値は-1と0になっていますでしょうか。 rtn = MsgBox(・・・ とするとrtnにMsgBoxでクリックされた戻り値が代入されてしまうのでは。OKなら1が戻ってしまいますが・・。 Private Sub 更新_Click() Dim rtn As Integer If MsgBox("このレコードを更新してよろしいですか?", vbQuestion + vbYesNo, "確認") = vbYes Then rs.Update "変更有無", rtn MsgBox "更新完了しました。", vbInformation, "確認" Else End If End Sub こんな感じではどうでしょうか。

DT50
質問者

お礼

ご回答ありがとうございました。 自分でうまく完成させることができました。

関連するQ&A

専門家に質問してみよう