• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス:更新クエリ)

アクセス:更新クエリの一括変換方法

このQ&Aのポイント
  • アクセスの更新クエリを一括変換する方法について教えてください。
  • 番号をルールに基づき変換する更新クエリを作成しましたが、失敗しました。
  • どのような方法で一度に更新クエリを実行することができるのでしょうか?

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

  • ベストアンサー
回答No.2

クエリにルールを別名で3つ追加して結合して、更新クエリにします。 UPDATE ((データ LEFT JOIN ルール AS R1 ON [データ].[1桁] = R1.[キャラクター]) LEFT JOIN ルール AS R2 ON [データ].[2桁] = R2.[キャラクター]) LEFT JOIN ルール AS R3 ON [データ].[3桁] = R3.[キャラクター] SET [データ].[1桁] = [R1].[値], [データ].[2桁] = [R2].[値], [データ].[3桁] = [R3].[値]; あるいは、DLookupを使うとシンプルなSQLになります。 UPDATE データ SET [1桁] = DLookup("値","ルール","キャラクター='" & [1桁] & "'"), [2桁] = DLookup("値","ルール","キャラクター='" & [2桁] & "'"), [3桁] = DLookup("値","ルール","キャラクター='" & [3桁] & "'"); ルールが提示のもので固定なら、 UPDATE データ SET [1桁] = Val("&h" & [1桁]), [2桁] = Val("&h" & [2桁]), [3桁] = Val("&h" & [3桁]); なんて方法でも。(16進数→10進数変換)

ticktak
質問者

お礼

ありがとうございます。Dlookup昔使ったことが有りました。しばらく使っていなかったので存在を忘れておりました。 思った通り実行することが出来ました。 どうもありがとうございます。

その他の回答 (2)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

的外れなら御免 UPDATE データ INNER JOIN コード ON [データ].[1桁] = [コード].[キャラクタ] SET [データ].[1桁] = [値]; 如何でしょうか

ticktak
質問者

お礼

回答ありがとうございます。しかしこの方法だと一桁ずつ、三回同じことをしなければならないことになります。これを回避する方法を探しておりました。

noname#222886
noname#222886
回答No.1

データと称するものは 4つの項目からなるテーブルの状態であるのですか?

ticktak
質問者

補足

はい、そうです。 番号,1桁,2桁,3桁の四つのフィールドからなります。 本当に欲しいのはもっと桁数が多いのですが、3桁の番号に簡素化しております。

関連するQ&A