- ベストアンサー
ACCESSのフォームで入力したデータをテーブルに追加したい
初歩的な質問だとは思いますが、自分の思うようにならず困っています。 テーブルのデータを元に日付のみメインフォームで単票形式で表示し、日付以外の項目はサブフォームで表形式で入力するフォームを作成したのですが、サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。 説明がうまくできずわかりにくいとは思いますが、分かる方よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>日付のみメインフォームで。商品名・数量をサブフォームで表形式で入力するようなフォームを作成しました サブフォームは帳票フォームかデータシート型のサブフォームですよね。 メインフォームのレコードソースは売上数、サブフォームのレコードソースは SELECT [売上数].商品名,[売上数].数量,[売上数].日付 FROM 売上数; となっていますよね。 サブフォームのリンク子フィールドと親フィールドは日付になっていますでしょうか。 上記の設定になっていれば日付のみ保存されることはないのですが・・。(通常は上記設定で最終行で何か入力しない限り日付のみ保存される事はありません。) 上記設定ならメインフォームの日付に入力すると該当する日付のレコードがサブフォームに表示されるようになります。 フォームを閉じたりレコードを保存させる際にイベントなどで何か処理するようにしていますでしょうか。 メイン・サブフォームの状況がイマイチ不明ですが上記を確認してください。 サブフォームのレコードソースはサブフォームのフォームのプロパティ・リンク子・親フィールドはサブフォームプロパティで確認できます。
その他の回答 (2)
- O_cyan
- ベストアンサー率59% (745/1260)
>サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。 詳細が不明ですが・・。 Table1:日付 Table2:日付・他の項目・・ でメインフォームにTabe1の日付・サブフォームにTable2の他の項目のフィールドとなっているのでしょうか? それでサブフォームに例えば3行入力してもTable2には2行目までのレコードと3行目の日付のみしか保存されない。と言うことなのでしょうか。 Table2のインデックスは日付? 例えばサブフォームの3行目のレコードを入力して次のレコードにフォーカスを移動して(4行目に移動して)から保存?(新しいレコードの追加)の状態ではどうなりますか? 3行目まで保存できるのか4行目として日付のみ追加されてしまうのか?どの様になりますでしょうか。
補足
説明不足で申し訳ありません。 今作ろうとしているデータは同じテーブルからデータを持ってくるので、 テーブル名=売上数 項目=日付・商品名・数量 となっています。 質問で記入しましたが、日付のみメインフォームで。 商品名・数量をサブフォームで表形式で入力するようなフォームを作成しましたが、売上数のテーブルには、サブフォームの空白行にメインフォームの日付のみ表示されるのです。 回答者様の言われる >3行目まで保存できるのか4行目として日付のみ追加されてしまうのか? そのとおりのようになります。 補足も上手く表現できませんが、またよろしくおねがいします。
- a3453a
- ベストアンサー率28% (132/460)
よくわかりませんが サブフォームに使用しているフォームにおいて デザインプロパティで「追加」を許可しない と指定したらいいではないでしょうか
お礼
回答ありがとうございます。 教えていただいたプロパティで追加を許可しないにするとサブフォーム全てが入力できなくなってしまいます。やはり説明が悪いですね・・・。
お礼
回答ありがとうございました。 リンク子フィールドと親フィールドが空白のままでした。 これを日付にするとできました。 また1つ勉強になりました。 ありがとうございます