非連結のテキストボックスにフォーム値を表示する方法

このQ&Aのポイント
  • ACCESS2013で単体テーブル「受注」でフォームを作成し、3つ以上のテーブルをクエリーで結合する際に項目の編集ができない問題が発生します。
  • ダイナセットで編集が可能になりますが、フィールド間の連携が失われます。
  • 受注画面に店コードを入力すると、該当エリア名を非連結のテキストボックスに表示したい場合は、M_店とM_エリアのマスタテーブルを使用すると効果的です。
回答を見る
  • ベストアンサー

非連結のテキストボックスにフォーム値を元に表示する

ACCESS2013です。 単体テーブル:受注 でフォームを作成しております。 最初は、3つ以上のテーブルをクエリーで作成して、それでフォームを作成しようと考えて いましたが、3つ以上のテーブルクエリーでフォームを作成すると、項目の編集ができません。 ダイナセットから矛盾ありの設定にすると、編集ができるようになりますが、各フィールド間 の連携が無くなってしまいます。 受注画面に店コードを入力すると、その店の該当エリア名を非連結のテキストボックスに 表示したいです。 マスタテーブルとして、  M_店(店コード、店名、エリアコード)  M_エリア(エリアコード、エリア名)   受注テーブル(受注No.、店コード・・・・) フォーム上の非連結テキストボックスのコントロールソースに設定できれば一番いいのですが。 どうぞ、よろしくお願いします。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは エリアコードが数値なら、 Private Sub 店コード_Change()   Me.エリア名 = DLookup("エリア名", "M_エリア", _                  "エリアコード=" & DLookup("エリアコード", "M_店", _                  "店コード='" & CStr(Me.店コード.Value) & "'")) End Sub で、どうでしょうか?

utdx019
質問者

お礼

できました。 前と今回を比較して勉強させていただきます。 本当にありがとうございました。

その他の回答 (1)

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは データ型が分からないのでテキスト型にしてありますけど、 Private Sub 店コード_Change()   Me.エリア名 = DLookup("エリア名", "M_エリア", _                  "エリアコード='" & DLookup("エリアコード", "M_店", _                  "店コード='" & CStr(Me.店コード.Value) & "'") & "'") End Sub とかで出来ますか? エラー処理等は適宜追加して下さい。

utdx019
質問者

補足

ushi2015さん、ご回答いただきありがとうございます。 DLOOKUP内にさらにDLOOKUPを利用することは思いつきませんでした。 お教えいただいた内容でエラー「抽出条件でデータ型が一致しません」と なります。 店コードの箇所なのは確かなのですが、cstr()を削除しても変わりません。 それぞれの型は、  店コード:テキスト  エリアコード:数値 ’ " & の意味も下記で合ってますでしょうか?  ’ は文字列の指定?  " も文字列の指定?  & は連結  

