Ultimo valore o valore max non si aggiorna dopo copia

di il
10 risposte

Ultimo valore o valore max non si aggiorna dopo copia

Ciao a tutti.

Ho una tabella con vari campi di cui il primo è un contatore in chiave primaria.
Con il codice di seguito duplico una riga, senza copiarne appunto la colonna in chiave primaria e nella maschera poi devo visualizzare il campo copiato che per l'appunto è l'ultimo nella tabella. Il tasto duplica è contenuto nella maschera stessa.

	    ...
            Dim STRSQL As String
            Dim rs As Object

            STRSQL = "INSERT INTO Tabelladati ( CreatoDaPC, Stato, Stampa, DataID, Cliente, Codice, PesoNetto, 
            ...  SELECT  ...  FROM Tabelladati WHERE (((Tabelladati.ID)=[Testo404]))"

            DoCmd.RunSQL STRSQL
                      
            MsgBox "Scheda duplicata!"
                       
            MsgBox DLast("[ID]", "tabelladati")
            
            Set rs = Me.Recordset.Clone
            rs.FindFirst "[ID] = " & (DLast("[ID]", "tabelladati"))
            Me.CasellaCombinata593 = DLast("[ID]", "tabelladati")
            If Not rs.EOF Then Me.Bookmark = rs.Bookmark
                                      
            GoTo Fine
            ...	
La copia del record funziona.
Il problema è che non sempre va sull'ultima riga/record inserito; per esempio mi visualizza il record 45 mentre è stato copiato e creato il 52 (per esempio).
Cosa mi manca? cosa non aggiorno?
Grazie

