• 締切済み

accessでキーを入れると自動的に表示させたいのですが

もうすでに同じような質問があったのですが 直接解決できるようなものが見つからなかったので質問させていただきます(。>_<。) どなたか教えていただけるとありがたいです 今作っているT顧客データというテーブルには[顧客名]と[顧客番号]のフィールドがあります それでそのテーブルを基にして作ったF顧客データというフォームに[顧客名]を入力すると 自動的に[顧客番号]が入るようにしたいんです いろいろネットで調べたりして [顧客番号]の更新後処理に me.[顧客番号] = DLookup("[顧客番号]","顧客データ","[顧客名] = " & Forms![F顧客データ]![顧客名]) といれたのですがうまく表示されません どこがいけないのかご指摘いただけませんでしょうか? なおもう一つのやり方、コンボボックスのCOLUMNを使うやり方だと表示はされたのですが これだとテーブルの方に反映されませんでした(´・ω・`) ほんとにつたない質問で申し訳ないのですがご指導いただけたらと思います

みんなの回答

  • _rainman
  • ベストアンサー率84% (11/13)
回答No.3

回答番号:No2の「この回答への補足」についてですが、 イベントに書いた場合  顧客データには反映されません。 コントロールソースに書いた場合  顧客データには反映されないはずです。  ※実際には確認していないので試してください。

  • _rainman
  • ベストアンサー率84% (11/13)
回答No.2

指摘するようにシングルコーテーション囲えばこちらではうまくいきます。 (環境はWindowsXP・Access2003です。) 1.詳細はフォームの[顧客名]のイベント(更新後処理)に下記のコードを書く。 me.[顧客番号] = DLookup("[顧客番号]","顧客データ","[顧客名] = '" & Forms![F顧客データ]![顧客名] & "'") 2.フォームの[顧客番号]のデータ(コントロールソース)に下記のコードを入れる。 = DLookup("[顧客番号]","顧客データ","[顧客名] = '" & Forms![F顧客データ]![顧客名] & "'") 注意)Forms![F顧客データ]![顧客名]の前後をシングルコーテーションで囲っているのに注意してください。これがなければエラー「演算子が正しくありません」とでます。 シングルコーテーションで囲った部分は文字列ですよ、と言う意味です。

natsukiii
質問者

補足

本当に丁寧に教えてくださりありがとうございました(o^-^o) 教えていただいた通りに試してみます☆ もしこれでうまく値が表示された場合 その値は顧客データのテーブルには反映されるのでしょうか?

  • _rainman
  • ベストアンサー率84% (11/13)
回答No.1

>うまく表示されません。 とはどのようにうまく表示されないのでしょうか? 例えばなんらかのエラーとなるとか。 顧客名のデータ型がテキスト型ならシングルコーテーションをつけてみて下さい。 me.[顧客番号] = DLookup("[顧客番号]","顧客データ","[顧客名] = '" & Forms![F顧客データ]![顧客名] & "'")

natsukiii
質問者

補足

お答えしてくれる方がいて感謝しています(。>_<。) エラーは「演算子が正しくありません」ってでてきちゃいます ちなみに[顧客番号]も[顧客名]もテキスト型です

関連するQ&A

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • Access 項目ごとにフォールド全データ表示

    Access2010で質問です。 よろしくお願いいたします。 Tabにある顧客番号フィールド全てに対して、 商品番号ごとに、実績が無いデータも表示させたいです。 --------------------- ・Tab(顧客情報テーブル) 顧客番号 顧客名 ・Q1(売上実績クエリ) 顧客番号, 商品名(抽出条件 Forms![フォーム1]![商品番号] Or Forms![フォーム1]![商品番号2] ) 売上実績 ・Q2(完成クエリ) 顧客番号,商品名,売上実績 1 ,商品A ,0 2 ,商品A ,2 3 ,商品A ,10 1 ,商品B ,1 2 ,商品B ,0 3 ,商品B ,5 --------------------- 選択クエリでTabフィールドを全て表示させるように結合させると、 --------------------- ・Q2(完成クエリ) 顧客番号,商品名,売上実績 1 ,商品B ,1 2 ,商品A ,2 3 ,商品A ,10 3 ,商品B ,5 --------------------- という表示になりますが、 顧客番号×商品数(A、B)のデータ数を出したいです。 単純に商品名ごとにTabとQ2結合クエリを作成し、 後でまとめるという方法もありますが、 Q1「商品名」の抽出条件は今後増える予定があるため、 できるだけ少ない数のクエリで処理できるようにしたいと思っています。 もしお分かりになれば、教えていただけないでしょうか。 どうぞよろしくお願いいたします。

  • Access コンボボックスの絞り込み後の表示

    Access2002を使用しております。 コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか? 例として、次の3つのテーブルを基にデータベースを作成しております: メインテーブル フィールド名: ID 社名 担当者 社名テーブル ID   社名   住所 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    A社 2    B社  担当者テーブル ID   社名ID   担当者名  電話番号 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    1      木村 2    2      佐藤 3    1      田中 4    2      斎藤 メインテーブルを基にしてフォームを作成し、 「メイン」というフォーム名にして 「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。 「社名」フィールドの値集合ソースを「社名テーブル」から引き出し SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2  で設定し、社名をコンボボックスで選択できるようにしました。 そして 「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名)); で設定しました。 「社名」フィールドの「更新後処理」で Private Sub 社名_AfterUpdate()     Me!担当者.Requery End Sub を設定しました。 「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると 「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。 次のレコードに移り、「社名」コンボボックスで「B社」を選択すると 「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。 さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると 「担当者」欄が空欄で表示されます。 メインテーブルには全てデータは入力されています。 データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、 このようにデータ入力済みの場合は 最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも) 入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが 何か良い方法はないでしょうか? 出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・

  • アクセス テキストボックスに値を返す

    こんにちは アクセス2000で管理表を作っています。 工事マスタ 工事ID 工事名 顧客ID 担当ID 顧客マスタ 顧客ID 顧客名 〒 現住所 電話 ファックス メールアドレス (詳細は略) クエリA SELECT 工事マスタ.工事ID, 工事マスタ.工事名, 工事マスタ.顧客ID, 工事マスタ.担当ID, 工事マスタ.顧客担当ID FROM 工事マスタ; 上記のようなテーブル構成とクエリで フォームAを作成しています (コントロールソースはクエリA) フォームAに 顧客IDのコンボボックス顧客コンボを作り それを選択すると詳細が テキストボックス「〒TB」「現住所TB」「電話番号TB」「FAXTB」「メールアドレスTB」に反映するという形をとっています Private Sub 顧客コンボ_AfterUpdate() Me!顧客担当コンボ.Requery '内容反映ここから Me.〒TB = Me.顧客コンボ.Column(2) Me.現住所TB = Me.顧客コンボ.Column(3) Me.電話番号TB = Me.顧客コンボ.Column(4) Me.FAXTB = Me.顧客コンボ.Column(5) Me.メールアドレスTB = Me.顧客コンボ.Column(6) '反映ここまで End Sub うまくいっているように見えたのですが 全部のレコードが変更になっていることに 先程気づきました(T_T;) 調べてみると 非連結だから当たり前ということなのですが これを、各々のレコードで反映できる方法はないでしょうか?

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • アクセスでのリスト表示について。

    アクセス初心者です。フォームのコンボボックスにテキストボックスをつけて、コンボボックスには担当者コードテキストボックスには=cmb_担当者.column(1)等と書いて、担当者名をcolumnで表示するのは可能ですよね。リストボックスの中で一覧表を作成したのですが、今は数値ばかりが見えていて、訳が分かりません。テーブルへのデータはほとんど数値で入っていくようにしています。columnが使えたら、テキストでも表示されるので見やすくなると思うのですが、クエリでのcolumnの作成は可能なのでしょうか?

  • Accessについて。フォームでデータ入力

    超基本的な質問ですみません。 仮に下記のような構造のデータベースがあったとします。 テーブル 都道府県名 フィールド 都道府県 テーブル 住所    フィールド 都道府県 市町村 テーブル 顧客    フィールド 都道府県 市町村 顧客にデータを入れていくために"顧客情報入力"というフォームを作ります。 "都道府県"をコンボボックスで選択しました。 市町村のコンボボックスに上の"都道府県"で選択した都道府県の"市町村"だけを表示させるためにはどうしたら良いのでしょうか。 クエリについてはある程度理解していたつもりなのですが、頭が真っ白になってしまいました。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

専門家に質問してみよう