
【Access 2013 VBA】
今、Workテーブルメイン、Workテーブルサブがあり、それをレコードソースにしたメインフォームとそのサブフォームがあります。
この画面で、サブの帳票のレコードを編集し、また、新規入力したものから
本になるテーブルのメインとサブに更新をする処理を作っています。
その更新先のレコードセットのSQLは以下のとおりです。
SQL = "SELECT "
SQL = SQL & "[SubTable].*, "
SQL = SQL & "[MainTable].* "
SQL = SQL & "FROM [SubTable] "
SQL = SQL & "LEFT JOIN [MainTable] ON "
SQL = SQL & "[SubTable].[ID] = [MainTable].[ID]"
この時、Recのフィールドの値を行進する時はいいのですが、
SubTableに新規レコードを追加する場合、
どのようにすれば良いのかわかりません。
普通にRec.AddNewとすると
上のMainTableにも新規レコードができるのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
> その場合には、更新されたかどうかを何らかの方法でフォームに持たせることは可能でしょうか?
本テーブルと比較するか、ワークテーブルに更新チェック用のフィールドを持たせるかですね。
ただ、面倒だし、それほどパフォーマンスには影響しないと思いますので(逆に遅くなる可能性もあり)、上書きでいいとおもいます。
hatenaさん、いつもありがとうございます。
今、この質問と関連して、サブフォームでレコードを削除した場合について、別に質問をあげています。もし、可能でしたらアトバイスの方よろしくおねがいします。
No.1
- 回答日時:
メインテーブルとサブテーブルを連結したものを更新するのではなく、それぞれ処理を分けましょう。
その方がシンプルになると思います。
まず、Workテーブルメインに更新があったら、MainTableを更新クエリかレコードセットを利用して更新します。
次に、WorkテーブルサブとSubTableを結合した更新クエリで、Workテーブルサブの更新をSubTableに反映させます。
さらに、WorkテーブルサブとSubTableの不一致クエリでWorkテーブルサブのみに存在するレコードを抽出して追加クエリにして、SubTableに追加します。
もし、Workテーブルサブで削除したレコードがあるなら、上記と逆の不一致クエリでSubTableのみに存在するレコードを抽出して、削除クエリにして削除します。
更新クエリ、追加クエリ、削除クエリではなく、レコードセットを利用して同様の処理をすることも可能です。
自分が得意の方で処理を作成すればいいでしょう。
この回答への補足
ご回答ありがとうございます。
レコード数がそれほど多くないので、サブフォームの全レコードを本テーブルに上書きしてもいいのですが、念のため、変更されたフィールドだけを更新するという処理も考えています。その場合には、更新されたかどうかを何らかの方法でフォームに持たせることは可能でしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ツリー構造をRDBで表現するには?
-
Accessでテーブル名やクエリ名...
-
Accessでvlookupみたいなことは...
-
パススルークエリをテーブル作...
-
Accessデータベースで測定デー...
-
ACCESSで指定されたテーブルか...
-
Accessクエリでの、LIKE条件
-
フォームの計算がテーブルに反...
-
AccessでExcel出力する際に「シ...
-
Excel 2019 のピボットテーブル...
-
アクセス メモ型 255文字...
-
アンドロイド おサイフケータイ...
-
INSERT INTO ステートメントに...
-
指定した項目の列削除
-
動的に生成したカラムを使ったF...
-
AccessのクエリをExc...
-
DBを管理する際の容量・ソフ...
-
複数のレコードを1つのレコード...
-
PhoenixBIOSの設定について
-
桐の集計(集計行設定のこと)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessでテーブルからテーブル...
-
Accessレコードの追加や変更が...
-
ツリー構造をRDBで表現するには?
-
Accessの追加クエリで既存のテ...
-
3つの表を1つに縦に連結する
-
Accessでvlookupみたいなことは...
-
テーブルを、たとえそれが存在...
-
2つのテーブルを比較して一致し...
-
ACCESSに同時アクセス(編集)を...
-
SQLで条件指定結合をしたいがNU...
-
Accessクエリでの、LIKE条件
-
access テーブル内のレコード...
-
ACCESSで指定されたテーブルか...
-
デザインビューで、連結式 を...
-
テーブル作成クエリで主キーを設定
-
SQLで日付を条件に削除したい
-
DAOのTableDefs("TblName").Con...
-
INSERT時にデータ登録とmaxの発...
-
ファイルメーカ 検索実行せず...
おすすめ情報