Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

di il
11 risposte

Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

Buongiorno,
vorrei che mi aiutasse a risolvere la richiesta in argomento.
Avevo in passato realizzato un data base che conteneva dei dati relativi agli iscritti ad una associazione.
Questi dati inseriti nella tabella "Tdatisoci" vengono caricati tramite la maschera "MSoci" in cui si effettuano anche le modifiche.
Nel tempo si sono accumulati parecchi record e risulta quindi poco agevole trovare e modificare un record anche a causa delle omonimie.
Avevo quindi pensato di realizzare una maschera di ricerca che ho chiamato "Mdatisoci".
Questa maschera tramite una casella combinata, ricerca dalla tabella "Tdatisoci" nel campo "Cognomi" il record da modificare visualizzando alcuni dati del record sulla maschera (per verificare che il record da modificare sia proprio quello), tra i record visualizzati c'è il dato univoco relativo al campo CodiceFiscale della tabella "Tdatisoci" .
Il mio desiderio era di leggere e memorizzare questo dato contenuto nella casella di testo "Fiscale" della maschera "Mdatisoci" ed aprire la maschera "MSoci" visualizzando solo il record corrispondente.
Ho provato ad effettuare tramite il generatore di macro questa operazione ma la maschera "MSoci" si apre vuota.
Allego la macro che ho utilizzato senza successo:

Salva Record
ApriMaschera
Nome Maschera MSoci
Visualizzazione Maschera
Nome Filtro
Condizione WHERE =[CodiceFiscale]=[Mashere]![Mdatisoci]![Fiscale]
Modalita immissione dati Aggiungi
Modalita finestra Normale

Grazie a chi potrà aiutarmi.

