プロが教えるわが家の防犯対策術!

アクセス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
のように。

よろしくお願い致します。

A 回答 (2件)

初期値をクエリで求めては?



以下のクエリ(名前は"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を使う。条件指定が面倒)ように
しますが、カレントを移る度にクエリが実行されるので
効率の悪い方法です。
    • good
    • 0
この回答へのお礼

nda23 様

回答をありがとうございます。
テーブルの項目以外を使うと更新不可能になるのですね。
勉強になりました。

日付の自動入力を採用させて頂きました。

顧客名の自動表示は、顧客名簿が2000件ほどあり、コンボボックスだと長くなりすぎました。
よって、nicotinism様の回答を採用させて頂きました。
DLookupのヒントと効率性を教えて頂きました。
表示スピードが遅くなるような感じなのでしょうか。
実感なく申し訳ありません。

目的のものが出来ました。ありがとうございました。

お礼日時:2012/03/29 19:48

フォームの適当なところ(ヘッダーなど)にテキストボックスを一個配置。


名前を仮に『日付既定』とします。
顧客氏名も追加します

[日付既定]
-----------------------------------
日付|顧客番号|顧客氏名|商品|金額

3/8|   123|    |石鹸|200
3/8|   122|    |洗剤|100

日付のプロパティのデータタブ→既定値欄に、[日付既定]
顧客氏名のコントロールソースに、= Dlookup("顧客名","tbl顧客","顧客番号=" & [顧客番号])

日付と顧客氏名のその他タブ→タブストップを、いいえに
でどうですか。
これで新規レコードの『日付』は[日付既定]の値になります。
    • good
    • 0
この回答へのお礼

nicotinism 様

回答をありがとうございます。
日付の方なのですが、3/1分の入力が終わり、続けて3/2と日付を打ち直すと、
3/1のままでした。
よってnda23様の回答を利用させて頂きました。

顧客氏名の自動表示は採用させて頂きました。

目的のものが出来ました。ありがとうございました。

お礼日時:2012/03/29 19:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す