Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65

    [VBA/ACCESS] Campi di ripristino dati

    Salve a tutti

    In una maschera di ACCESS 2k vorrei fare un tasto che se cliccato ripristina i dati come erano all'entrata della maschera (in caso l'utente non voglia confermare le modifiche). So che dovrei lavorare con i recordset ma mi è venuto in mente che potrei fare in un altro modo più semplice.

    Es:
    Il campo "cognome" ha un campo a fianco chiamato "cognomeRipristino"

    Sull'entrata della maschera dovrei mettere
    Me.cognomeRipristino.value = Me.cognome.value
    in modo tale che il tasto Ripristino mi permetta di fare l'operazione inversa
    Me.cognome.value = Me.cognomeRipristino.value

    Vorrei fare in modo che un unica funzione valga per tutti i controlli e ho pensato di fare come segue:
    Sull'entrata della maschera metto
    Call FNCEnterMask(Me)

    la funzione che ho fatto è questa:
    Function FNCEnterMask(NomeForm)
    Dim ctl As Control
    Dim n As Integer

    For Each ctl In NomeForm.Controls
    If ctl.Tag = "Ripristino" Then
    TotField = ctl.name
    Segnaposto = InStrRev(TotField, "Ripristino")
    MyFieldName = Mid((TotField),1, Segnaposto)
    ctl.value = NomeForm.MyFieldName.value
    End If
    Next ctl
    Set ctl = Nothing
    End Function

    Il problema è che NomeForm.MyFieldName.value (che dovrebbe corrispondere a Me.cognome.value) non lo riconosce.
    ho provato con eval(NomeForm.+"MyFieldName"+.value) ma non funziona.

    Come posso fare per far rilevare alla funzione i valori dei campi omonimi dei quelli di ripristino?

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758

    Re: [VBA/ACCESS] Campi di ripristino dati

    Originariamente inviato da km5000
    Il problema è che NomeForm.MyFieldName.value (che dovrebbe corrispondere a Me.cognome.value) non lo riconosce.
    ho provato con eval(NomeForm.+"MyFieldName"+.value) ma non funziona.

    Come posso fare per far rilevare alla funzione i valori dei campi omonimi dei quelli di ripristino?
    codice:
     ctl.value = NomeForm.Controls(MyFieldName).value
    ma mi pare di capire che non sia tanto giusto il sistema

    ctl.Value è già il nome del controllo che deve essere ripristinato, quindi il valore di questo controllo dovrebbe essere preso dal DB... oppure ho capito male il tuo problema?

    TheTruster

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65
    ctl.Value è già il nome del controllo che deve essere ripristinato
    è l'esatto opposto
    ctl.value è il controllo che deve ripristinare l'altro valore che prende il dato dalla tab

    Cmq NomeForm.Controls(MyFieldName).value
    funziona benissimo


    Ti volevo chiedere se possibile un'altra cosa sullo stesso problema.

    Avendo una struttura di visualizzazione dati con 4 schede, c'è la possibilità di richiamare la funzione che ho fatto sul click di ciascuna scheda per chiedere all'utente , quando si clicca su un'altra scheda, se si vuole ripristinare i dati vecchi o lasciarli così(se si sono modificati)?
    Inoltre vorrei fare un controllo sull uscita della maschera che contiene le 4 schede. Che tu sappia è possibile farlo senza elencare in modo statico il percorso diretto Forms!Mask1!Scheda1!cognome ma usando sempre una funzione con ciclo?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.