Access入力フォームの作成方法と自動入力のテクニック

このQ&Aのポイント
  • Access入力フォームを使って販売データを一気に入力する方法を解説します。約5日分のデータを日付ごとに入力する手間を省きたい方におすすめです。
  • また、顧客番号だけではなく、顧客名も表示されるようにする方法もご紹介します。入力ミスを防ぎながら効率的なデータ入力ができます。
  • この方法を使えば、毎回日付を手動で入力する手間や入力ミスを防ぐことができます。Accessを使ってデータ入力を効率化したい方はぜひ試してみてください。
回答を見る
  • ベストアンサー

Access 入力フォームの作成

アクセス2007 2つのテーブルがあります。 tbl顧客 顧客番号 顧客名 住所 電話 tbl販売 販売番号(オートナンバー) 日付 顧客番号 商品 金額 tbl販売で作成した入力フォームで、 約5日分のデータを、レシートを見て一気に入れます。 次のデータを入力します。 日付|顧客番号|商品|金額 3/8|123|石鹸|200 3/8|122|洗剤|100 3/8|126|食器|700 3/8|127|鉛筆|600 3/8|125|石鹸|200 ------------------- 3/9|123|食器|200 3/9|132|洗剤|900 3/9|126|食器|300 3/9|127|洗剤|600 3/9|128|石鹸|500 同じ日付を毎回入力しています。入力に手間がかかります。 例えば、見出にテキストボックスを作成して、その日付が自動的に入力できるような方法を知りたいです。 3/8と入力 ↓自動的に日付が入る。 3/8|123|石鹸|200 3/8|122|洗剤|100 3/8|126|食器|700 また、顧客番号だけですと入力ミスが起きやすいので、確認の意味で顧客名が表示されるような方法はありますか? 3/8|123|太郎|石鹸|200 3/8|122|花子|洗剤|100 3/8|126|次郎|食器|700 のように。 よろしくお願い致します。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

初期値をクエリで求めては? 以下のクエリ(名前は"ABC")を作ります。 SELCT IIf(IsNull(A.X),Date(),B.日付) AS XYZ FROM [SELECT Max(T.販売番号) AS X FROM tbl販売 AS T]. AS A LEFT JOIN tbl販売 AS B ON A.X=B.販売番号 次にフォームの日付の規定値に=DLookup("XYZ","ABC")と 記述します。これで、最後に入力したデータの日付が、 次の新規登録レコードの規定値になります。 >顧客名が表示されるような方法はありますか? テーブルの項目以外を使うと更新不可能になります。 顧客番号をコンボボックスにしたらどうですか? 表示を2列にすると、番号と名前が対になって 見えるので入力し易くなると思います。 値集合ソースに"SELECT 顧客番号,顧客名 FROM tbl顧客 ORDER BY 顧客番号"と記入(引用符は転記しない)し、 列数を2、列幅を1cm;2cmにします。これで2列見えます。 列幅は適宜調整します。 これがイヤならヘッダかフッタに非連結テキストを置き、 カレントが変化する度に動的に内容を書き換えるコードを 置く(あるいは=DLookupを使う。条件指定が面倒)ように しますが、カレントを移る度にクエリが実行されるので 効率の悪い方法です。

yy-sakura
質問者

お礼

nda23 様 回答をありがとうございます。 テーブルの項目以外を使うと更新不可能になるのですね。 勉強になりました。 日付の自動入力を採用させて頂きました。 顧客名の自動表示は、顧客名簿が2000件ほどあり、コンボボックスだと長くなりすぎました。 よって、nicotinism様の回答を採用させて頂きました。 DLookupのヒントと効率性を教えて頂きました。 表示スピードが遅くなるような感じなのでしょうか。 実感なく申し訳ありません。 目的のものが出来ました。ありがとうございました。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

フォームの適当なところ(ヘッダーなど)にテキストボックスを一個配置。 名前を仮に『日付既定』とします。 顧客氏名も追加します [日付既定] ----------------------------------- 日付|顧客番号|顧客氏名|商品|金額 3/8|   123|    |石鹸|200 3/8|   122|    |洗剤|100 日付のプロパティのデータタブ→既定値欄に、[日付既定] 顧客氏名のコントロールソースに、= Dlookup("顧客名","tbl顧客","顧客番号=" & [顧客番号]) 日付と顧客氏名のその他タブ→タブストップを、いいえに でどうですか。 これで新規レコードの『日付』は[日付既定]の値になります。

yy-sakura
質問者

お礼

nicotinism 様 回答をありがとうございます。 日付の方なのですが、3/1分の入力が終わり、続けて3/2と日付を打ち直すと、 3/1のままでした。 よってnda23様の回答を利用させて頂きました。 顧客氏名の自動表示は採用させて頂きました。 目的のものが出来ました。ありがとうございました。

