こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Access2000 フォームからレコード検索

Access2000で質問です。

「顧客テーブル」を作ります。
顧客テーブルには以下のフィールドを設けます。

顧客ID(主キー)
名前
TEL
住所
変更住所

顧客IDから住所まではすでにデータが入っています。
「変更住所」に新しくデータを入れていきます。
その際に、フォームを利用したいと思っていますが、
新規フォーム(何もデータが入っていない)に顧客IDを入れたら、すでに顧客テーブルに入力されている名前、TEL、住所がパッと表示され、変更住所だけが空欄で表示されるようなフォームを作りたいと思います。
どのような方法がありますでしょうか?
ぜひお知恵を貸してください。よろしくお願いいたします。

投稿日時 - 2003-11-11 16:54:13

QNo.703007

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

すいません。顧客IDの更新後の[イベント プロシージャ]が
間違っていましたので訂正いたします。

Me!名前 = Null: Me!TEL = Null: Me!住所 = Null: Me!変更住所 = Null
Dim db As Database, trm As Recordset, tyuusitu As String
Set db = CurrentDb
Set trm = db.OpenRecordset("顧客テーブル", dbOpenDynaset)
tyuusitu = "顧客ID='" & Me![顧客ID] & "'"
trm.FindFirst tyuusitu
DoCmd.GoToControl "変更住所"
If IsNull(Me![顧客ID]) Then Me![顧客ID] = 0
DoCmd.FindRecord Me!顧客ID, acEntire, True, , True, , True
If Me!顧客ID <> trm!顧客ID Then MsgBox "No." & Me!顧客ID & " の顧客ID が見つかりません。@ 顧客IDを確認して下さい。@", vbCritical, "検索顧客IDエラー": Me!顧客ID = Null: Me!名前 = Null: Me!TEL = Null: Me!住所 = Null: DoCmd.GoToControl "顧客ID": Exit Sub
Me![名前] = trm![名前]: Me![TEL] = trm![TEL]: Me![住所] = trm![住所]
trm.Close

投稿日時 - 2003-11-17 00:58:29

ANo.1

AccessVBAを使用すれば簡単ですが馴れていないのなら参考にして下さい。
初めに非連結の住所変更フォームを作成します。
テキストボックスは、顧客ID・名前・TEL・住所・変更住所を作成し、顧客IDのイベントの更新後処理にコードビルダを起動し下記をコピー貼り付けして下さい。

Me!名前 = Null: Me!TEL = Null: Me!住所 = Null: Me!変更住所 = Null
Dim db As Database, trm As Recordset, tyuusitu As String
Set db = CurrentDb
Set trm = db.OpenRecordset("顧客テーブル", dbOpenDynaset)
tyuusitu = "顧客ID='" & Me![顧客ID] & "'"
trm.FindFirst tyuusitu
DoCmd.GoToControl "変更住所"
If IsNull(Me![顧客ID]) Then Me![顧客ID] = 0
DoCmd.FindRecord Me!顧客ID, acEntire, True, , True, , True
If Me!顧客ID <> trm!顧客ID Then MsgBox "No." & Me!顧客ID & " の納品票が見つかりません。@ 納品票番号を確認して下さい。@", vbCritical, "検索顧客IDエラー": Me!顧客ID = Null: Me!名前 = Null: Me!TEL = Null: Me!住所 = Null: DoCmd.GoToControl "顧客ID": Exit Sub
Me![名前] = trm![名前]: Me![TEL] = trm![TEL]: Me![住所] = trm![住所]
trm.Close

次に変更住所のイベントの更新後処理にコードビルダを起動し下記をコピー貼り付けして下さい。

Dim db As Database, trm As Recordset, tyuusitu As String
Set db = CurrentDb
Set trm = db.OpenRecordset("顧客テーブル", dbOpenDynaset)
tyuusitu = "顧客ID='" & Me![顧客ID] & "'"
trm.FindFirst tyuusitu
trm.Edit
trm![変更住所] = Me![変更住所]
trm.Update: trm.Close

投稿日時 - 2003-11-16 03:22:52

あなたにオススメの質問