• ベストアンサー

Access:フォームの自動入力方法を教えてください。

テーブル『店舗名称一覧』 <店舗コード(主キーで重複なし)、店舗名称> テーブル『問い合わせ一覧』 <問合せID(主キーオートナンバー)、店舗コード、店舗名> 上記テーブルをリレーションシップでつなぎ、問合せ一覧フォームで入力する際に、店舗コードを入力すると自動的に店舗名称が表示されるようにしたいと思い、『フォーカス喪失時』のイベントのコードビルダで以下のように設定しましたが、以下のようなエラー表示が出て、『デバッグ』をクリックすると、以下『→』部分が黄色くなっていました。 どのように訂正すればよいのでしょうか? ご存知の方がいらっしゃったらお教えください。   Private Sub 店舗コード_Exit(Cancel As Integer)    If Not IsNull(店舗コード) Then →   店舗名 = DLookup(店舗名称, 店舗名称一覧, "店舗コード=" & 店舗コード)    End If   End Sub

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

DLookupのcriteriaの引数の指定の仕方が違います。 "店舗コード=" & 店舗コード の部分。 店舗コードはテキスト型だと思いますが。 店舗コードのフォーカス喪失時でも更新後処理時のイベントでも良いですが。 店舗コードがテキストならcriteriaを Me!店舗名 = DLookup("店舗名称", "店舗名称一覧", "[店舗コード] ='" & Me![店舗コード] & "'") 店舗コードが数値なら Me!店舗名 = DLookup("店舗名称", "店舗名称一覧", "[店舗コード] =" & Me![店舗コード]) で出来ます。

noname#205469
質問者

お礼

ありがとうございます!! コピペしただけで完璧にできました!感動ですT_T! 度々助けていただいてホント感謝感謝です! ありがとうございまっす^^!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

店舗コードがテキスト型の場合 店舗名 = DLookup("店舗名称", "店舗名称一覧", "店舗コード='" & 店舗コード & "'") 店舗コードが数値型の場合 店舗名 = DLookup("店舗名称", "店舗名称一覧", "店舗コード=" & 店舗コード )

noname#205469
質問者

お礼

