• 締切済み
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数252
  • ありがとう数1

みんなの回答

  • 回答No.2
  • syuninn
  • ベストアンサー率30% (12/39)

すいません。顧客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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • access2000でいつのまにかレコードの順番が変わっているんですけど、なぜでしょう?

    visual basicで簡単なデータベースを利用したプログラムを作っています。 データをaccess2000で作っています。 access2000にデータをある程度打ち込んだ後、 visual basicで作ったプログラムでデータにアクセスすると データのトップの位置が変わっています。 アクセス2000で作ったデータのテーブルの中の レコードの順番は、見た目上変わってないのですが visual basicで作ったプログラムからデータにアクセスすると いつのまにか順番が変わっています。 visual basicのなかのadodc1.Recordset.Movefirstで テーブルの1番最初に行こうとすると なぜか途中のデータが1番最初と定義されています。 アクセス2000から、作ったデータのテーブルを開いて ツールバーのレコードからフィルタに行って そこからフォームフィルタをクリックすると テーブル名:フォームフィルタというフォームが表示されますよね。 そこで、表示されるフォームのIDフィールドにある 下向きの三角矢印をクリックすると 作ったデータのIDの順番が変わって表示されています。 いったい何が起こっているのでしょうか?

  • ACCESS2000のオートナンバー型について

    OSはWIN98です。ACCESS2000です。 ACCESS2000にてテーブルの主キーのフィールド(追番)に オートナンバー型を設定しました。 テーブルにデータを仮に100書きこんだとします。 その後に、その100個のデータを削除します。 そして、削除された後の最初のレコードにデータを 書きこもうとすると追番のフィールドが "101" に なってしまいます。新たに書きこむ時に追番を "1" にすることはできないでしょうか? 皆様よろしくお願いします。

  • ACCESS2000について・・・

    よろしくお願いします。 ACCESS2000のテーブルにあるデータを、フォームで表示するたびに50音順に並び替える方法はありますでしょうか? テーブルにあるデータは、逐次増加するものと考えてください。 よろしく、お願いいたします。

  • 回答No.1
  • syuninn
  • ベストアンサー率30% (12/39)

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

  • Access2000でのレコードの削除と移動

    ccess2000で テーブルがA と Bあり テーブルAは一時保存用で最終的にBに保存しようとしてます。 まず、データをフィールド1が空欄でAに保存して、後にそのデータをフォームで呼び出し、フィールド2を入力後テーブルBに保存その呼び出したカレントレコードのみ削除したいのですが、どうすればいいのでしょうか> フォームは連結されていません。 可能であればサンプルコードをいただくと助かります。 お願い致します。

  • ACCESS2000のフォームの表示について

    ACCESS2000の初心者です。AとBの2つのフォームがあり、それぞれテーブルが別ですが、ID名が同じにしてあります。 例えば、Aフォームを開いて、ID番号100を閲覧しているとき、Bフォームを開くと、BフォームのID番号100のデータを閲覧できる方法はどうすればよろしいのでしょうか。いろんな参考書をみてみたりしましたが、いまいちピンポイントな回答がありません。よろしくお願いいたします。

  • Access2000フォームにリレーションしたテーブル内容を入れたい

    Access2000フォームにリレーションしたテーブル内容を入れたい Access2000を利用していますが、フォームにリレーションしたテーブル内容を表示したいです。 具体的には 顧客情報テーブルのフォームに履歴テーブルの情報や、入金テーブルなどを表示したいです。 サブシートでは見づらく入力ミスとかが発生してしまうので・・ よろしくお願いします。

  • ACCESS2000検索の指示

    ACCESS2000は超初心者です。 先日から取引先住所録を作り始めました。 テーブルには「取引先住所録」という名前で 取引先住所録ID、略称、会社名、部署名、氏名、郵便番号、住所、TEL、FAX、携帯、メールアドレス、備考 という、12項目を作りました。 略称は例えば「なにぬねの株式会社」であれば「ナ」というように、頭文字をカタカナ1文字で分類しています。 フォームは完成しています。 やりたいことはフォームに略称を手入力する欄を作っておき、その略称に値する会社名と氏名をコンボボックスに表示させ、そのリストからクリックしたものの情報を表示したいと考えております。 何処にどの様に指示をすればいいのか判らないのです。 よろしくお願いいたします。

  • Access2000でメインサブフォーム

    テーブル1 商品ID 数値型(主キー) 商品名 テキスト型 ------------------ テーブル2 売上ID  数値型(主キー) 商品ID  数値型 月日   日付型 売上個数 数値型 --------------------- 以上のようなテーブルがあり、テーブル1を「メイン」テーブル2を「サブ」のメインサブフォームを作成しました。 しかし、「サブ」のデータが多いため、さらに、サブフォームの日付フィールドを使い、抽出をしたいのですが、方法がわかりません。(例えば、9/1以上9/10以下のような抽出) いろいろやってみは見たのですが、思うようにできません。メインサブフォームでさらにサブフォームのデータを抽出するということは無理なのでしょうか?

  • ACCESS2000のフォームに条件書式を設定するには??

    ACCESS2000について A,B,Cというテーブルを作成しています。 Aには顧客データが保存されているとします。(主キーあり) 例)山田   田中   山本 Bには商品データが保存されているとします。(主キーあり) 例)りんご   いちご   ばなな Cには購入データが保存されているとします。(主キーなし) ※同じ顧客は同じ商品を購入できないものとして考えます。 例)山田 りんご   山田 いちご   田中 いちご   山本 りんご Cの購入データをみて、重複している商品(例:りんごといちご) に色づけをしたいと考えています。 テーブルでは色づけはできないと思うのでCをフォームにしてみた のですが、「重複データに色をつける」という条件式がわからず 悩んでいます。どなたかよい方法があれば教えて頂けないでしょうか。 よろしくお願いします

  • ACCESS2000

    ACCESS2000を使用しています。 あるテーブルの50項目のデータをスクロールバーを使い、フィールド名&値を表示したいと思っていますが、方法がわかりません。 項目が多すぎるので、何とか省スペースで表示させたいのですが。。。 何かいい方法があれば教えてください。 よろしくお願いいたします。

  • ACCESS2000について

    こんにちは。 ACCESS2000のテーブルにあるフィールドのデータを、上から一つずつ、「MsgBox」で表示させていく方法を教えてください。 データは上から順番で、特に何の条件も無く、単純に上から(古いデータから)順番に表示できれば良いだけなのですが・・・。 すみません、全然分からないので教えてください。 お願いいたします。

  • Access2000で困ってます

    お世話になります Access2000で困っています あるデータベース(A)でVBAをさわっていたら おかしくなってしまいました そこで一週間ほど前にBackupのつもりで ファイル名を変えて保存した同じデータベース(B)を 使おうと思うのですがこの一週間であるテーブルのデータを 変更しています どのレコードのどのフィールドを変更したのかわかりません そこでデータベース(A)のテーブルとデータベース(B)のテーブルを 比較照合したいのですがどうすればうまくできるでしょうか? アドバイスお願いします

  • Access2000(>_<)

    Access2000を使っています。 既存のデータベースからレコードを削除できないように設定したいと思っています。 そこで、フォームのデザインにて、フォームのプロパティを開き、「データ」タブで「削除の許可」を「いいえ」にしてから閉じてみたのですが、試しにテーブルでレコードを削除してみると、削除できてしまいます。 再びフォームのプロパティを見ると、「削除の許可」が「はい」に戻っています。変更が保存されていないようです。 同様に、特定のフィールドの上書きを禁止したいので、同じくフォームのデザインで、上書きを禁止したいフィールドのテキストボックスのプロパティの「データ」タブにて、「編集ロック」を「はい」にしてから閉じましたが、この変更も保存されておらず、編集ができるままの状態です。 どうすれば変更を保存できるのでしょうか…。 またほかに、レコードの削除を禁止する方法、特定のフィールドのみ上書きを禁止する方法があれば教えてください。初心者なのでわかりやすく教えていただけると助かります。よろしくお願いします。