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
No.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
No.1
- 回答日時:
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
試してはいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
郵便番号未記入で発送。果たし...
-
郵便番号を書き間違えた郵便物...
-
郵便番号検索
-
カナダへの手紙
-
住所に「その他」と書いている...
-
個別の郵便番号がある住所宛に...
-
楽天クレジットカードで勤務先
-
楽天銀行の新規の口座開設につ...
-
通信事務郵便から住所確認のは...
-
「あて所に尋ねあたりません」...
-
郵便物について
-
転居先の住所を大家さんに教え...
-
名前は違ってても、宅急便など...
-
転居届を出さずに郵便物を配達...
-
引越し後 前の住所に来るDMは...
-
荷物が引っ越し前の住所に届け...
-
1ヶ月程度の不在。郵便物の転...
-
一人暮らしの場合の郵便局への...
-
「転送不要」郵便を受け取る方...
-
源泉徴収票は新居に届きますか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
郵便番号未記入で発送。果たし...
-
住所に「その他」と書いている...
-
個別の郵便番号がある住所宛に...
-
郵便番号を書き間違えた郵便物...
-
ハガキの右上と左下の7つの四角
-
郵便番号 郵便物への記載は義...
-
スイスへ送るエアメールについて
-
通販サイトで、 住所に書き忘れ...
-
楽天銀行の新規の口座開設につ...
-
地名の字(あざ)について
-
北海道から道外に封筒で郵便物...
-
自分の家の郵便番号が分からな...
-
Ruby on Railsで住所自動入力作...
-
楽天クレジットカードで勤務先
-
クエリーで住所入力支援を使う方法
-
ゆうメール… 住所が違うのに届...
-
郵便番号が5桁でも届きますか? ...
-
AccessVBA でテーブルを修正したい
-
スマホのアダルトサイトに郵便...
-
郵便番号から住所をエクセルで
おすすめ情報