- ベストアンサー
ExcelVBAでMySQLのAUTO_INCREMETを
まず、MySQLで作ったデータベースにAUTO_INCREMETに設定したフィールドがあります。 そして、ExcelVBAのADOで新しいレコードを追加した直後にそのフィールドの値 を取得しようとしています。 レコードセット.addNew レコードセット.update レコードセット.MoveLast としても、取得できるのは更新前の値です。 開くときはadOpenDynamic, adLockOptimisticにしているのですが、 他に何か問題があるのでしょうか? ちなみに、一旦closeした後は新しい値が取得できます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
MySQLの機能の制限事項のようですね。 別途レコードセットを準備しておき Dim rs2 As New ADODB.Recordset . . Set rs2 = cn.Execute("select last_insert_id() last_id") Debug.Print rs2!last_id (cnは共通のコネクション) の要領で挿入されたAUTO_INCREMENT指定の項目の値を取得する必要が あるようです。
お礼
お見事です。 万事解決した上に、またひとつ賢くなれました。 ありがとうございました。