DAO modifica da altro utente

di il
8 risposte

DAO modifica da altro utente


Sub AssegnaDataInserimentoGoSign()
Dim strSQL As String
Dim mioID As Integer
Dim rs As DAO.Recordset


mioID = Form_SM_Documenti.ID.Value
strSQL = "SELECT ID, DataInserimentoGoSign FROM TB_Documenti Where ID=" & mioID & ";"


Set rs = CurrentDb.OpenRecordset(strSQL)
rs.Edit
rs.Fields("DataInserimentoGoSign") = Now()
rs.Update
rs.Close
Set rs = Nothing

End Sub

un saluto a tutti,

La mia intenzione sarebbe quella di cambiare uno stato di un controllo in una maschera in visualizzazione “foglio dati” e scrivere nel record in cui ho cambiato lo stato aggirnare la data in un apposito campo.

Per fare ciò ho fatto il codice postato, ma nel momento che chiudo la maschera mi dice che un altro utente ha moficato i record della tabella…..

Ho capito che si trova la tabella più aggiornata di quando lo aperta con la maschera…..

ma non trovo la soluzione.

sia l'utente sia il codice lavorano sulla stessa tabelle.

come posso ovviare a questo problema?

grazie a tutti

8 Risposte

  • Re: DAO modifica da altro utente

    Innanzitutto perché ricorri al metodo update per aggiornare, anziché utilizzare una action query di aggiornamento?

  • Re: DAO modifica da altro utente

    Non saprei come richiamare tale metodo

  • Re: DAO modifica da altro utente

    Mi chiedo perché meno uno ha esperienza e più si sforza per fare cose inutili e sbagliate….

    Quando cambi un dato per aggiornare a Now() basta accedere all'evento beforeupdate di Form ed inserire LI l'aggiornamento.

    Private Sub Form_BeforeUpdate(cancel as integer)
       If Me.Dirty then me.DataInserimentoGoSign=now()
    End sub

    Ovviamente quello che fai è assurdo Tecnicamente ed illogico con Access… stesso dicasi per il suggerimento to di Antony

  • Re: DAO modifica da altro utente

    13/04/2023 - @Alex ha scritto:


    Mi chiedo perché meno uno ha esperienza e più si sforza per fare cose inutili e sbagliate….

    Quando cambi un dato per aggiornare a Now() basta accedere all'evento beforeupdate di Form ed inserire LI l'aggiornamento.

    Private Sub Form_BeforeUpdate(cancel as integer)
       If Me.Dirty then me.DataInserimentoGoSign=now()
    End sub

    Ovviamente quellonche fai è assurdo Tecnicamente ed illogico con Access.

    si così aggiorna il campo DataInserimentoGoSign se cambio valore su qualsiasi colonna e non una specifica, inoltre non posso valutare altri valori dei campi  di quel specifico record che ho modificato per ultimo.

    riguardo all'esperienza, certo che se l'esperienza fosse direttamente proporzionale al fare cose inutili e sbagliate sarebbe molto più grave.

    grazie per la risosta, mi piacerebbe cmq approfondire come poter valutare i campi del singolo record che ho modificato per ultimo nella maschera.

    grazie, ancora

  • Re: DAO modifica da altro utente

    Mettici un po di fantasia… usa il BeforeUpdate del Controllo Associato al campo che vuoi monitorare…!!!!

    Quel metodo di aggiornare in ogni caso non va usato.

  • Re: DAO modifica da altro utente

    Ad ogni modo la cosa che non capisco del codice che hai postato è come intendi utilizzarlo. Ad esempio intendi utilizzare quella sub in un evento click di un pulsante o cosa? Perché buttata cosi im mezzo alle altre sub sfido che entri in esecuzione.

  • Re: DAO modifica da altro utente

    14/04/2023 - Antony73 ha scritto:


    Ad ogni modo la cosa che non capisco del codice che hai postato è come intendi utilizzarlo. Ad esempio intendi utilizzare quella sub in un evento click di un pulsante o cosa? Perché buttata cosi im mezzo alle altre sub sfido che entri in esecuzione.

    Non credo il problema sia questo… ma di concetto tecnico funzionale, è evidente che una SUB per essere attivata se non è legata ad un Evento deve essere richiamata da qualche parte… 

  • Re: DAO modifica da altro utente

    14/04/2023 - Antony73 ha scritto:


    Ad ogni modo la cosa che non capisco del codice che hai postato è come intendi utilizzarlo. Ad esempio intendi utilizzare quella sub in un evento click di un pulsante o cosa? Perché buttata cosi im mezzo alle altre sub sfido che entri in esecuzione.

    ho una masche in visualizzazione foglio dati.

    Un campo è adibito ad una casella di controllo Si/No quando l'utente cambia lo stato da False a True aggiorni il relativo campo DataInserimentoGoSign con il now().

Devi accedere o registrarti per scrivere nel forum
8 risposte