• ベストアンサー

アクセスのDLOOKUPについて

DLOOKUPについて質問です。入力フォームにて製品番号を入れると製品名が出るようにして入力を楽にしたつもりでした。その方法はコントロールソースに=DLooKUP("品名","部番一覧表","部番='"&[部番]&"'")と入力しました。これは他の相談室の過去ログから拾いました。が、しかしテーブルの品名が空欄なんです。入力フォームにはちゃんと出ているのにどうしてテーブルに反映されないのでしょうか?スーパー初心者で何とかここまでたどり着きました。どうか教えてください、宜しくお願いします。

  • ricoo
  • お礼率100% (2/2)

質問者が選んだベストアンサー

  • ベストアンサー
  • o23
  • ベストアンサー率36% (64/175)
回答No.2

>他の相談室の過去ログから拾いました。 ここで、テーブルにデータが入るとは書いてなかったと思います。 この場合テーブルからデータを参照してフォーム上に”表示するだけ”で、 書き込まれるわけではありません。 フォームの製品番号の更新後処理で[イベント プロシージャ]、 Private Sub 部番_AfterUpdate() Me![品名] = DLookup("品名", "部番一覧表", "部番='" & [部番] & "'") End Sub 等を行うか、マクロの場合は”値の代入”を行いましょう。 ※入力用のテーブル又はクエリーがフォームのコントロールソ-スになって いますか? 尚、更新前処理でフォームで入力した製品番号が部番一覧表テーブルにある かどうかのチェックをおこなうか製品番号の入力をコンボボックスにして 入力チェックを"はい"にするとかした方がよいでしょう。 上記の内容が、何を言っているのか全く検討もつかない場合は入門書などを 参考に勉強してください。

ricoo
質問者

お礼

勉強不足でした。申し訳有りませんでした。 いちから勉強し直します。ありがとうございました。

その他の回答 (1)

  • ma-demu
  • ベストアンサー率0% (0/2)
回答No.1

それはフォームにテキストボックスを二つ並べて左側に製品番号を入力すると、右側に製品名が出るって感じですか?  それで入力フォームを閉じてもテーブルに保存されていないってことなんですかね? それでしたらクエリの追加クエリを使ってみたらいかがですか???

ricoo
質問者

お礼

質問するのにはまだ早すぎました。勉強し直します。有難うございました。

