Microsoft Access 掲示板

Excelから、ACCESSの更新について / 13

21 コメント
views
4 フォロー
13
しん 2024/10/30 (水) 10:59:50 f87c1@9fff4

更新を実行したいクエリのSQL文は、下記の通りです。

SELECT ID, 
仕入コード,
仕入先,
油種コード,
単価_ランク, 
単価_ランク_コード, 
直近3ヶ月, 
仕入, 
Left(Format([直近3ヶ月],"yyyymmdd"),6) AS 日付コード,
 [仕入コード] & "-" & [油種コード] & "-" & [単価_ランク_コード]& "-" &[日付コード] AS 更新合成キー,
FROM MT_検索テーブル;

仕入のフィールドの型は、
単精度浮動小数点型です。

昨日からのアドヴァイスをいただき、検証しました。

実際に利用している単価更新キーは

00-0000-00-202410

このような文字列です。

SQL文に記載のある

Left(Format([直近3ヶ月],"yyyymmdd"),6)

この値をつけると更新できませんが、この値をつけなければ更新できます。

00-0000-00 ⇒更新できます。

sk様のコードでも確認して、更新件数は合致します。

Excel上のマクロは下記の通りです。

.Range(.Cells(2, "J"), .Cells(maxR, "J")) = Format(ActiveCell.Value, "yyyymm")

疑問なのですが、

Left(Format([直近3ヶ月],"yyyymmdd"),6)
.Range(.Cells(2, "J"), .Cells(maxR, "J")) = Format(ActiveCell.Value, "yyyymm")

このコードを実行すると、202410になりますが、ExcelとACCESSでは、異なる値と判断されるのでしょうか?

通報 ...
  • 15
    Left(Format([直近3ヶ月],"yyyymmdd"),6) AS 日付コード
    

    Access側のテーブル[MT_検索テーブル]のフィールド[直近3ヶ月]のデータ型は日付/時刻型なのでしょうか。

    .Range(.Cells(2, "J"), .Cells(maxR, "J")) = Format(ActiveCell.Value, "yyyymm")
    

    Excel 側のワークシート[転送用シート]において、K 列の各セルは J 列を含む他の列のセルを参照する数式セルなのでしょうか。

    [仕入コード] & "-" & [油種コード] & "-" & [単価_ランク_コード]& "-" &[日付コード] AS 更新合成キー
    

    また、[仕入コード]、[油種コード]および[単価_ランク_コード]に相当する列は、Excel 側のワークシート[転送用シート]に存在していないのでしょうか。