come spostarsi alla casella di testo inferiore?

Anonimo
2015-08-14T00:59:30+00:00

Ciao a Tutti!

ho questa domanda da farvi:

Ho un database già popolato, con una tabella e una maschera collegata. Dovrei creare un ciclo (o for o while) che mi permette di fare un controllo e in caso di bisogno modificare dei dati. il comando da eseguire su tutte le righe della tabella è questo:

If Me.eta < 15 Then

Me.esente = "S"

Me.motivazione = "Minore di 15 anni"

Non so come spostare il "cursore" sulla riga sucessiva, per far eseguire l codice su tutta la tabella. Esiste un codice vba che mi permette questo?

Grazie mille!

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

10 risposte

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Anonimo
    2015-08-14T12:02:57+00:00

    ciao Zamlix,

    il suggerimento circa l'utilizzo della query di aggiornamento è volto ad aggiornare, appunto, i dati della tabella esistente, nella compilazione dei dati nuovi sarebbe bene accertarsi che i controlli siano compilati adeguatamente, così' eviti di doverli aggiornare in un secondo tempo.

    ad ogni modo, qualore non lo fossero (compilati adeguatamente) la query di aggiornamento aggiorna tout court, quindi in caso di necessità la puoi lanciare.

    Potresti pensare, di preoccuparti di aggiornare solo i dati di nuova importazione anziché tutti quelli presenti nella tabella...

    Ancora:

    visto che il campo esente ha solo un valore non vedrei male l'utilizzo di un campo si/no ( booleano)

    il codice a quel punto potrebbe essere :

    Me.esente = Me.eta < 15

     e prendendo spunto dall'ottimo suggerimento di Mimmo :

    Me.motivazione = IIf(Me.eta < 15, "minore anni 15", vbNullString)

    quindi tutto assieme hai :

    Private Sub eta_AfterUpdate()

    Me.esente = Me.eta < 15

    Me.motivazione = IIf(Me.eta < 15, "minore anni 15", vbNullString)

    End Sub

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-08-14T11:39:05+00:00

    Grazie mille ragazzi! Il mio database importa blocchi di dati ogni 3 mesi quindi la query di aggiornamento potrebbe essere la piu comoda. Non  un problema se la eseguo su dati che sono già stati aggiornati vero?

    Solo per curiosità, sapete dirmi come "spostare" il cursore nelle textbox sotto? Scusatemi ma da poco ho cominciato ad usare access e la curiosità è tanta!

    Grazie mille!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-08-14T10:35:47+00:00

    Ciao,

    sulla form puoi impostare direttamente i controlli tramite la funzione IIF, ad esempio il controllo Esente avrà come origine controllo

    =IIF(Eta<15;"S";"")

    mentre il controllo Motivazione lo puoi impostare a

    =IIF(Eta<15;"Minore di 15 anni";"")

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-08-14T06:44:15+00:00

    ciao zamlix,

    se la tabella è già popolata e necessiti di aggiornare i campi esente e motivazione, direi che una query di aggiornamento fa al caso tuo:

    UPDATE tuaTabella

                  SET tuaTabella .esente = "S",

                  tuaTabella .motivazione = "minore anni 15"

    WHERE tuaTabella .eta<15;

    direi che non è il caso di appoggiarsi ad un recordset per aggiornare riga per riga.

    in fase di nuova popolazione dati, dopo aggiornamento della textBox età della tua form io procederei in questo modo :

    Private Sub eta_AfterUpdate()

    If Me.eta < 15 Then

        Me.motivazione = "minore"

        Me.esente = "s"

    Else

        Me.motivazione = vbNullString

        Me.esente = vbnullstirng

    End If

    End Sub

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento