Access2010のテーブル更新クエリについての質問

このQ&Aのポイント
  • Access2010でテーブル間の更新クエリを作成していますが、特定の項目の値が更新されず困っています。
  • テーブルAでオプショングループの項目を変更しても、メインのテーブルBに反映されません。
  • 更新クエリでの抽出条件を設定しているにもかかわらず、特定の項目の値が更新されない問題に直面しています。
回答を見る
  • ベストアンサー

テーブル間の更新クエリにおいて

Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態 0、1、Nullの3値ということと思います。 NzでNullを0に置換したらどうなります?

beezel1999
質問者

お礼

早速のアドバイスありがとうございます。 確認ですが、抽出条件にてNzを下記のように当フィールドにかませるということでよろしいですか? Nz(テーブルA.項目)<>Nz(テーブルB.項目) ちょうどいましがた、別課題で調べていたらNullを含む式は全てNullを返すという事実を知りました( ;∀;) Nzをかける根拠はそういうことですよね? 早速試してみます

関連するQ&A

  • 更新クエリがわからない

    windows-xp、Access2003を使っています。 参考書に載っている更新クエリは「同一のテーブル内でデータを更新する」という内容で載っているのを見ました。 が、そうではなく・・・ 更新クエリを作成すると「レコードの更新」という欄が出てくるのですが、そこに、別のテーブルや別のクエリのデータを”ビルド”で作成することはできないのでしょうか? 試みたのですが、”パラメータの入力”というものが出てきてしまいました。 ついでにおわかりになれば、これも教えてください。 ↓↓↓ テーブルAとテーブルB(或いはクエリB)に、同じIDをもつデータがあります。そこで、テーブルAの指定するフィールドへ、テーブルBの新しいデータを入れ込みたい(更新)させたい。 すみませんが、宜しくお願い致します。

  • クエリでのデータ更新について

    ACCESS2000で更新クエリの質問です。 フィールドの値の合計、カウントなどの集計値を計算するクエリから取り出された値を、更新クエリでデータを更新したいのですが、 「更新可能なクエリでありません」とエラーがでます。 LOOPする方法もあるのですが、できればクエリで一括更新したいと思います。 どなたかご教授お願いします。 やりたいことは下記のとおりです。Aテーブルを集計しBテーブルの個数にAテーブルの個数の合計値を更新する。 <Aテーブル> コード  個数 1     1 1     2 1     3 2     4 2     4 3     5 3     6 <Bテーブル> コード  個数 1      2      3    ↓↓↓更新後 <結果:Bテーブル>   コード  個数 1     6 2     8 3     11

  • 更新クエリでテーブルを書き換えたい

    データが0件のテーブルに、更新クエリで一つのレコードを追加したいのですが そもそもテーブルにデータが入ってない状態だから更新すらできないのですが こういう時どうすればいいでしょうか? Ttest01テーブルにaを入れたい場合、 UPDATE Ttest01 SET Ttest01.test01 = "a"; これだとうまくできません。 Ttest01のtest01フィールドの1行目にaを入れる方法を教えてください。

  • 更新クエリーについて

    更新クエリーについて教えて下さい。 元テーブルのAフィールドに値1,2,3 が入力されいます。それを 1を0 に 2を5 に 3を10に 更新する設定方法について教えてください。 <私が行った設定> 更新クエリーのレコードの更新欄に IIf ( [A] = 3 , 10, [A]) or IIf ( [A] = 2 , 5, [A]) or IIf ( [A] = 1 , 0, [A]) で実行したのですが、更新後の値が-1になります。  

  • ACCESSのフィールドの更新

    マイクロソフトACCESSフォームAでテーブルBのCフィールドの更新は出来るのですが、フォームDから連結でテーブルBのCフィールドの更新が出来ません。(同じようにして2個作成したシステムのうち1個は出来たのですが、もう1個がどうしても出来ません:テーブル,クエリ,フサブフォーム,フォームの違いを捜しているのですが見当たりません。)

  • Access更新クエリの「レコード更新」をフォームから指定する方法

    お世話になっています。 早速ですが質問があります。 テーブルにあるフィールドの値を全て変更する更新クエリを作成したのですが、出来ればフォームから指定したいのです。 どうやったら「レコードの更新」の値をフィールドから指定出来るのでしょうか? 以上、よろしくお願いします

  • ACCESS クエリで表示されているデータがテーブルで反映されない

    宜しくお願い致します。 ACCESSにおいてクエリで表示されているデータがテーブルで反映されないので困っています。 状況としてはあるフィールドに1が入力されるとその隣のフィールドにAが入力されて2が入力されるとBが入力され3,4,5・・・と続いていく感じでそれは“iif”を使って条件指定しています。 この場合クエリのデザインビューで見たときにテーブル名を指定することができないためにこのような状況になっているということはわかったのですが、テーブルにその条件で表示した物が反映されるためどのように記述をしたらいいのでしょうか・・・ ややこしい質問かもしれませんが、宜しくお願い致します。

  • アクセスのフォームでデータ元をテーブルからクエリにかえたい

    上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。

  • 【大至急お願いします!】Accessの更新クエリについて

    あるテーブルA、Bがあり、構造はまったく同じです。 AのデータをすべてBに更新するにはどうすればよいでしょうか? これらのテーブルはかなり項目が多いので、更新クエリ内のレコードの更新にすべて項目をいれないといけないのでしょうか?

  • Access2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

    AとBという2つのテーブルが、全く同じフィールドを30個持っています。 AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが [B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に 手入力する方法で現在行っています。 追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが 同様に更新クエリでもフィールド名を自動的に出す方法はありますか? 現在上記のような更新クエリを10件以上新規で作成しなければならないのですが 各件に29個も手入力で行うのが非常に面倒でなりません。 やはりSQL等で仕組んでいくようにするのでしょうか?