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

マイクロソフトアクセス2019で、
①テーブルa のフィールドcの値を、
テーブルb のフィールドcの値に更新したい
②更新は、テーブルaをソースにするフォームa上で行いたい。フォームaのカレントレコードのみ更新したい。
③フォームaのカレントレコードについて、フィールドdの値を入力したら、そのレコードのフィールドcの値を、
テーブルbのレコードで、フィールドdの値が入力した値と同じレコードの、フィールドcの値に更新する

ということがしたいです。(ややこしくてすいません)
当初、更新クエリを使用して、抽出条件に[フォームa]![ID]でカレントレコードを指定して、[テーブルb]![フィールドd]で、フィールドdが同じレコードを指定するのかな?と思ったのですが、うまくできず、、
(カレントレコードだけで無く、テーブルaのフィールドdの値が、テーブルbのフィールドdの値に同じものがあるレコード全てが更新されてしまいます)

どのようにすれば良いか、教えていただけませんか?更新クエリではなく、vbaで記述の方が良いのでしょうか?教えてください。

A 回答 (1件)

更新クエリ だと衝突なども気にしなくてはいけないし、


まだ保存されていないレコードでは対象にならないので無理かと。

フォームでの テキストボックスの更新後処理でやるのがいいかな。

フィールドD が テキスト型なら
Private Sub フィールドD_AfterUpdate()
Me.フィールドC = DLookup("フィールドC", "テーブルB", "フィールドD='" & Me.フィールドD & "'")
End Sub

数値型なら
Private Sub フィールドD_AfterUpdate()
Me.フィールドC = DLookup("フィールドC", "テーブルB", "フィールドD=" & Nz(Me.フィールドD, 0))
End Sub

とか。
    • good
    • 0
この回答へのお礼

できました。ありがとうございます!!

お礼日時:2022/06/04 22:13

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A