[Access] routine per inserimento record da maschera

Anonimo
2010-03-22T15:27:12+00:00

Ciao a tutti, avrai la necessità di scrivere un nuovo record nella tabella1 inserendo nei  campi "uscita" e "etrata1" l'importi ripostati nella casella di testo non assocciata uscitacorrente e entratacorrente.

Preciso che tale inserimento deve avvenire esclusivamente se viene rispettata la condizione chkON.Visible = True e chk3ON.Visible = True

ho provato a scrivere la seguente routine che non riesce inserire i detti importi nella tabella1.

Qualcuno può aiutarmi? Grazie

Private Sub storna_Click()

If chkON.Visible = True Then

ElseIf chk3ON.Visible = True Then

rs.AddNew

rs("uscita") = Me.uscitacorrente

rs("entrata1") = Me.entratacorrente

rs.Update

db.Execute("update Tabella1 set tabella1.uscita") = Me.uscitacorrente

db.Execute("update Tabella1 set tabella1.entrata1") = Me.entratacorrente

    Else

chkON.Visible = False

chk3ON.Visible = False

Me.importo = Null

End If

End Sub

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2010-03-22T17:41:18+00:00

ok.

detto che i controlli  "non collegati" siano chiamati "uscitacorrente" e "entratacorrente" è molto semplice.

  1. append del record:

crea una query di accodamento alla tabella che ti interessa aggiornando i campi con i contenuti dei controlli.

la query in sql dovrebbe essere simile:

INSERT INTO Tabella ( uscita, entrata ) SELECT [forms]![nomemaschera]![uscitacorrente] AS Espr1, [forms]![nomemaschera]![entratacorrente] AS Espr2;

  1. al click sul bottone i controlli perderanno lo stato attivo e quindi i valori verranno momentaneamente "salvati" nei controlli. la routine evento sarà:

If Me.chkON.Visible = True And Me.chk3ON.Visible = True Then

DoCmd.OpenQuery "nomequery"

Else

....

....

...

End If

ciao

La risposta è stata utile?

0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-03-25T10:34:21+00:00

    ciao grazie andrea, dire che va bene

    Posso chiedere se è possibile creare in un unica query di accodamento le varie possibilità in questo esempio (rendendo visibili chkON e chk5ON) intendevo inserire nella taballa1 uscita1 ed entrata2 ma ho notato che non funzion. Puoi dirmi dove sbaglio?

    Grazie

    query

    INSERT INTO Tabella1 ( uscita, entrata1, entrata2 )

    SELECT forms!storni!uscitacorrente AS Espr1, forms!storni!entratacorrente AS Espr2, [forms]![storni]![entratacorrente] AS Espr3

    FROM Tabella1;

    routine click pulsante

     

    Private Sub storna_Click()

    If Me.chkON.Visible = True And Me.chk3ON.Visible = True Then

    DoCmd.OpenQuery "Query3"

    Else

    chkON.Visible = False

    chk3ON.Visible = False

    Me.importo = Null

    End If

    If Me.chkON.Visible = True And Me.chk5ON.Visible = True Then

    DoCmd.OpenQuery "Query3"

    Else

    chkON.Visible = False

    chk5ON.Visible = False

    Me.importo = Null

    End If

    End Sub

    allora

    Query:

    1) nella premessa parli di Tabella1, uscita1, entrata1, ma poi definisci INSERT INTO Tabella1 ( uscita, entrata1, entrata2 )... errore?

    2) forms!storni!uscitacorrente AS Espr1, forms!storni!entratacorrente AS Espr2, [forms]![storni]![entratacorrente] AS Espr3 ... ci andrebbero le parentesi quadre

    3) forms!storni!uscitacorrente AS Espr1, forms!storni!entratacorrente AS Espr2, [forms]![storni]![entratacorrente] AS Espr3 ... definisci due campi uguali  (Espr2 e Espr3)... errore?

    VBA:

    descriviamo la logica della tua operazione.

    SE (If) chkON è visibile E (and) chk3 è visibile esegui la query 3

    poi fai....

    SE (If) chkON è visibile E (and) chk5 è visibile esegui la query 3

    allora deduco che la query3 va eseguita quando  chk3 O (or) chk5 sono visibili E (and) chk è visibile

    quindi:

    if Me.chkON.Visible = True  Then

     if Me.chk5ON.Visible = True or Me.chk3ON.Visible = True then

       DoCmd.OpenQuery "Query3"

      Else

      ........

      endif

    else

    ..........

    End If

    end sub

    non ho capito ancora come e quando vuoi spegnere i controlli e azzerare lme.importo. dopo che è stata eseguita la query? a prescindere, prima di uscire?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-03-23T09:00:17+00:00

    ciao grazie andrea, dire che va bene

    Posso chiedere se è possibile creare in un unica query di accodamento le varie possibilità in questo esempio (rendendo visibili chkON e chk5ON) intendevo inserire nella taballa1 uscita1 ed entrata2 ma ho notato che non funzion. Puoi dirmi dove sbaglio?

    Grazie

    query

    INSERT INTO Tabella1 ( uscita, entrata1, entrata2 )

    SELECT forms!storni!uscitacorrente AS Espr1, forms!storni!entratacorrente AS Espr2, [forms]![storni]![entratacorrente] AS Espr3

    FROM Tabella1;

    routine click pulsante

    Private Sub storna_Click()

    If Me.chkON.Visible = True And Me.chk3ON.Visible = True Then

    DoCmd.OpenQuery "Query3"

    Else

    chkON.Visible = False

    chk3ON.Visible = False

    Me.importo = Null

    End If

    If Me.chkON.Visible = True And Me.chk5ON.Visible = True Then

    DoCmd.OpenQuery "Query3"

    Else

    chkON.Visible = False

    chk5ON.Visible = False

    Me.importo = Null

    End If

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-03-22T17:05:57+00:00

    ciao Andrea, grazie della risposta

    la routine è eseguita su evento su click di un tasto

    chkON e Chk3ON sono delle ettichette che funzionano come delle caselle di controllo.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-03-22T16:08:54+00:00

    scusa ma...

    chkON e Chk3ON che sono?

    e questa routine su che evento dovrebbe essere eseguita?

    La risposta è stata utile?

    0 commenti Nessun commento