👋

[MySQL - ODBC - Access] #Deleted #Deleted #Deleted #Deleted #Deleted

2024/01/24に公開

結論から。Accessのバグです。2022年に報告が挙がっていますが現在(2023年12月)依然Fixされていないので、自力で何とかするしかありません。バグが出ないバージョンのODBCドライバ探しも無駄な時間となるでしょう。ドライバのデベロッパーを変えても同様。MySQL ODBC 8.2, MariaDB ODBC 3.1 にて確認済み。SQLServer のODBCドライバでも発生しているようで、原因はAccessのようです。

その1 主キーに全角

ODBC経由のリンクテーブルで、主キーに全角があると、全カラム #Deleted #Deleted #Deleted… となるようです。

解決策

フロントにAccessを使うのをやめる

主キーに全角を使わないテーブル構造にリファクタリングする

その2 テキストボックスにNULLを代入した

Me.txtCode.Value = rs("code") 'NULLの場合

NULL を設定すると発生するようです。

解決策

NULLを代入しないようにする。

If Not IsNull(rs("code")) Then
    Me.txtCode.Value = rs("code")
End If

#DELETED 覚悟で代入してデータ再取得する

Me.txtCode.Value = rs("code")
Me.Requery

Discussion