• ベストアンサー

ACCESSのフォームで入力したデータをテーブルに追加したい

初歩的な質問だとは思いますが、自分の思うようにならず困っています。 テーブルのデータを元に日付のみメインフォームで単票形式で表示し、日付以外の項目はサブフォームで表形式で入力するフォームを作成したのですが、サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。 説明がうまくできずわかりにくいとは思いますが、分かる方よろしくおねがいします。

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

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

>日付のみメインフォームで。商品名・数量をサブフォームで表形式で入力するようなフォームを作成しました サブフォームは帳票フォームかデータシート型のサブフォームですよね。 メインフォームのレコードソースは売上数、サブフォームのレコードソースは SELECT [売上数].商品名,[売上数].数量,[売上数].日付 FROM 売上数; となっていますよね。 サブフォームのリンク子フィールドと親フィールドは日付になっていますでしょうか。 上記の設定になっていれば日付のみ保存されることはないのですが・・。(通常は上記設定で最終行で何か入力しない限り日付のみ保存される事はありません。) 上記設定ならメインフォームの日付に入力すると該当する日付のレコードがサブフォームに表示されるようになります。 フォームを閉じたりレコードを保存させる際にイベントなどで何か処理するようにしていますでしょうか。 メイン・サブフォームの状況がイマイチ不明ですが上記を確認してください。 サブフォームのレコードソースはサブフォームのフォームのプロパティ・リンク子・親フィールドはサブフォームプロパティで確認できます。

nnntttaaa
質問者

お礼

回答ありがとうございました。 リンク子フィールドと親フィールドが空白のままでした。 これを日付にするとできました。 また1つ勉強になりました。 ありがとうございます

その他の回答 (2)

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

>サブフォームの表形式の最後の行がいつも空白になり、そのデータが日付のみ入力され、テーブルのフィールドに追加されています。 詳細が不明ですが・・。 Table1:日付 Table2:日付・他の項目・・ でメインフォームにTabe1の日付・サブフォームにTable2の他の項目のフィールドとなっているのでしょうか? それでサブフォームに例えば3行入力してもTable2には2行目までのレコードと3行目の日付のみしか保存されない。と言うことなのでしょうか。 Table2のインデックスは日付? 例えばサブフォームの3行目のレコードを入力して次のレコードにフォーカスを移動して(4行目に移動して)から保存?(新しいレコードの追加)の状態ではどうなりますか? 3行目まで保存できるのか4行目として日付のみ追加されてしまうのか?どの様になりますでしょうか。

nnntttaaa
質問者

補足

説明不足で申し訳ありません。 今作ろうとしているデータは同じテーブルからデータを持ってくるので、 テーブル名=売上数 項目=日付・商品名・数量 となっています。 質問で記入しましたが、日付のみメインフォームで。 商品名・数量をサブフォームで表形式で入力するようなフォームを作成しましたが、売上数のテーブルには、サブフォームの空白行にメインフォームの日付のみ表示されるのです。 回答者様の言われる >3行目まで保存できるのか4行目として日付のみ追加されてしまうのか? そのとおりのようになります。 補足も上手く表現できませんが、またよろしくおねがいします。

  • a3453a
  • ベストアンサー率28% (132/460)
回答No.1

よくわかりませんが サブフォームに使用しているフォームにおいて デザインプロパティで「追加」を許可しない と指定したらいいではないでしょうか

nnntttaaa
質問者

お礼

回答ありがとうございます。 教えていただいたプロパティで追加を許可しないにするとサブフォーム全てが入力できなくなってしまいます。やはり説明が悪いですね・・・。

専門家に質問してみよう