Newsgroup: it.comp.appl.access
Titolo: Id ultimo record inserito in sql server 2005

Salve a tutti,
dopo un pò di tempo ho deciso di migrare un'applicazione che comincia
ad avere una quantità di dati consistente a sql server o mysql:
deciderò in seguito e la cosa non credo sia di vitale importanza dal
momento che utilizzerò odbc per collegare le tabelle e visto che siamo
in rete locale.
Il problema che non riesco a risolvere è quello (già ampiamente
discusso in questo ng) relativo al fatto di avere a disposizione il
valore di un campo contatore (identity in sql server) solo dopo
l'uscita dal record.
La mia situazione è la seguente: maschera padre con sottomaschera.
Nella sottomaschera una casella combinata in cui scelgo un codice.
Dopo l'aggiornamento di questa casella combinata gli altri campi del
record vengono valorizzati automaticamente e in più richiamo una sub
che inserisce altri dati in un'altra tabella. Ovviamente a questa sub
devo passare il codice scelto e l'id del record appena inserito che
però sarà disponibile solo dopo essere uscito da questo stesso record.
C'è qualcuno che si è ritrovato nella mia stessa situazione? Come
avete risolto? C'è la possibilità di salvare il record subito dopo
l'aggiornamento della casella combinata in modo da avere a
disposizione l'id e poi richiamare la sub passando la pk richiesta?
Ciao e grazie,
Luigi

"Luigi" <




----------------------------------------------------------------------------
--
Dai un'occhiata a questa risorsa:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=281
Trovi delle strategie di carattere generale (che sono essenzialmente la
prop. DAO  LastModified, oppure la SP di sistema di SQL Svr  @@Identity).
Dovresti poter applicare una di queste situazioni al tuo caso (al
recordesetclone della subform, direi).
Ciao: Oscar

 Ciao: Oscar
Ciao e grazie mille per la risorsa indicata! Davvero utile. Scendendo
nel pratico io ho questa sitazione: una casella combinata dove
l'utente inserisce un codice e subito dopo vengono chiamate due sub
che a partire da quel codice inserisco dati in un altre tabelle.
Ovviamente per legare queste informazioni uso l'id del record appena
inserito (cioè quello della sottomaschera in  cui l'utente ha digiato
il codice). Una versione semplificata del codice è questa:
Private Sub CodicePrestazione_AfterUpdate()
If (ControllaDuplicati(Me.Parent.IdRicetta, Me.CodicePrestazione) =
False) Then
      Me.Undo
  Exit Sub
End If
    ScriviAnalisi Me.CodicePrestazione, True, False,
Me.Parent.Tariffario
    RiempiRisultati Me.CodicePrestazione, Me.Parent!Riferimento,
Me.Parent!IdRicetta, Me.IdPrestazione, Me.NomePrestazione
bla bla bla....
Il problema è in quel Me.IdPrestazione che mi serve passare alla
seconda sub e che non è disponibile al momento della digitazione del
codice.
Potresti suggerirmi come adattare il codice proposto nel documento a
questa situazione? Ho una discreta esperienza con VBA ma mai prima
d'ora mi sono cimentato con sql server.
Ciao e grazie,
Luigi


Beh, nel tuo caso dovrebbe bastare forzare il salvataggio Record su 
AfterUpdate()
Private Sub CodicePrestazione_AfterUpdate()
If (ControllaDuplicati(Me.Parent.IdRicetta, Me.CodicePrestazione) =
False) Then
      Me.Undo
  Exit Sub
End If
'
DoCmd.RunCommand acCmdSaveRecord
'