関連するQ&A

  • Access フォーム上でのテキストボックスとテーブルの連結

    フォームヴィザードからフォームを作成すると、 テキストボックスと指定したテーブルを連結させることができるのですが、デザインビューでそれをするときに、テキストボックスのプロパティのコントロールソースにテーブル名を入れれば連結できるのかと思いきや、うまく表示されません。どこを設定すればテキストボックスとテーブルを連結できるのでしょうか?

  • Access 連結テキストボックスのフィルタ操作を非連結テキストボック

    Access 連結テキストボックスのフィルタ操作を非連結テキストボックスから操作 したいのですが、うまく出来ません。 使用しているのはAccess2007です。 フォームはウィザード使用によるメインフォームとサブフォームです。 構造は下記の通りになります。 ======================================== -メインフォーム-  ID □□□□←(連結テキストボックス、テーブル[IDコード](IDコード(オートナンバー)、名前(テキスト))     ↑ (フィルタ操作を(指定の値に等しい)で非連結テキストボックスの数値を反映させたい。)                   非連結テキストボックス□□□□                      (数値記入してエンターを押すとフィルタ操作実行) ---------------------------------------------------------------------- -サブフォーム-  [ 名前 ]←メインフォームの連結テキストボックスと連動する。 [___][____][____]  [___][____][____] =========================================      使用目的:メインフォームでID検索し、サブフォームで新規登録。 ネットや本をあさっていろいろ試してみたのですが、 非連結テキストボックスの数値がそのまま連結テキストボックス(IDフィールド)に反映されません。 違った数値がでたりしてどうにもなりませんでした。 どうすれば実現可能なのかとても知りたいです。 どうかよろしくお願いします。

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに【顧客テーブル】と【担当者テーブル】を作成しました、それぞれに【担当者コード】というフィールドを作っています。この【顧客テーブル】に顧客情報をフォームで入力していきたいのですが、顧客テーブルの【担当者コード】フィールドに担当者コードを入力した際、【担当者テーブル】の担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード](フォームのテキストボックスの名前),[T_担当者テーブル],[T_担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • フォームのテキストボックス→クリックしたら"○"が表示。

    アクセスのフォームにて、テキストボックスを用意し、 そのテキストボックスをクリックしたら、そのテキストボックスに 自動的に○が表示されるようにできるのでしょうか?? また、それをテーブルのフィールドに反映させるには連結させておけばいいのですよね?? アクセス暦数時間です。。 すみませんが、力を貸してください。

  • 連結フォームでの非連結

    こんにちは。 Access2002を使用しています。 「T_実績」テーブルには、顧客名、売上金額、販売者の項目があります。 「T_実績」テーブルに入力するために、連結フォームの「F_実績入力」フォーム を作成しました。入力の際は、顧客名と売上金額を入力し、販売者は フォームヘッダーのテキストボックスに入力した販売者を、レコード移動時に 自動更新したいようにしたいのですが、どのようにすればよいでしょうか? よろしくご教授くださいますようお願いいたします。

  • アクセスのフォーム上のテキストボックスについて

    アクセスのフォーム上のテキストボックスについて フォーム上のテキストボックスに直接数字を入力しようとしています。ただ、このテキストボックスのコントロールソースはフォームのレコードソースと違うものです。 この状況でテキストボックスに数値を直接入力しようとすると、『コントロールソースに連結しているので、編集できません。』と表示され、入力出来ません。 どうすれば、解決できるのかご存知の方、教えて下さい。宜しくお願いします。

  • 非連結のフォームからテーブルにデータを追加する

    アクセスにおいて フォームの非連結のテキストボックスから テーブルにデータを追加するには VBAのADOを学ぶしかないのでしょうか? ADOを使わなくても 追加クエリ等を使えば、対応できますか? よろしくお願い致します。

  • フォームに表示したいんですが・・・

    複数の人数の作業時間を入力するフォームを作成しました。 誤って入力したものをフォーム上で訂正したいので非連結のテキストボックスを 2つ作成しクエリーの「作業日」と「社員番号」のフィールドの抽出条件をforms![フォーム名]![テキストボックス名]としました。 フォームの2つのテキストボックスに「日付」と「社員番号」を入力すると1レコードが表示されました。 間違いを探すのに1日1日入力するのは手間なので、例えばAさんの1年分の レコードから1月1日から1月31までの31レコードをフォームに表示させるにはどうすればよいのでしょうか? いろいろやってみたんですがうまく出来ませんでした。 うまく説明できませんがよろしくお願いいたします。

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに"顧客テーブル"と"担当者テーブル"を作成しました。この顧客テーブルに顧客情報をフォームで入力していきたいのですが、顧客テーブルの担当者コードフィールドに担当者コードを入力した際、担当者テーブルの担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード],[担当者テーブル]![社員コード],[担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • フォームのテキストボックスで抽出したい

    データベース一覧の抽出条件として、フォームのテキストボックスを使用することができるのでしょうか?もし、でしるのでしたら、抽出条件の入力方法を教えて下さい。具体的にいうと、「名前」「住所」「入社年月日」のフィールドを持つ「名簿」テーブルがあります。次に抽出クエリ「Q_抽出名簿」を作成し、入社年月日が未入力のもののみを抽出させました。この「抽出名簿」をベースにして、フォーム「F_抽出名簿」を作成しました。このフォームを開き、「入社年月日」テキストボックスに新しく日付が入力されたもののみクエリで抽出したいのです。わかりにくい箇所は補足説明しますので、是非、教えて下さい。

専門家に質問してみよう