10 Risposte

  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Secondo me hai una strana logica di ragionamento... ma molto strana.

    Commetti sempre un sacco di errori Technici e strutturali,
    Dopo l'aggiornamento della Tabella, il Recordset di Maschera non è affatto aggiornato, quindi serve il REQUERY.

    Devi imparare prima a conoscere gli strumenti perchè fai delle cose non sensate.
    Hai inserito un Record, che sicuramente sarà l'ultimo... francamente non la reputo una tecnica utile, in quanto se tu fossi in ambiente MultiUtenza questo sitema fallirebbe, potresti sincronizzare sul Record di un Collega.

    Non è affidabile quella cosa e soprattutto fatta come la fai non ha alcun senso... NUOVAMENTE.

    Il metodo corretto è recuperare il valore del campo ID usando [@IDENTITY] come mostrato quì dopo aver eseguito la Duplicazione:
    
    last_id = CurrentDb.OpenRecordset("SELECT @@IDENTITY AS LastID")!LastID
    oppure leggendo il valore LASTMODIFIED sempre dopo la duplicazione, studia questo esempio:
    http://allenbrowne.com/ser-57.htm
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Il codice che hai cortesemente indicato non mi da alcun risultato purtroppo.
    MsgBox CurrentDb.OpenRecordset("SELECT @@IDENTITY AS LastID")!LastID
    tanto per intenderci mi restituisce sempre 0

    *il requery in realtà lo faccio sulla casella combinata dove visualizzo l'ID
    non sono a conoscenza se esista un requery dell'intera maschera

    Son ben conscio di non avere il vostro livello purtroppo, grazie per la pazienza

    @Alex ha scritto:


    Secondo me hai una strana logica di ragionamento... ma molto strana.

    Commetti sempre un sacco di errori Technici e strutturali,
    Dopo l'aggiornamento della Tabella, il Recordset di Maschera non è affatto aggiornato, quindi serve il REQUERY.

    Devi imparare prima a conoscere gli strumenti perchè fai delle cose non sensate.
    Hai inserito un Record, che sicuramente sarà l'ultimo... francamente non la reputo una tecnica utile, in quanto se tu fossi in ambiente MultiUtenza questo sitema fallirebbe, potresti sincronizzare sul Record di un Collega.

    Non è affidabile quella cosa e soprattutto fatta come la fai non ha alcun senso... NUOVAMENTE.

    Il metodo corretto è recuperare il valore del campo ID usando [@IDENTITY] come mostrato quì dopo aver eseguito la Duplicazione:
    
    last_id = CurrentDb.OpenRecordset("SELECT @@IDENTITY AS LastID")!LastID
    oppure leggendo il valore LASTMODIFIED sempre dopo la duplicazione, studia questo esempio:
    http://allenbrowne.com/ser-57.htm
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Spero tu abbia adeguato il codice che era ovviamente un tipico...

    Credo manchino troppe basi... quindi lavori senza una logica facendo dei puzzle non sensati di cose che trovi... questo non è un male ma deve essere guidato a capire... in sostanza dovresti applicare una fase di studio e consolidamento di un po di basi altrimenti oltre ad errori grossolani hai difficoltà elementari nel seguire i suggerimenti.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Comprendo e concordo, l'impegno da parte mia c'è. Come hai scritto purtroppo non ho basi sufficientemente adeguate.
    Sicuramente non sempre sono in grado di correggere/adeguare il codice come dovrebbe.

    Prove ne faccio, ma non ottengo i risultati sperati.

    @Alex ha scritto:


    Spero tu abbia adeguato il codice che era ovviamente un tipico...

    Credo manchino troppe basi... quindi lavori senza una logica facendo dei puzzle non sensati di cose che trovi... questo non è un male ma deve essere guidato a capire... in sostanza dovresti applicare una fase di studio e consolidamento di un po di basi altrimenti oltre ad errori grossolani hai difficoltà elementari nel seguire i suggerimenti.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Comunque la riga nella tabella viene inserita.
    Mi chiedo perché la maschera non la veda, mi manca aggiornare non so cosa.
    Purtroppo come ha detto @Alex non uso il metodo corretto dopo inserimento sql (che a mio avviso è corretto), almeno credo.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    No non hai nemmeno capito quello che ti ho suggerito... e questo è il problema.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Eviterei le offese... @Alex sei bravo e competente ok, però... ci sono altri come te. Credo che il forum sia creato per questo. Risolvo da solo, servirà più tempo ma raggiungerò obiettivo, stai tranquillo.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    mobile75 ha scritto:


    Eviterei le offese...
    Se vuoi approfondiamo questa tua impressione di offesa...
    Dirti che non hai capito non è affatto un'offesa è proprio quello che hai dimostrato... NON HAI CAPITO PROPRIO.
    Vedi tu se sfruttare questo suggerimento o ritenerlo offensivo.

    mobile75 ha scritto:


    @Alex sei bravo e competente ok, però... ci sono altri come te. Credo che il forum sia creato per questo. Risolvo da solo, servirà più tempo ma raggiungerò obiettivo, stai tranquillo.
    Ovviamente non è offensivo ne un problema.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Non sono polemico, ci mancherebbe e non è nella mia natura, però non è affatto il modo a mio avviso... poi per quale motivo usare le maiuscole? boh, vabbè.

    A me interessa imparare e migliorare, a te dico solo che potresti sforzarti alcune volte di essere più chiaro e, tuo tempo e voglia permettendo, magari scrivere post con spiegazioni più approfondite. Come detto, ribadisco, sei competente e sul pezzo più di molti di noi frequentatori del forum. Stop.

    Vado avanti con la mia esperienza e sviluppo, buon we. Luca.

    @Alex ha scritto:


    mobile75 ha scritto:


    Eviterei le offese...
    Se vuoi approfondiamo questa tua impressione di offesa...
    Dirti che non hai capito non è affatto un'offesa è proprio quello che hai dimostrato... NON HAI CAPITO PROPRIO.
    Vedi tu se sfruttare questo suggerimento o ritenerlo offensivo.

    mobile75 ha scritto:


    @Alex sei bravo e competente ok, però... ci sono altri come te. Credo che il forum sia creato per questo. Risolvo da solo, servirà più tempo ma raggiungerò obiettivo, stai tranquillo.
    Ovviamente non è offensivo ne un problema.
  • Re: Ultimo valore o valore max non si aggiorna dopo copia

    Tutto ottimo inizia a studiare bene ed appropriarti della conoscenza minima dello strumento poi ne riparleremo.
Devi accedere o registrarti per scrivere nel forum
10 risposte