関連するQ&A

  • 【Access97】DLookupについて

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

  • Access2000のDLOOKUPについて

    Access2000にて収支管理のDBを作成中です。 フォームのDLOOKUPの設定についてお聞きしたいのですが、 テーブル 「00_Account code」に 「Account code」と「Account code テキスト」があります。 これを 「01_収支テーブル入力_フォーム」にて「Account code」入力時に「00_Account code」テーブルから「Account code テキスト」抽出しようと思い下記のような式を入れています。 =DLookUp("[Account code テキスト]","[00_Account code]","[Account code] =[Forms]![01_収支テーブル入力_フォーム]![Account code] ") しかしフォームにて[Account code]を入力してエンターをしても表示されず、一度フォームを閉じてから再度開くと表示されるという現象におちいっています。 これを入力→エンター時に表示させる方法はありますでしょうか? 何かの設定かと思うのですが・・・ぶつかっています。 どなたかお教え願えると助かります。よろしくお願いいたします。

  • Access DlookUpのネスト

    Access 2010 です。 コントロールソースでの利用を想定しています。 DlookUpでDlookUpの結果を条件にネストする場合 =DLookUp("外フィールド1","外テーブル","[外フィールド2]=DLookUp(内フィールド,'内テーブル','rs('内フラグ')=Yes')") の様な利用の仕方をしたいのですが#エラーになってしまいます。 検索条件の =DLookUp(内フィールド,'内テーブル','rs('内フラグ')=Yes')") 単体では正しく取得出来ているので、 ネストする際のクォーテーション絡みなどで正しく値が取得できていないのでは と考えておりますが、正しくはどう記述するべきでしょうか?

  • Dlookup関数の使い方 (Access2007)

    まったくのAccess初心者です。Dlookup関数の使い方がどうやってもわからないので教えてください。 車種というテーブルには[車番]と[全長]というフィールドがあります。 データというテーブルに[車番]やその他([定員]や[車高]など)のフィールドがあり、フォーム入力で車番を入れると車種テーブルから全長を引っ張ってくるようにしたいのですが、どうすればいいでしょうか。 ネットや参考書で調べていますが、=dlookup(  )の中をどう書けばいいかさっぱりわかりません。 質問の書き方もおかしいかもしれませんが、よろしくお願いします。

  • dlookup関数が使えない

    ただいま、フォーム上のあるテキストボックスのコントロールソースに以下のような式を入れています。 「=DLookUp("[M00マスター]![個人名]","[M00マスター]","[M00マスター]![個人ID]=[K00オーナーテーブル]![個人ID]")」 このフォームは、K00オーナーテーブルがコントロールソースとなっています。 しかし、このテキストボックスには、エラーと出て、しかも、ずっと点滅し続けています。 この原因がお分かりになるかた、いませんでしょうか。 よろしくお願いします。

  • Access DLookUp関数について

    DLookup関数を使用して、フォーム上にテーブルの値を返したいと思い、 試行錯誤をしたのですが、思うように値が返されません。。。 どうかお力添え下さいますようお願い致します。 「得意先&出荷先」テーブルに「得意先コード」「名称」項目を設け、 「詳細入力」フォームの「得意先コード」に値を入力をすると、 「得意先名称」項目に、テーブルの「名称」項目の値を返す動作を設定したいのです。 私は、下記のように書きましたが、「#Type!」と表示され、思うような動作をしません。 =DLookUp("[名称]","[得意先&出荷先]","[得意先コード] = '" & [Forms]![不具合詳細入力フォーム]![得意先名称] & "'") どこがおかしいのでしょうか?? またDLookUp以外でも、もし上記のような動作を実現させる方法がありましたら、ぜひご教授ください! 宜しくお願いいたします。

  • アクセスでの、フォームとテーブルの連動の方法を教えてください

    初歩の初歩だと思うのですが、教えてください。 アクセスで、テーブルのフィールドと全く同じ内容でフォームを作りました。(受講生情報の管理) その中で「性別番号」と「性別」があり、(「性別番号」と「性別」は、別にテーブルを作っています)フォーム上では「性別番号」に番号(男なら1、女なら2)を入力すると「性別」に自動で値が入るように設定できたのですが、テーブルに反映されません。(フォームの「性別」のプロパティのコントロールソースに”DLOOKUP~”を入力しました) テーブル上にも同じように反映させるには、どうすればよいのでしょうか。 同様の質問と思われるものを参考にいろいろとやってみたのですが、どうもうまくいかなくって・・・ よろしくお願いします。

  • Access DLOOKUPについて

    Access DLOOKUPについて こんにちは。Access2010でのDlookupについてお教えください。 ■注文テーブル オーダーID,商品コード,数量,お店番号 001,A01,1,お店1号 001,A02,5,お店1号 002,B01,3,お店2号 002,B02,3,お店2号 ※同一オーダーIDで商品コードが重複する事は無 ■確認用注文テーブル 商品コード,数量,お店番号 A01ですよ,1お店1号 B02です,3,お店2号 ※なんと、オーダーIDがありません。さらに商品コードに変な文字列も入っています。 ■やりたい事 フォームに「判定」というテキストボックスを配置しました。 コントロールソースで以下の条件にあっているなら○、あっていないなら×と表示したいです。 ○注文テーブル.商品コードと確認用注文テーブル.商品コードを比較。 注文テーブル.商品コードのデータが確認用注文テーブル.商品コードに含まれていること。 ○注文テーブル.数量と確認用注文テーブル.数量がイコールであること。 ○注文テーブル.お店番号と確認用注文テーブル.お店番号がイコールであること。 これらを満たしていれば、○、満たしていなければ×と表示したいです。 Dlookupでなくても、何か他に方法がありましたらお教えください。 宜しくお願いします。

  • アクセスのフォーム

    アクセスでウィザードを利用して入力フォームを作りました。 当初はテーブルにあるデータがフォームにも反映されていたのですが、いろいろといじっているうちに、フォームのデータが消えてしまいました。コントロールソースをいじってみたのですが、直りませんでした。 フォームにも、テーブルのデータを反映させるためにはどこを直したらよいか教えて下さい。よろしくお願いします。

  • ACCESSでDLookupがうまく使えません。

    アクセス初心者です。 行き詰っているので、どうか教えてください。 医療事務をしていますがアクセスで管理できないものかと作り始めました。 tbl薬剤等製品のテーブルに 製品名:クスリA 製品番号:ABC123 販売元:あいう社 などがあります。 frm接種記録のフォーム作り、 フォーム上で製品番号から、tbl薬剤等製品の販売元を抽出してテキストボックスに代入したいのですが、 DLookup("[販売元]","tbl薬剤等製品","[製品番号] = Forms![frm接種記録]![製品番号]") としたのですが、うまくいきません。 どうしたら良いのでしょうか?