私はAccessで開発されたアプリケーションを維持しています。そして、私は更新クエリを実装する必要がありますが、私は現時点で非常に固執しており、理由を理解できません。Accessデータベースの更新クエリ
基本的に、クエリは同じテーブルの別のレコードに続いてテーブルXのレコードを更新する必要がありますが、私が書いたクエリは何もせず、別々に更新と選択をテストしました。
ご迷惑をおかけして申し訳ございません。ここで
は、私が書いたクエリ(私は長すぎることを避けるために、いくつかのフィールドを削除しなかった、そしてもちろん、あなたが表示されますクエリは、それが欠落しているフィールドの問題ではなかったことを確認する試験を行った)
UPDATE
TABLE_X AS recordToUpdate,
(
SELECT
DUP_C2B_From_CPL.[NUM-GrpHdr],
DUP_C2B_From_CPL.[NUM-LOT],
DUP_C2B_From_CPL.[SINGLE-SCENARIO],
DUP_C2B_From_CPL.EqvtAmt,
DUP_C2B_From_CPL.EqvtAmtCur,
DUP_C2B_From_CPL.EqvtAmtCurTft,
DUP_C2B_From_CPL.XchgRateInfExchangeRate,
DUP_C2B_From_CPL.XchgRateInfRateType,
DUP_C2B_From_CPL.XchgRateInfContractId,
DUP_C2B_From_CPL.ChqTp
FROM DUP_C2B_From_CPL
) AS originalRecord
SET
recordToUpdate.EqvtAmt = originalRecord.EqvtAmt,
recordToUpdate.EqvtAmtCur = originalRecord.EqvtAmtCur,
recordToUpdate.EqvtAmtCurTft = originalRecord.EqvtAmtCurTft,
recordToUpdate.XchgRateInfExchangeRate = originalRecord.XchgRateInfExchangeRate,
recordToUpdate.XchgRateInfRateType = originalRecord.XchgRateInfRateType,
recordToUpdate.XchgRateInfContractId = originalRecord.XchgRateInfContractId,
recordToUpdate.ChqTp = originalRecord.ChqTp
WHERE
recordToUpdate.[SINGLE-SCENARIO] = 112811
です
DUP_C2B_From_CPLここに私が興味を持っているレコードを取得しているサブクエリーがあります。そのサブクエリーは、値を取り込んで別のものに更新することができます。最後のWHERE閉鎖で
、私はあなたのために、より読みやすくするためにIDをハードコード(そしてはい、それは存在している:))
もデザイナーが正しくレンダリングしないので、この辺には何のエラーです。しかし、私が言ったように、それは何も更新していないようです。
さらに詳しい情報が必要な場合は、お気軽に教えてください。
'recordToUpdate'と' originalRecord'の間にJOINはありませんか? (つまり、クエリを更新可能にする必要があると思います) – Andre
*「何も更新していないようです」* - クエリを実行するとどうなりますか?アクセスで「0レコードが更新されました」と表示されるのですか、それとも別のメッセージがありますか? – Andre
こんにちはアンドレ、彼らの間に一意の識別子がないので、私はジョインを行うことはできません。私はまずそれをやろうとしますが、誤ったレコードを更新する結果になる可能性があるため、私はONに固執していました。 @Edit: "クエリを実行するとどうなりますか?アクセスで" 0レコードが更新されました "とか、別のメッセージがありますか? クエリを実行すると、更新する必要があるすべての列が表示されますが、データは含まれていません。私はテーブルをリフレッシュすると、更新する必要があるレコードはありません。 – Nicolas