11 Risposte

  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    Nel tempo si sono accumulati parecchi record e risulta quindi poco agevole trovare e modificare un record anche a causa delle omonimie.
    Se guardi in basso alla maschera c'è una piccola textbox Cerca dove puoi digitare i primi caratteri relativi a qualsiasi campo della maschera. La maschera si posizionerà automaticamente su un valore coerente.
    Altrimenti c'è sempre il tasto Trova con tutte le varie opzioni di ricerca.
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    Salva Record
    ApriMaschera
    Nome Maschera MSoci
    Visualizzazione Maschera
    Nome Filtro
    Condizione WHERE =[CodiceFiscale]=[Mashere]![Mdatisoci]![Fiscale]
    Modalita immissione dati Aggiungi <==== cambia questa
    Modalita finestra Normale
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    Certo inserendo nel campo di ricerca i caratteri del record che si vuole modificare si riesce a trovare il record.
    Il problema è che chi userà in seguito il DB (segretaria utenti vari) non è scontato che abbiano le conoscenze necessarie per evitare di commettere errori digitando dati che potrebbero modificare record diversi da quello voluto.
    Ecco dove nasce l'esigenza di una Maschera di riepilogo dove verificare che il record da modificare sia proprio quello per poi aprire la maschera di immissione dati solo modificando il record selezionato.
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    Philcattivocarattere ha scritto:


    pippo60 ha scritto:


    Salva Record
    ApriMaschera
    Nome Maschera MSoci
    Visualizzazione Maschera
    Nome Filtro
    Condizione WHERE =[CodiceFiscale]=[Mashere]![Mdatisoci]![Fiscale]
    Modalita immissione dati Aggiungi <==== cambia questa
    Modalita finestra Normale
    Fatte tutte le prove inserendo nell'ordine "Modifica" "Aggiungi" "Solo lettura" il risultato non cambia
    Ho fatto un ulteriore tentativo utilizzando una routine generata dalla creazione di un un pulsante:


    Option Compare Database


    Private Sub ModificaTesserato_Click()
    On Error GoTo Err_ModificaTesserato_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "MSoci"

    stLinkCriteria = "[Codicefiscale]=" & "'" & Me![Fiscale] & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Exit_ModificaTesserato_Click:
    Exit Sub

    Err_ModificaTesserato_Click:
    MsgBox Err.Description
    Resume Exit_ModificaTesserato_Click

    End Sub
    Il risultato non cambia, la maschera mi si apre vuota...
    Notavo però che la maschera dati "MSoci" richiamata dalla routine, in basso ha la selezione Filtrato, se seleziono non filtrato mi fa vedere giustamente tutti i record.
    Inoltre ho notato che richiamando la maschera in questione senza la routine (dopo averla eseguita) la maschera mi si apre con il record voluto.
    Ho il dubbio che poiché la stessa maschera viene richiamata in un altra routine per l'inserimento di un nuovo record rimanga predisposta in questa maniera e quindi giustamente vuota.
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    Prova a modificare così
    • Condizione WHERE =[CodiceFiscale]=[Mashere]![Mdatisoci]![CodiceFiscale]
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    Certo inserendo nel campo di ricerca i caratteri del record che si vuole modificare si riesce a trovare il record.
    Il problema è che chi userà in seguito il DB (segretaria utenti vari) non è scontato che abbiano le conoscenze necessarie per evitare di commettere errori digitando dati che potrebbero modificare record diversi da quello voluto.
    Ecco dove nasce l'esigenza di una Maschera di riepilogo dove verificare che il record da modificare sia proprio quello per poi aprire la maschera di immissione dati solo modificando il record selezionato.
    Vedi se può servirti questo documento
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    Fatte tutte le prove...
    Il risultato non cambia, la maschera mi si apre vuota...
    Significa che stai cercando un codice fiscale che non esiste nella tabella associata a quella maschera. Il motivo, detto così, è impossibile da capire.
    Come avviene l'immissione del criterio di ricerca nella maschera Mdatisoci? Possono esserci problemi di spazi superflui alla fine della stringa? Uso di caratteri jolly?
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    Cerco di spiegare meglio tutti i passaggi:
    In una maschera Iniziale che si apre all'apertura del data base ho inserito dei pulsanti che richiamano le varie operazioni da svolgere sul data base.
    Le più importanti (perché modificano i dati nella tabella "TDatiSoci") sono:
    1) La modifica dei dati di un tesserato
    2) L'inserimento di un nuovo tesserato
    Mentre per l'inserimento di un nuovo tesserato l'operazione risulta semplice, aprendo la maschera "MSoci" in modalità modifica si predispone all'inserimento del nuovo record, per la modifica di un tesserato ho previsto l'apertura di una maschera di ricerca chiamata "Mdatisoci".
    In questa maschera tramite una casella combinata vado a selezionare il cognome del tesserato da modificare pescandolo dalla tabella "TDatiSoci" verifico poi visualizzando sempre sulla stessa maschera i dati identificativi del tesserato:
    Cognome, Nome, Data di nascita, Codice Fiscale, e foto(se disponibile).
    Verificato che il tesserato sia proprio quello da modificare, tramite la pressione del pulsante "ModificaTesserato" attivo la routine che ho postato nel messaggio precedente (che allego nuovamente per chiarezza) che apre la maschera "Msoci"

    Routine in esecuzione alla pressione del pulsante "ModificaTesserato":
    Option Compare Database


    Private Sub ModificaTesserato_Click()
    On Error GoTo Err_ModificaTesserato_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "MSoci"

    stLinkCriteria = "[Codicefiscale]=" & "'" & Me![Fiscale] & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

    Exit_ModificaTesserato_Click:
    Exit Sub

    Err_ModificaTesserato_Click:
    MsgBox Err.Description
    Resume Exit_ModificaTesserato_Click

    End Sub
    In effetti ho notato che anche se la maschera si apre vuota in opzione "Filtrato" se pigio il pulsante selezionando "Non Filtrato" mi compaiono tutti i record, se pigio nuovamente "Filtrato" visualizzo il record cercato.
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    ...
    In effetti ho notato che anche se la maschera si apre vuota in opzione "Filtrato" se pigio il pulsante selezionando "Non Filtrato" mi compaiono tutti i record, se pigio nuovamente "Filtrato" visualizzo il record cercato.
    Chissà che impostazioni hai sulla maschera, con tutti i tentativi fatti in precedenza. L'ideale sarebbe ripartire da zero.
    Verifica le impostazioni della scheda "Dati" della proprietà della maschera e lascia quelle standard, dovrebbe funzionare.
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    RISOLTO
    Ho fatto fare ad una macro quello che facevo manualmente, cioè:
    1)Rimuovere i filtri dalla maschere "MSoci"
    2)Reimpostare il filtro Condizione WHERE =[CodiceFiscale]=[Maschere]![Mdatisoci]![Fiscale]

    P.S. sulla condizione WHERE postata in precedenza c'era un errore di sintassi forse all'origine del manato funzionamento???
  • Re: Memorizzare un record da una maschera e aprire un altra maschera con quel record (RISOLTO)

    pippo60 ha scritto:


    sulla condizione WHERE postata in precedenza c'era un errore di sintassi forse all'origine del manato funzionamento???
    quale? [Mashere] anziché [Maschere]? quello?
Devi accedere o registrarti per scrivere nel forum
11 risposte