今回はNo.2の方の方法でしてみましたが、早速のご教示ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access97で自動入力と反映が違うテーブルの場合

    こんにちは、前の質問などでフォームへの自動入力は何とかできるようになったのですが、今度はその入力したデータを他のテーブルBに反映させたいのですが、どうしたら良いのでしょうか? テーブルA 店舗コード 店舗名 ※テーブルAの管理者は私ではなく、ネットワークで私のPCと「テーブルのリンク」でつながっています。 テーブルB 店舗コード 店舗名 商品番号 他に店の情報フィールドをいくつか作成 フォームC 店舗コード 店舗名 商品番号 他に店の情報テキストボックスをいくつか作成 フォームCで、店舗コードを入力したら店舗名が自動的に入力される方法は、フォームCのレコードソースをテーブルAにして、店舗コードの更新後処理をイベントプロシージャにして、下記イベントコードを設定しました。 Private Sub 店舗コード_AfterUpdate() Me![店舗名]=DLookup("店舗名","テーブルA","店舗コード=" & Me![店舗コード] & " ") End Sub そして、フォームの残りのテキストボックスに、店と商品に関するデータを入力し、入力した全てのデータをテーブルBに反映させたいのですが、どうしたら良いのでしょうか? 自動入力の方法でDLookupを使用したのがいけなかったのでしょうか? また、できればテーブルBは商品番号順に並びかえられているのですが、入力したら商品番号のリストの一番下に挿入されるという形にしたいのです。 どうかよろしくお願いします。

  • アクセスのフォームからレコード入力空欄回避のVBA

    アクセス初心者です。 帳票式フォームからテーブルへのレコード入力において、次のレコード入力ボタンで空欄を防止するためのVBAを作っていますが、うまく行きません。空欄があれば警告は出ますがそのままテーブルへ記録されてしまいます。 テーブルに記録されずに空欄が入力できるようにするにはどうすればよいのでしょうか? また、次を入力するときにフォームの製品名の内容だけ消えずに残したいのですが、そのプログラムについても教えていただきたいです。 なかなかうまく行かずに大変困っています。 どなたかVBAの達人の方、初心者にわかりやすくお教え下さい。 「入力内容を登録して次を入力」ボタンで作ったVBAは次の通りです。 つぎはぎなので、不要なプログラムもあるかもしれません。 Private Sub コマンド9次のレコードに_Click() On Error GoTo Err_コマンド9次のレコードに_Click DoCmd.GoToRecord , , acNext Exit_コマンド9次のレコードに_Click: Exit Sub Dim Rst As DAO.Recordset Set Rst = CurrentDb.OpenRecordset("T_指定材料表", dbOpenTable) With Rst .AddNew .Fields("製品名") = Me!製品名 .Fields("回路記号") = Me!回路記号 .Fields("部品名") = Me!部品名 .Fields("員数") = Me!員数 .Update If IsNull(Me!製品名) Then MsgBox ("製品名が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!回路記号) Then MsgBox ("回路記号が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!部品名) Then MsgBox ("部品名が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If If IsNull(Me!員数) Then MsgBox ("員数が空欄です。") Resume Exit_コマンド9次のレコードに_Click End If End With On Error Resume Next DoCmd.GoToRecord DataForm, "T_指定材料表", acNew Rst.Close Set Rst = Nothing Call ClearControls End Sub

  • アクセスのフォームで

    アクセスのフォームで、品番一覧というテーブルを基にした、F品番一覧というフォームがあります。 ヘッダー部に検索するコンボボックスがあり、品番一覧テーブルの品番を参照しています。 検索ボタンを押すと、コンボボックスの内容に当てはまるものが、フォームの詳細部に一覧として表示させる様にしたのですが、品番に"50#1"や"50#2"という#を使い、1と2を分けている物があるのですが、コンボボックスで、この#が付いた物で検索すると検索結果がなにも表示されません。#が付いていない物はちゃんと一覧が表示されます。 #が付いている場合でもちゃんと表示するにはどの様にしたら良いですか?テーブル側の#を取り除く事はできません。 検索ボタンのコードは Private Sub 検索_Click() Dim strFilter As String, strExp As String, aryOpe As Variant If Not IsNull(Me.txt氏名) Then strFilter = strFilter & " AND 品番 Like *" & Me.品番一覧 & "*" End If Me.Filter = Mid(strFilter, 5) If strFilter = "" Then Me.FilterOn = False Else Me.FilterOn = True End If となっています。 うまく説明できなくてすいませんが、誰か教えて頂けませんか? よろしくお願いします。 End Sub

  • アクセス フォームの自動入力方法について

    超に超を付けたいくらいの初心者です。よろしくお願い致します。 現在店舗情報が記載されている店舗テーブルがあり、もうひとつ営業受託を記録する受託テーブル(フォームも有り)があります。 そこで質問です、店舗テーブルにある店舗コードを受託フォームに入力すると、自動的にフォームにも反映される方法がないのか悩んでいます。 ご存知の方がいましたらどうかお助け下さい。 (補足) 受託フォームには店舗テーブルにある店舗コードを入力しています。 なのでクエリではつなぐ事が可能ですが、直接フォームに反映させたいです。 他に方法はあると思いますが、その他の方法を現在は考えておりませんの上記の方法でなにかございましたら宜しくお願い致します。

  • (access ) dlookupの抽出について

    「会社テーブル」 **企業コード **商品コード *会社名 「商品テーブル」 **商品コード **担当者コード *商品名 「住所テーブル」 **担当者コード *担当者名 *住所 仮に上記のようなテーブルがあり、下記がその条件式です =DLookUp("担当者名","住所テーブル","[担当者コード] = " & [テキスト入力欄]) フォーム上の[テキスト入録欄]に 「**担当者コード」 の値を入力し、 担当者名 や 住所 を任意のテキスト枠に返します。 その方法で[会社テーブル]の会社名を返す場合はどのようにしたらいいのでしょうか 上記のテーブルの通り、会社名には 担当者コード が存在しておりません 企業コードや会社コードを入力するという方法は二度手間になるためやりたくありません フォームを作成して3つのテーブルを繫ぎ、下記の式で抽出しようと試みましたができません =DLookUp("会社名","フォーム","[担当者コード] = " & [テキスト入力欄]) どなたか方法を教えてください

  • ACCESSでフォーム入力内容から自動で表示させる

    顧客の口座を管理するものをAccessで作成しています。 顧客テーブルに氏名等の情報があり、別に銀行マスタテーブルとして金融機関の情報がID、銀行コード、銀行名、支店コード、支店名、と入力されているものがあります。 銀行マスタテーブルは以下の形です 銀行コード 銀行名 支店コード 支店名 1 みずほ 1 東京営業部 1 みずほ 4 丸の内中央 1 みずほ 5 丸の内 5 UFJ 5 大阪 あらかじめ、氏名等の情報は入力してあり、これから口座情報を登録していくのですが、フォームに銀行コード、支店コードを入力した際に、その下に配置したテキストボックスに銀行名、支店名を表示させたいと考えています。 銀行コードの方は値が重複しても対応する銀行名は同じなので =DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード]) でなんとかできたのですが、支店コードは各金融機関毎に割り振られ、重複するものがあるため最上段のものが表示されてしまいます。(UFJの支店コード5を表示させたいのに、みずほの支店コード5が出てきてしまう。) そこで、複数条件で検索できるよう以下のようにしてみたのですが、うまくいきませんでした。 =DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード]' And 支店コード = #" & [Forms]![H25]![支店コード] "#") イメージとしては、そのフォームに入力した銀行コードかつ支店コードが一致する銀行マスタテーブルの支店名を、フォームに配置したテキストボックスへ表示させれればいいのかなと考えてみたのですが。(上の例で言うと、銀行コードが5で支店コードが5だからテキストボックスに「大阪」と出したい。) 関数でもVBAでも構いませんので、どなたかご教示ください。 よろしくお願いいたします。

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • Access2010 DLookup 関数で!

    店舗を管理するデータベースをAccess2010で、 テキストボックスを二つ作り 1.にs店舗no ・2.にs店舗名を作り 店舗NO・店舗名のどちらかに入力すれば検索する「イベントプロシージャ」を書きました。 [イミディエイト]ウィンドウを開きながら構文しましたが、[イミディエイト]ウィンドウ では、うまく作動しますが、イベントロシージャで実際に組みますと「コンパイルエラー:構文エラー」 と表示されます。どこが間違っているのかわかりません。 何方か教えて頂けませんでしょうか? 宜しくお願い致します。 Private Sub s店舗no_LostFocus() If Not IsNull(s店舗no) Then 'DLookup("店舗名","t店舗","[店舗no]= forms![ft店舗seach]![s店舗no]") DLookup("[店舗名]","[t店舗]","[店舗no]="& Forms![ft店舗seach]![s店舗no])   End If End Sub [イミディエイト]ウィンドウ ? DLookup("[店舗名]","[t店舗]","[店舗no]="& Forms![ft店舗seach8]![s店舗no]) 梅が丘店 相模原鵜野森店 ?DLookup("店舗名","t店舗","[店舗no]= forms![ft店舗seach8]![s店舗no]") 梅が丘店 相模原鵜野森店

  • ACCESSのデータシート形式のフォームでのDLookupについて

    お世話になります。 以下の様なコードでフォーム上の「bikou」という項目に商品マスタテーブル内の該当する商品コードの「商品名称」を代入しようと思います。 Private Sub 商品コードNo_BeforeUpdate(Cancel As Integer) Me!bikou = DLookup("商品名称", "商品マスタ", "商品コード='" & Me!商品コードNo & "'") End Sub これは単票形式のフォームではうまくいくのですが、データーシート形式ですと商品コードを入力する度にフォーム上に表示されている「bikou」がすべて塗り換わってしまいます。結果として最後に入力して商品コードの商品名称が、表示中のすべてのレコードの「bikou」に代入されてしまいます。そこで、「現在編集中のレコードの項目「bikou」のみに値を代入する(商品名称を代入する)」という指定を 行うプログラムの書き方はあるのでしょうか。 よろしくお願い致します。

  • フォームでの自動入力

    Access2002を使用していますが、フォームでの自動入力につき質問させてください。 勘定科目テーブルというのがあって、コード番号と科目名だけの簡単なテーブルですが、会計取引入力のフォームを作成して、「コード番号を入力したら(勘定科目テーブルを参照して)該当する科目名を別のフィールドに自動表示&入力する」、という処理を行いたいのですが可能でしょうか? Excelのlookup関数のようなものですね。 どなたか教えてください。

専門家に質問してみよう