Recuperare Nuovo ID da record aggiunto tramite codice

di il
11 risposte

Recuperare Nuovo ID da record aggiunto tramite codice

Ciao sto inserendo tramite codice dei record nuovi nel db....
la tabella comprende come chiave primaria un ID univoco a numerazione automatica
come posso recuperare quel valore dopo aver inserito il record in tabella???

ciao e grazie mille

11 Risposte

  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Risolto
    Msgbox = !ID
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Se ci lavori solo tu va bene, sei in MULTIUTENZA assolutamente NO.
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Lavoro da solo ma Giusto per conoscenza quale sarebbe alternativa?
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Una cosa molto snella... appena dopo INSERT(comando SQL) o UPDATE(Vba su Recordset)
    NewID = DBEngine(0)(0).OpenRecordset("SELECT @@identity FROM NomeTabella")(0)
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Quindi mi sconsigli di inserire un record tramite codice?
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Sai consigliarmi un buon manuale su sql di access??
    onde evitare centinaia di post al riguardo sono un po' arrugginito in materia....

    in secondo luogo...
    vedo che spesso si preferisce fare gli inserimenti in tabella con codice sql anzichè codice VBA
    che differenze ci sono e in quali contesti è meglio usare l'uno anzichè l'altro???

    ciao e grazie mille
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Non si può darti dettagli di cosa sia meglio se non hai una base tecnica che ti consente di capire meglio...
    La realtà è che la regola è conoscere tutti i metodi, con Pro e contro e, in base all'esigenza usare il migliore.
    L'inserimeno da codice ad esempio è più lento che un INSERT, quindi se si devono inserire in modo Massivo dei Records... e l'origine è una Query è inutile pensare di fare un ciclo... anche se ho visto gente che per visualizzare la ProgressBar fa anche cose insulse come queste...
    Ci sono poi le query parametriche che NESSUNO USA in modo corretto...
    Da valutare la VALIDAZIONE dei dati da inserire...
    Le variabili sono molte.

    Non so consigliarti un libro, principalmente perchè un libro non è sufficiente, ci sono libri per l'utilizzo/manipolazione dei DATI che espongono sia metodi ADO che DAO, sia tramite codice su Recordset poi ci sono i comandi SQL... e questa teoria si applica a tutti i Database... anche se ovviamente l'attualità vede NET come metodo moderno, quello di cui parliamo in VB6/VBA è sempre in uso finchè ci sarà VBA.
    Access invece ha necessità di aggiungere a questi temi, l'uso dell'interfaccia e del modello ad oggetti specifico...
    Io ai tempi avevo acquistato 5 Libri di buon livello da un migliaio di pagine ognuno... estremamente specialistici di Normalizzazione, DAO, ADO, SQL, Access(VBA), per un buon totale in Lire...

    In ogni caso se alzi lo sguardo c'è un 3D che suggerisce dei libri... parti da quello che leggi li.
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    DoCmd.RunSQL ("INSERT INTO tbDocumento(idUNICO,NumeroDoc,DataDoc,TipoDocumento,TipoMovimento,TipoPagamento,STATO,Emesso,Nota) SELECT ProvvDoc.[idUNICO],ProvvDoc.[NumeroDoc],ProvvDoc.[DataDoc],ProvvDoc.[TipoDocumento],ProvvDoc.[TipoMovimento],ProvvDoc.[TipoPagamento],ProvvDoc.[STATO],ProvvDoc.[Emesso],ProvvDoc.[Nota] FROM ProvvDoc WHERE ID = " & IDDoc & ";")

    NewID = DBEngine(0)(0).OpenRecordset("SELECT @@identity FROM tbDocumento")(0)

    ho provato ma mi da newid = 0
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Prova usando EXECUTE...
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Funziona perfettamente così
  • Re: Recuperare Nuovo ID da record aggiunto tramite codice

    Emadragon ha scritto:


    Funziona perfettamente così
    RunSQL è un comando di Access, mentre EXECUTE è un comando di JET come OpenRecordset...
Devi accedere o registrarti per scrivere nel forum
11 risposte