Microsoft Access 掲示板

効率的な入力フォーム

7 コメント
views
4 フォロー

従業員・商品ごとの売上を入力するときに効率的なフォームの作り方はありますか?

紙の資料を手打ちするのですがその紙はクロス集計のようになっています。実際の商品名はもっとあります
画像

従業員・商品ごとに売上が存在したりしなかったりしますが、商品は前もってわかっているので固定です

レコードの形としては
従業員名  商品名   数値
としたいです(主キーなどはつくりますし、それぞれマスタからもってくることになります)

いまはExcelでやっていますが、従業員単位で、先に商品名のリストからすべてコピペして、従業員も同じ数だけコピー
紙と同じような感じで入力して数値がないデータは削除してしています
画像

テンキーと文字キーをいったり来たりせずに、紙を見ながら数値だけを一気に入力したいです
テンキーだけでやるために、商品名のidを入れることも考えましたが、覚えないといけないのど大変そうです

アドバイスよろしくお願いします

やま
作成: 2021/03/14 (日) 04:31:59
通報 ...
1

サブフォームコントロールを複数配置してレイアウトを工夫するという方法があります。
下記にサンプルがあるので参考にしてください。

連結入力フォームのレイアウトを自由に設計したい - hatena chips


別案

最初の画像のような形のワークテーブルを作成しておいて、入力フォームはこのテーブルをレコードソースとして作成。
入力後、VBAで本来のテーブルの形に変換して出力する。

2
やま 2021/03/14 (日) 17:56:06 58219@b4dbf

別案についてですが、ワークテーブルとは作業するシートということで、EXCELで入力して
ACCESSにインポートするということですか?

3

Accessのテーブルです。
下記のようなテーブルを作成しておきます。

従業員りんごみかんなし
aaa
bbb
ccc

入力用に使うテーブルで、入力後、本テーブルに転記した後は、入力データは削除して空欄にしておきます。

4
やま 2021/03/17 (水) 21:03:05 58219@86936

転記するのはVBAでかき、上記のテーブルは毎回クリアされ0レコードにするということですか?

5

要件次第です。
従業員がその時、その時で異なるなら、全レコード削除。
入力するときに必要な従業員を追加するということになります。

従業員が固定なら、従業員以外のフィールドの値を0にする、ということになります。

6

従業員は固定です

たとえば0なら転記しないように記述して、転記ボタンで別テーブルに、書き出すということでしょうか?

別テーブルには
aaa  りんご 10
aaa  みかん 5

となるように転記するんですよね?

7

はい、そうです。

方法はいろいろありますが、DAOのRecordsetを使う方法がいいでしょう。
新規レコードの追加なら AddNewメソッド、
既存レコードの更新なら、主キーで該当レコードを探して、Editメソッドで、
ということになります。

レコードの更新・追加・削除(DAO編)