![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
非連結のフォームから、追加クエリを使ってテーブルにデータを追加したいのですが、
どうもうまくいきません。
具体的には、
履歴フォーム、というフォームで、
日付
施設名
内容
という項目があります。
追加クエリで、
[Forms]![履歴フォーム]![日付]
のようにほかの項目も入力し、
その保存先は、
履歴テーブル、で、
項目は、履歴フォームと同じです。
履歴フォームにデータがまったく入っていない状態ですと、
追加クエリを実行した際、
0件のデータを追加します。となります。
自分でテーブルに直接データを何か入力すると、
次に追加クエリを実行した際、
1件のデータを追加します。となります。
続いて追加クエリ実行の際には2件、
その次は4件追加と、
テーブルに入っているデータの件数だけ、
そのときにフォームに入力されている情報が、追加されてしまいます。
どのような原因が考えられますでしょうか?
お知恵を貸していただけたらと思います。
情報が不十分でしたらご指摘願います。
補足いたしますので。
それでは、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
その追加クエリーを SQL ビューでみるとどうなってますか?
INSERT INTO T_TEST ( 日付, 施設名, 内容 )
SELECT [日付] AS 式1, [施設名] AS 式2, [内容] AS 式3
FROM T_TEST;
のように FROM のテーブルが、データを追加しようとしているテーブルと同じテーブルになっているんじゃないでしょうか。
INSERT INTO T_TEST1 ( 日付, 施設名, 内容 )
SELECT [日付] AS 式1, [施設名] AS 式2, [内容] AS 式3;
のように FROM なしにすれば1件づつ追加できると思います。
No.4
- 回答日時:
重複する訳ですね、了解しました。
では、履歴フォームのソーステーブルと履歴テーブルを使い、重複しないデータだけを書き込むようにすれば良いわけですね
選択クエリーを作成し、履歴フォームのソーステーブルを表示させます。
全てのフィールドをクエリフィールドに表示するし、履歴テーブルを出します。
次に、履歴フォームのソーステーブルと履歴テーブルのフィールドをそれぞれ結合し、履歴フォームのソーステーブルにあるレコードと一致するものだけを表示させるように選び、全てのフィールドを同じ様に結合してください。
左側に表示されている履歴フォームのソーステーブルから、履歴テーブルに矢印が向いている様になります。
次に、クエリーの種類を追加クエリーに変更し、追加先を履歴テーブルにします。
履歴テーブルの全フィールドを選択して、クエリフィールドに表示させ、追加フールドの部分を削除し、抽出条件に、Is Null(=nullと入れれば良いです)と入力すれば、履歴フォームのソーステーブルにあって、履歴テーブルに無い物だけが抽出されますので、御希望通りのものができると思いますよ
2度もご回答いただき本当にありがとうございました。
今回の原因は、何とか追究できました。
cafedemochaさんの回答も今後の参考にしたいとおもいます。
せっかくいろいろお知恵を貸してくださったのに
ポイント、差し上げられなくてすみません。
No.2
- 回答日時:
>テーブルに入っているデータの件数だけ、
>そのときにフォームに入力されている情報が、追加されてしまいます。
それは追加クエリーが元テーブルを参照している形になっているからではないでしょうか。
INSERT INTO 履歴テーブル
SELECT フォーム上のコントロール
>FROM 履歴テーブル
になっていませんか?
だとしたら、このFROM句は必要ありません。
クエリのデザインビューでいうと、
上の表示欄にある「履歴テーブル」を削除すれば良いはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
-
4
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
-
5
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
6
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
7
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
8
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
9
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
10
アクセスでの追加クエリでのエラー表示について。
Access(アクセス)
-
11
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
12
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
13
DLookupがうまく出来ません
Access(アクセス)
-
14
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
17
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
18
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
19
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
20
Accessの追加クエリで既存のテーブルに上書き追加をしたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでの、フォームとテー...
-
Accessで更新履歴情報を保存(...
-
クエリ上でフィールド名が2つ...
-
ACCESSの時刻の引き算
-
access テーブルの色分けについて
-
Access 住所入力支援が機能しま...
-
アクセスクエリで英数字のみ半...
-
アクセスに自動入力を入れたい
-
テーブルとクエリの相関図は表...
-
Accessでチェックボックスから...
-
アクセス・テーブルの改行につ...
-
アクセスでフォームに入力した...
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
日付型のフィールドに空白を入...
-
アクセスで追加した項目に全て...
-
Access フォームからの入力結...
-
エクセルデータをワードで差し...
-
Accessで、1つの項目に複数の...
-
ACCESSのクエリで抽出条件「ま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クエリ上でフィールド名が2つ...
-
アクセス・テーブルの改行につ...
-
Accessで更新履歴情報を保存(...
-
アクセスでの、フォームとテー...
-
Access フォーム上でのテキス...
-
アクセスクエリで英数字のみ半...
-
アクセス:SQLでフィールド...
-
ACCESSの時刻の引き算
-
アクセス: フォーム上で計算...
-
Access 別テーブルにある値を抽...
-
ACCESSのリストボックスで複数...
-
INT関数のバグ?
-
アクセスでテーブル入力用のフ...
-
アクセスに自動入力を入れたい
-
アクセスのテーブルでコードを...
-
アクセスでフォームに入力した...
-
access テーブルの色分けについて
-
Access 住所入力支援が機能しま...
-
Access ルックアップが反映され...
-
アクセスの追加クエリで教えて...
おすすめ情報