mdbアクセスデータベースに新しい行を挿入した後に、Auto_Incrementプライマリキー(id)を取得する必要があります。 mdbファイルも古いAccess 97バージョンにあるため、サポートされていないため「SELECT @@ Identity;」を使用できません。古いmdbデータベースで自動インクリメントの主キーを取得する方法は?
さらに、マルチユーザー環境では、私はMax(ID)を使用する考えが嫌いです。
実際に私が持っている唯一の解決策は、それがとしてDAOを使用することです:
Dim db As Database 'Test Database
Dim rs As Recordset 'Test Table
...
rs.AddNew
id = rs!id
が、私はフルマネージド.NETを持っていると思いながら、私は、DAO COM DLLへの参照を追加する必要がありますコード。
DAOまたはMax(ID)を使用せずに(新しい行を挿入した後に)Auto_Incrementプライマリキーを取得する方法はありますか?
Using oConn As New OleDbConnection(m_ConnString)
oConn.Open()
Using cmd As New OleDbCommand(sqlInsert, oConn)
cmd.ExecuteNonQuery()
End Using
End Using
ありがとう:
ここに私のコードは、新しい行を追加します。
挿入を行い、トランザクション内で選択すると、Maxを使用できます。それは私が知っているビットクラップですが、それはAccess97 ... –
申し訳ありませんが、私はあなたが後でアクセス形式にMDBを更新することができない限り、DAOの参照を使用する必要があると思います。トニーのコメントは正しい - 私は本当にアクセストランザクションを信頼するかどうかはわかりませんが、それを行えます。 –
@トニー:取引では大丈夫ですが、Maxは私が避けたいオーバーヘッドを作り出しています。 – gingo