データベースのバックエンド MS Access 2003 を MySQL 5.1 にアップグレードしました。バックエンド MYSQL 5.1 データベースを ODBC (MySQL ODBC 5.1 Driver) 経由で MS Access フロントエンド .mdb にリンクしています。
DAO レコードセットを使用しています。.AddNew メソッドを使用して新しいレコードを追加し、使用して更新します
.Update メソッド; 更新ステートメントの後、自動番号フィールドを変数にフェッチして、
「実行時エラー '-2147352567 (80020009)' 現在のレコードがありません」エラー。
ただし、MS-Access 2003 バックエンドを持つ以前のバージョンでも同じコードが機能します。
'new
if bNew = true then
lngInvoiceID = 0
else 'edit ,
lngInvoiceID = Forms("frmInvoice").[tbInvoiceID].value
end if
Set rstAux = dbsLocal.OpenRecordset("Select * from tblElectronicInvoices where
eipID = " & lngInvoiceID, dbOpenDynaset, dbSeeChanges)
rstAux.AddNew
rstAux.Update
lngInvoiceID = Nz(rstAux.Fields("eipID"), 0)
'自動番号フィールドである eipID を取得しようとすると、現在のレコードがありませんというエラーが発生します。
以前の MS Access コードには、フロントエンドへのバックエンド リンク テーブルへのアクセスがあります。dbSeeChanges のオプションが指定されておらず、update ステートメントの前に、autonumber フィールドの新しい ID を取得できました。