Se proprio si deve usare l'ODBC (magari con database di vecchia generazione), si usano le classi del namespace System.Data.Odbc, quali per esempio OdbcConnection, OdbcDataReader etc.
Io creerei una funzione del tipo ProssimoID che mi restituisce l'ultimo ID per la data tabella, qualcosa del genere:
codice:
Using connessione As New o.OdbcConnection(StringaConnessione)
connessione.Open()
Dim comando As o.OdbcCommand = connessione.CreateCommand()
comando.CommandText = String.Format("select max({1}) from {0} where {2}", NomeTabella, NomeCampoID, Where)
Dim result = comando.ExecuteScalar()
If result Is DBNull.Value Then
Return 0 '1
Else
Return CInt(result) + 1
End If
End Using