アプリ版:「スタンプのみでお礼する」機能のリリースについて

AccessVBA でフォームからテーブルを修正したいです。

[Forms]![メイン]![cmb_氏名選択](コンボボックス)から名前を選択して郵便番号と住所を表示させることはできたのですが、住所と郵便番号を修正すると、rs.Update でエラーになってしまいます。

どなたか解決方法を教えてください。

ソースは下記になります。

Private Sub cmd修正_Click()

Dim rs As New ADODB.Recordset
Dim cn As ADODB.Connection

'---オブジェクト変数へ代入
Set cn = Application.CurrentProject.Connection
rs.Open "名簿", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

'レコードを修正する
If Not rs.EOF Then
rs!郵便番号 = [Forms]![メイン]![txt郵便番号]
rs!名前 = [Forms]![メイン]![cmb_氏名選択]
rs!住所 = [Forms]![メイン]![txtcmb]
'更新する
rs.Update '←ここでエラーになる。
End If

'---閉じる
rs.Close
cn.Close

MsgBox "修正しました"

End Sub

A 回答 (2件)

rs.Open "名簿", CurrentProject.Connection, adOpenKeyset, adLockOptimistic



rs.Open "select * from 名簿 where 名前='" & cmb_氏名選択 & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

それと
Set cn = Application.CurrentProject.Connection
としてるから
rs.Open "select * from 名簿 where 名前='" & cmb_氏名選択 & "'", cn, adOpenKeyset, adLockOptimistic
とするか、
Dim cn As ADODB.Connection
Set cn = Application.CurrentProject.Connection
cn.Close
はいらない。
それと、詳しくないのだが、openしてないのに
cn.Close
は必要なのか?

cmd修正_Click()
でよばられてるので、そのフォームのVBAに書いているので、
[Forms]![メイン]![txt郵便番号]
などは
txt郵便番号
または
Me.txt郵便番号
でいいのではないか?

ところで名前をキーにすると同姓同名の場合は困らないか?

Private Sub cmd修正_Click()
Dim rs As New ADODB.Recordset
rs.Open "select * from 名簿 where 名前='" & cmb_氏名選択 & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If Not rs.EOF Then
rs!郵便番号 = Me.txt郵便番号
rs!名前 = Me.cmb_氏名選択
rs!住所 = Me.txtcmb
rs.Update
MsgBox "修正しました"
Else
MsgBox "データがありません"
End If
rs.Close
End Sub
    • good
    • 0

Private Sub cmd修正_Click()



Dim rs As New ADODB.Recordset
Dim cn As ADODB.Connection

'---オブジェクト変数へ代入
Set cn = Application.CurrentProject.Connection
rs.Open "名簿", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

'レコードを修正する
If Not rs.EOF Then
rs.edit
else
rs.addnew
End If
rs!郵便番号 = [Forms]![メイン]![txt郵便番号]
rs!名前 = [Forms]![メイン]![cmb_氏名選択]
rs!住所 = [Forms]![メイン]![txtcmb]
'更新する
rs.Update '←ここでエラーになる。


'---閉じる
rs.Close
cn.Close

MsgBox "修正しました"

End Sub

試してはいません。

この回答への補足

rs.edit

でとまりました。

補足日時:2008/06/18 14:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!