- ベストアンサー
ACCESSでテーブルを更新する時で
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
GreatDragonさんの#1でいいと思うんですが、更新クエリーでやってみました。ちなみに試したのはAccess2000です。 クエリを新規作成して、SQLビューで次のSQL文を貼り付けてください。 UPDATE テーブル1 INNER JOIN テーブル2 ON テーブル1.[No] = テーブル2.[No] SET テーブル2.更新a = [テーブル1]![更新a], テーブル2.更新b = [テーブル1]![更新b]; 実行はくれぐれも注意して、テーブルをコピーしてテストしてくださいね。テーブルの構造、テーブル間の関係がはっきりしないのでうまくいかないかもしれませんが、その時はまた補足ください。
その他の回答 (2)
- GreatDragon
- ベストアンサー率46% (186/402)
ANo.1のGreatDragonです。 後で読み返したら、ANo.1は誤りです。m(__)m お詫びにVBAでプログラミングしてみました。ご参考にどうぞ。 Public Sub MyUpdate() Dim Cn As ADODB.Connection Dim Rs1 As ADODB.Recordset Dim Rs2 As ADODB.Recordset Set Cn = CurrentProject.Connection Set Rs1 = New ADODB.Recordset Set Rs2 = New ADODB.Recordset Rs1.Open "[テーブル(1)]", Cn Rs2.Open "[テーブル(2)]", Cn, adOpenKeyset, adLockOptimistic Do Until Rs1.EOF Rs2.Find "[No] = '" & Rs1![No] & "'" If Rs2.EOF Then MsgBox "レコードが見つかりません。No=" & Rs1![No] Else Rs2![更新a] = Rs1![更新a] Rs2![更新b] = Rs1![更新b] Rs2.Update End If Rs1.MoveNext Loop Rs2.Close: Set Rs2 = Nothing Rs1.Close: Set Rs1 = Nothing Cn.Close: Set Cn = Nothing End Sub
お礼
回答有難うございます。 残念ながら、VBAを知らないので、出来そうもありません。 クエリーのテーブル作成など簡単な操作でしたら画面をみながら出来るのですが、VBAの命令を駆使しては現在では出来ませんので、通常ACCESSのテーブル操作ではできないものでしょうか。 《回答有難うございました、折角プログラミングしていただきながら申訳ありません。 (;_:)
- GreatDragon
- ベストアンサー率46% (186/402)
1.更新したいフィールドを置き換えるようにテーブル作成クエリを作成します。 (テーブル作成クエリの例) SELECT [テーブル(2)].[No], [テーブル(1)].更新a, [テーブル(1)].更新b INTO [テーブル(3)] FROM [テーブル(1)] RIGHT JOIN [テーブル(2)] ON [テーブル(1)].[No] = [テーブル(2)].[No]; 2.上記テーブルに問題なければテーブル名を変更します。 テーブル(2) → テーブル(2)-Old テーブル(3) → テーブル(2)
お礼
お礼が遅くなりましたが有難うございました。 一度やってみました。 【1】はできましたが、【2】の意味がよくわかりませんでした。回答有難うございました。
関連するQ&A
- テーブル間の更新クエリにおいて
Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m
- ベストアンサー
- その他(プログラミング・開発)
- Access2003 更新クエリについてご教授下さい。
初めまして。 今回、初めてご質問させていただきます。 Access2003の更新クエリについてご教授お願いします。 AテーブルとBテーブルがあります。 ■Aテーブル(ALLテーブル) 各フィールド名: 名前(テキスト型)/完了(Yes/No型)/備考欄(テキスト型) ■Bテーブル(更新させたいテーブル) 各フィールド名: 名前(テキスト型)/完了(Yes/No型)/備考欄(テキスト型) (※Aテーブルと同じです。) Bテーブルの内容をAテーブルへ更新させたいのですが 名前/完了のフィールドは、更新クエリで完成出来ましたが 備考欄の更新が出来ません。 (※備考欄には、コメントがそれぞれ入っています。) どのような形でクエリを作成すれば Aテーブルへ更新が可能になるのでしょうか? 以上、ご教授お願い致します。
- 締切済み
- その他(プログラミング・開発)
- 【Access2007】クエリを教えてください
Access2007を使用しています。 以下のような3つのテーブルがあります。 テーブルA No 項目a 1 ○ 2 ○ 3 ○ 5 ○ テーブルB No 項目b 1 ○ 4 ○ 5 ○ テーブルC No 項目c 1 ○ 2 ○ 4 ○ 6 ○ これらの3つのテーブルから以下の結果を返すクエリはどうすればいいのでしょうか? No 項目A 項目B 項目C 1 ○ ○ ○ 2 ○ ○ 3 ○ 4 ○ ○ 5 ○ ○ 6 ○
- ベストアンサー
- その他MS Office製品
- Accessプロジェクト ストアドプロシージャによるデータ更新
Access2003 Accessプロジェクトのストアドプロシージャでテーブルを更新する処理を作りたいのですが・・・。 内容は、テーブルAにある項目「更新区分」を "0" から "1" に更新します。ただし更新する条件として、テーブルBに登録されている、全てのロットNoと、テーブルAのロットNoが一致するものだけです。 WHERE条件に・・・ WHERE テーブルA.LotNo = テーブルB.LotNo とすると、「ADOエラー:列のプレフィックステーブルBは、テーブル名と一致しないか、クエリ内の別名と一致しません」となります。 初歩的な質問ではずかしいですが、よろしくお願いします。
- 締切済み
- SQL Server
- ACCESSでテーブルの一部だけを更新したい
Access2000を使用しています。 テーブルの更新方法についてアドバイスをお願いいたします。 Excelの表からインポートとして「テーブルA」を作っています。 Excelからは項目「A、B、C、D」をインポートしていますが、テーブルにインポートしたあとで、項目「E、F、G」を新たに追加作成し、値を手入力しています。 (Excelにはこの項目がないためです) Excelの表は時々更新されるため、その都度上書きとしてインポートしなおす必要があります。 しかしそうすると項目「E、F、G」が消えてしまいます。 項目「E、F、G」の値を残したまま項目「A、B、C、D」を更新するなどということはできるのでしょうか? 代替案でもけっこうですのでどうぞよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセスの更新クエリについて(親子テーブル)
はじめまして。 アクセスを勉強しはじめて2週間の初心者です。 説明がわかりずらいかもしれませんが、ご容赦ください。 以下のようなテーブルがあります。 ●親テーブル(装置名称と装置番号の組み合わせが主キー) ・装置キー ・装置名称 ・装置番号 ・収容No-1 ・収容No-2 ●子テーブル(主キー設定なし) ・装置キー(親テーブルの装置キーと参照整合:1対多) ・収容No-3 ・最新情報 ●参照テーブル(主キー設定なし) ・収容No-1 ・収容No-2 ・収容No-3 ・最新情報 子テーブルの最新情報フィールドを参照テーブルの最新情報に 更新する更新クエリを作成したいのですが、うまく実行ができ ません。 クエリの作り方の基本がわかっていないと思いますが、私が作 った方法は、 1.上記3つのテーブルをクエリのデザインビューで表示 2.親テーブルと参照テーブルの収容No-1、2を結合 3.子テーブルと参照テーブルの収容No-3を結合 4.クエリの種類を更新クエリに変更 5.テーブルに子テーブル、フィールドに最新情報を設定 6.レコードの更新欄に[参照テーブル]![最新情報]を設定 です。 ビューで確認すると殆どのデータが空白で表示されております。 どのあたりに悪さがあるかをご教授いただけますと助かります。 ご不明な点がありましたら、何なりとお伝えください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【大至急お願いします!】Accessの更新クエリについて
あるテーブルA、Bがあり、構造はまったく同じです。 AのデータをすべてBに更新するにはどうすればよいでしょうか? これらのテーブルはかなり項目が多いので、更新クエリ内のレコードの更新にすべて項目をいれないといけないのでしょうか?
- ベストアンサー
- その他(データベース)
- ACCESSについて
Accessで以下のように処理したいのですが、方法を教えてください。 下記のように2つのテーブル1、2があり、それぞれ一つずつの項目(A、B)があります。 テーブル1 テーブル2 項目A 項目B 001 002 002 004 005 006 006 007 008 008 これをクエリーを使って、 クエリー0 テーブル1.項目A テーブル2.項目B 001 002 002 004 005 006 006 007 008 008 と表示させたいのですが、どうしたらいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- Access 複数テーブルのレコード自動更新
Access初心者です。会社で業務の進捗状況を、Access2002を使って管理しています。 フィールド数が増えたので、以下のようにテーブルを分けることになりました。 Aテーブル(メイン) 管理No.(主キー、オートナンバーではない) カテゴリ 作業内容 : Bテーブル 管理No.(主キー、オートナンバーではない) チェック項目B-1 チェック項目B-2 : Cテーブル 管理No.(主キー、オートナンバーではない) チェック項目C-1 チェック項目C-2 : という形式で、AとB・Cはクエリのリレーションシップで、「管理No.」を1対1で関連づけています。 AテーブルのもとのデータはExcelからインポートしますが、 Aテーブルのレコード数は増えますが、クエリには反映されません。 Aのレコードが増えたら、BやCも同時に増やすことはできますか?
- 締切済み
- その他(データベース)
- ACCESS テーブル同士の照合
テーブルAとテーブルBの照合がしたいのですが (AとBはフィールド名、データ型等全てが同じ) 項目が多く、クエリーの結合プロパティで一つ一つ設定するのが面倒です AとBを単純に照合出来る方法は無いでしょうか?
- 締切済み
- オフィス系ソフト
お礼
早速の回答有難うございました。 一度挑戦してみます。