Newsgroup: it.comp.appl.access
Titolo: Problema recuperare id ultimo record inserito VBA

Ciao a tutti, ho un problema a recuperare l'id di un record appena
inserito tramite VBA. Praticamente quando cerco di leggere l'id dopo
l'istruzione .update access mi dice "Record eliminato". Questo è il
codice, l'errore appare in corrispondenza dell'ultima linea.
Dim stDocName As String
Dim stLinkCriteria As String
Dim cnn As ADODB.Connection
Dim strSQL As String
Dim rsint As New ADODB.Recordset
Dim rsriepilogo As New ADODB.Recordset
Dim lngIdriepilogo As Long
Set cnn = CurrentProject.Connection
strSQL = "SELECT distinct idcliente FROM interventiesterni WHERE
idcliente = " & Me.comboidcliente & " And Chiuso_tecnico = true And
Chiuso_amministrativo = false"
rsint.Open strSQL, cnn, adOpenDynamic, adLockPessimistic
If Not rsint.EOF Then
        rsriepilogo.Open "riepiloghi", cnn, adOpenDynamic,
adLockPessimistic
        rsriepilogo.AddNew
        If Not IsNull(rsint!IdCliente) Then rsriepilogo!id_cliente =
rsint!IdCliente
        rsriepilogo!DATA = Date
        rsriepilogo.Update
lngIdriepilogo = rsriepilogo!ID_Riepilogo


È il codice rilevante completo? Visto che manca almeno un End If.
Non c'è p.e. una gestione di errore che puo interferire, chiudere
oggetti, variabili...?
Prova di ridurre il codice,  p.e. l'errore succede anche con solo
Dim cnn As ADODB.Connection
Dim rsriepilogo As New ADODB.Recordset
Set cnn = CurrentProject.Connection
rsriepilogo.Open "riepiloghi", cnn, adOpenDynamic, adLockPessimistic
rsriepilogo.AddNew
        rsriepilogo!id_cliente = 999999 'o una ciffra ragionevole
        rsriepilogo!DATA = Date
rsriepilogo.Update
lngIdriepilogo = rsriepilogo!ID_Riepilogo
?
-- 
Ciao
Karl
*********
Access FAQ:  
www.donkarl.com/it
 

 wrote in message 
news:f27f3363-6c98-4846...@y32g2000prc.googlegroups.com...

Immagino  rsriepilogo!ID_Riepilogo  sia un AutoNumber.
Vallo a leggere prima di .Update:
        lngIdriepilogo = rsriepilogo!ID_Riepilogo
        rsriepilogo.Update
Bruno
 

Ciao Bruno,
grazie per la risposta, però il campo è un Id con auto increment e prima 
dell'update il valore è null...

--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---

Ciao Karl,
effettivamente mancava un pezzo, ho copiato solo la parte saliente del codice. 
Ho provato con quello che mi hai mandato tu però in questo caso mi dice "ODBC: 
chiamata non riuscita" in corrispondenza di "lngIdriepilogo = rsriepilogo!ID_Riepilogo" 
e stranamente non inserisce il record in tabella... anche se ho notato che 
il puntatore dell'id viene portato avanti (se inserisco una riga a mano nella 
tabella in automatico mi mette un id=ultimo id + volte che ho provato il 
codice vba)

--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---

 provato il codice vba)
Puo darsi che "ODBC..." vuol dire che non parli di una
tabella di JET/ACE ma di un sistema db diverso?
Questo e quale sarebbe un'informazione "saliente". ;-)



Database SQL Server 2005 con tabelle collegate tramite ODBC di sistema.


 dell'update il valore è null...
Balle!
Bruno
 

 sistema.
Puoi provare di leggere la variabile @@IDENTITY con un nuovo
recordset di ADO:
http://support.microsoft.com/?kbid=232144
