
非連結のフォームから、追加クエリを使ってテーブルにデータを追加したいのですが、
どうもうまくいきません。
具体的には、
履歴フォーム、というフォームで、
日付
施設名
内容
という項目があります。
追加クエリで、
[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も見ています
-
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
ACCESS2007 フォーム 「バリアント型でない変数にNull値を代入しようとしました」エラーの
SQL Server
-
5
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
6
(ACCESS)条件に応じて、テキストボックスを表示・非表示設定
その他(データベース)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
Accessクエリーで両方のテーブルの全てのデータを表示することは可能ですか?
Access(アクセス)
-
9
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
10
Accessでコードを入れると名前がでるようにしたい
Access(アクセス)
-
11
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
12
追加クエリ実行時に入力した文字を入れたい!!
その他(データベース)
-
13
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
14
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
15
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
16
Accessの追加クエリで既存のテーブルに上書き追加をしたい
その他(データベース)
-
17
主キーはオートナンバー型のIDを使った方が良いのか
Access(アクセス)
-
18
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
19
Accessのスプレッドシートエクスポートで、シートが追加されてしまう
Access(アクセス)
-
20
クエリのデータをテーブルに入れたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス・テーブルの改行につ...
-
アクセスクエリで英数字のみ半...
-
アクセスの追加クエリで教えて...
-
Access 別テーブルにある値を抽...
-
Access 住所入力支援が機能しま...
-
アクセスのテーブルでコードを...
-
ACCESSのリストボックスで複数...
-
Accessでチェックボックスから...
-
クエリ上でフィールド名が2つ...
-
access テーブルの色分けについて
-
Access フォーム上でのテキス...
-
日付型のフィールドに空白を入...
-
差込印刷での全角表示について...
-
アクセスで追加した項目に全て...
-
SQL文で パラメータが少なすぎ...
-
Accessを開きなおすとテキスト...
-
Excleピボットでデータのない部...
-
Accessの桁区切りについ...
-
アクセスのエラー「クエリには...
-
アクセス:既定値に土日含まず...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセス・テーブルの改行につ...
-
クエリ上でフィールド名が2つ...
-
Access フォーム上でのテキス...
-
アクセスの追加クエリで教えて...
-
アクセスでの、フォームとテー...
-
Accessで更新履歴情報を保存(...
-
ACCESSのリストボックスで複数...
-
アクセスクエリで英数字のみ半...
-
アクセスに自動入力を入れたい
-
ACCESSの時刻の引き算
-
アクセスのテーブルでコードを...
-
INT関数のバグ?
-
Access 別テーブルにある値を抽...
-
アクセス: フォーム上で計算...
-
Accessでチェックボックスから...
-
Access 住所入力支援が機能しま...
-
Access ルックアップが反映され...
-
Access2013 クエリ内別フィール...
-
アクセスでフォームに入力した...
-
アクセス:SQLでフィールド...
おすすめ情報