テーブルの追加・更新で悩みました。
部品のコードを変更する機能を追加中ですが、
全部で13のテーブルのデータを同時に修正する必要がありました。
単純な置き換えで更新すればよいテーブルが10個
変更後の部品コードを追加しなければいけないテーブルが3個です。
単純な置き換えは、手間だけでしたが、部品コードの追加で、悩みました。
部品コード以外のデータは、追加時に同じ値を持って、部品コードだけが更新されれば、一回のテーブル操作で済みます。
SQLのINSERT INTO文を使って、同じ値のデータを追加することは、すぐに出来たのですが、
追加時に新しいい部品コードに更新する事がなかなか出来ませんでした。
VALUESを使えば、新しい値を書き込めるのは判っているのですが、それではINSERT INTOとUPDATEの2段階の処理が必要になります。
Access以外ではvalues select文を使ってやりたい事が出来る記事を見つけたのですが、うまく動きませんでした。
試行錯誤の結果ですが、Accessでも下記のSQL文で、更新しながら、追加する事が出来ました。
【SQL文】
strSQL = "INSERT INTO M_修理使用部品対応表 ( 修理コード, 部品コード) "
strSQL = strSQL & "SELECT M_修理使用部品対応表.修理コード, '" & Code2 & "' AS 部品コード "
strSQL = strSQL & "FROM M_修理使用部品対応表 "
strSQL = strSQL & "WHERE (((M_修理使用部品対応表.部品コード)='" & Code1 & "'));"
DoCmd.RunSQL strSQL, True
'" & Code2 & "' AS 部品コード "と書いてやる事で、部品コードのデータが、 Code2変数の値に更新されたレコードが追加されます。
« アプリが売れました。その後-1 | トップページ | 苦手な修理 »
「Access 業務管理」カテゴリの記事
- お客様宅の緯度経度情報(2018.07.24)
- モジュールとメインフロー(2018.03.01)
- 受注情報の登録パターン(2017.10.11)
- 懸案は解決しましたが、PCが不調です。(2017.10.08)
- コンボボックスのリスト外入力からの振り仮名取得(2017.10.07)
コメント