• 締切済み

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

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

みんなの回答

  • syuninn
  • ベストアンサー率30% (12/39)
回答No.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

  • syuninn
  • ベストアンサー率30% (12/39)
回答No.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

関連するQ&A