関連するQ&A

  • Accessのクエリ。日付と顧客で売上合計をだす。

    期間を指定して、顧客の売上を合計したいです。 2つのテーブルからクエリを作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付 顧客番号 顧客名 金額 ∑をクリックして、金額の集計は[合計]にしています。 その他は、[グループ化]です。 日付の抽出条件は、 Between [開始] And [終了] としています。 顧客毎に合計を出したいです。 よろしくお願い致します。

  • accessのフォームで参照しながら入力

    access初心者です。教えてください。 今、以下のようなテーブルがあるとします。 TBL_A ID,名前,TEL,FAX TBL_B ID,顧客ID,年月日,メモ 新規でTBL_Bのデータを追加するときにリストボックスから顧客を選び、年月日とメモを入力するフォームを作成しています。 このときにリストボックスより選択後、年月日とメモを入力するテキストボックス等の横に該当顧客の直近(TBL_Bの該当顧客の年月日が最新のもの)のデータを表示したいです。 要するに前回のデータを見ながら入力したいです。 表示はテキストボックスでもラベルでもかまいません。 実際には項目数は20個程度あります。 VBAでもかまいません。どのような方法があるでしょうか? 教えて頂きたいです。

  • Accessで期間指定の売上合計と順位指定のクエリ

    Accessのクエリの質問です。 (1)期間を指定した、顧客の売上を合計。 (2)その順位を出し、1位~100位や250位などの順位を指定した抽出をしたいです。 (1)期間指定の売上合計はできています。 (2)の順位をDCountでしましたが、金額(集計:合計)にしているためか構文エラーがでます。 よろしくお願い致します。 ------------------------------------------------ 2つのテーブルから、Q_売上(クエリ)を作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付(集計:Where条件) 顧客番号(集計:グループ化) 顧客名(集計:グループ化) 金額(集計:合計) 日付の抽出条件は、 Between [開始] And [終了] としています。 ------------------------------------------------

  • (ACCESS)入力フォームについて

    こんにちはmynannです またまた困っているのでよかったらヒントを いただきたいと思い質問させていただきます まずテーブルが二つあり 商品マスタには管理番号(主キー)と価格の二つの項目があります。 もうひとつは販売マスタというのがあり フィールドは管理番号、販売可(チェックボックス) の二つです。 この二つはリレーションシップの関係にあります そしてこの二つを一つにした 販売可商品マスタクエリがあります 商品マスタにはすでに多くのデータがあり それ専用の入力フォームもあります 今販売マスタの入力フォームを作りたいのです どのようなものかといいますと 管理番号を入力すると価格用のテキストボックスに 自動的に入力された管理番号の価格(商品マスタから調べると思うのですが)を表示するようにしたいのです 管理番号[       ]←ここに値を入力 価格[       ]←管理番号が入力されると自動的にでる 販売可 □ ←自分でチェックする イメージはこのような感じです 更新後処理を使うということはなんとなくわかるのですが どのような処理をさせていいかわかりません 助けてください!お願いします!

  • MS Access 入力フォーム:自動採番

    Access2013での自動採番に関して2パターン教えて下さい。 質問(1):"顧客番号"の自動採番 【テーブル名】 顧客情報 【フィールド】 "顧客番号"、"顧客名"、"顧客名かな"、"顧客住所"、"電話番号"、"担当者"、"メール"・・・ <"顧客番号"の採番方法> 顧客名の頭文字を五十音順の「あかさたな」で行ごとに連番をつけて管理している。 例)) 「ABC商事」→エービーシーしょうじ→「あ‐01」 「東京印刷」→とうきょういんさつ→「た-01」 《やりたい事!》 入力フォームに新規で、「東西工業」を入力する際に "顧客名かな"を入力したら、"顧客番号"が自動的に採番されるようにしたい。 顧客名:東西工業 顧客名かな:とうざいこうぎょう 顧客番号:た-02 ←ココを自動採番にしたい ------------------------------------------------ 質問(2)"取引番号"の自動採番 【テーブル名】 取引情報 【フィールド】 "顧客番号"、"取引番号"、"顧客名"、"顧客名かな"、"住所"、"電話番号"、"担当者"、"メール"・・・ <"取引番号"の採番方法> 取引が発生した順で、"顧客番号"ごとに枝番をつけて管理している。 例)) 「ABC商事」→1/10の取引→"顧客番号":あ‐01、"取引番号":01 「ABC商事」→1/31の取引→"顧客番号":あ‐01、"取引番号":02 《やりたい事!》 入力フォームに新規で、「ABC商事」の2/15の取引情報を入力する際に "顧客番号"を入力したら、"取引番号"が自動的に採番されるようにしたい。 顧客名:ABC商事 顧客番号:あ‐01 取引日:2016/02/15 取引番号:03 ←ココを自動採番にしたい 説明がうまくできず、分かりにくいかとは思いますが 何とかお知恵をお借り出来れば助かります。 よろしくお願い致しますm(__)m

  • access 入力フォーム作成について

    フォームでデータ入力をしたいと思っています。 たとえば、オーダー番号が(たとえば2005)1つで商品番号が100あった場合、その都度オーダー番号は変わらないのに毎回入力しなくてはいけなくなります。例:1件目オーダー 2005 商品番号 1000 個数 20 2件目 オーダー 2005 商品番号 1211 個数 30 のように そのオーダー番号分入力完了までオーダー番号を保持したいのですが、何か設定方法ありますか?よろしくお願いします

  • Accessフォームでデータ入力できない(初心者)

     テーブルにて各種データを入力して、それに基づいてクリエにて数式を使って2つの値を算出。 テーブル:原価、経費、利益率、商品名 クリエ:販売価格、利益金額  テーブル、クリエのすべてのデータを使ってフォームを作成したのですが、テーブル部分のデータをフォームにて入力・編集できません。テーブルのみを使ってフィールドを作成すると入力・編集できるのですが、クリエにて作成した「販売価格、利益金額」を表示できません。  フォームにテーブル、クリエのすべてのデータを表示でき、かつフォームでテーブルデータを編集できるようにするにはどのようにしたらよいのでしょうか。  当方、Accessはほとんど初心者のようなものです。すみませんが、よろしくお願いいたします。 Win7-64bit、Access2010

  • エクセル 入力フォーム?作成

    列見出し:氏名=150名分 行見出し:商品番号=1~1000 入力伝表:各氏名単位に注文したい商品番号と個数 以上の条件で、従来は氏名ごとに該当商品番号のセルに個数を入力していましたが、非常に時間がかかってしまいます。 そこで、入力フォーム(?)を作成したいと考えております。 イメージとしては まず氏名が自動的に表示されて下の窓に商品番号と個数を入れ ひとまず実行。同じ窓から次の入力・・・一名分の入力が終わったら 確定。で次の氏名が表示される。(以下繰返し) このようなことはエクセルで可能でしょうか? ご存知の方アドバイス、また参考URLをいただけると助かります。 よろしくお願いいたします。

  • ACCESS。よろしくお願いします。VLOOKUP??

    いつもお世話になっています。よろしくお願いします。顧客管理で困っています。 管理テーブル ID 日付 顧客番号 顧客名 性別 顧客テーブル ID 顧客番号 顧客名 性別 管理フォーム ID 日付 顧客番号 顧客名 性別 そこでお聞きしたいのですが・・ 管理フォームの入力で 顧客番号入力したら 顧客名 性別 を自動で引っ張ってきたいのですが・・ どうしたらできるかわかりません。 よろしくお願いします。 本等かってきましたが・・行き詰っています。 お勧めの本などありましたら教えていただけましたら幸いです。

  • ACCESS フォームからサブフォームのデータを更新・入力したい

    ACCESS フォームからサブフォームのデータを更新・入力したい tbl_プロジェクトというテーブルにIDとプロジェクトコード、プロジェクトの基本情報を持たせ、f_プロジェクトフォームからプロジェクトコード、件名、契約日等のデータ及び、f_テーマサブフォームにテーマを入力できるようなフォームを作成しています。フォームで入力したものをそれぞれのテーブルに保存したいのですがうまくいかない部分があります。 フォームから入力すると、tbl_プロジェクトに所属する情報は更新されます。そのtbl_プロジェクトに所属するプロジェクトコードをサブフォームのtbl_テーマのプロジェクトコードにも反映したいのですがどのようにしたらよいでしょうか? そういったことは可能でしょうか?分かりにくい説明で申し訳ないですが教えていただけると助かります。よろしくお願いします! DBの構成 【テーブル】 tbl_プロジェクト (1件1件のIDとプロジェクトコードを持つ) (フィールド:P_ID、プロジェクトコード、件名、契約日など) tbl_テーマ(プロジェクト毎に関連のあるキーワードを持つ) (フィールド:P_ID、プロジェクトコード、テーマ)←これのプロジェクトコードにtbl_プロジェクトのデータが入るようにしたい。 tbl_顧客(プロジェクトを依頼した顧客情報を持つ) 【クエリ】 q_テーマ(プロジェクト、テーマ、顧客を抽出するクエリ) 【フォーム】 f_プロジェクト (プロジェクトを1件ずつ表示・参照・新規作成するフォーム) f_テーマサブフォーム (f_プロジェクトフォームのプロジェクトコードにづきテーマを          表示・入力するサブフォーム) リレーションはP_IDをキーに一対多で作成しています。