The way that auto-generated IDs are propagated back into your DataTable when using SqlClient is by including a SELECT statement in the CommandText of your InsertCommand. The Jet and ACE OLE DB providers do not support multiple statements per command so that's not an option. I've written some example code for Access specifically on another site but it's down at the moment so I can't give you the link. Here's another example:
http://support.microsoft.com/kb/816112/en-gb
That code is C# but the principle is exactly the same: handle the RowUpdated event of your data adapter, get the ID from the database and update the DataRow.