Richiamare il valore di un campo

di il
4 risposte

Richiamare il valore di un campo

Ciao a tutti,

ho un database in cui ho collegato diverse maschere usando l'ID come criterio di collegamento.
In una maschera ho impostato l'inserimento dei dati anagrafici; in un'altra ho impostato l'inserimento di altri dati e un pulsante che, aprendomi un word, mi compila un modulo con i valori presenti in questa seconda scheda. Vorrei, però, che nel modulo comparissero anche i dati anagrafici.

E' possibile, usando il linguaggio VBA, richiamare valori da un'altra maschera? Altrimenti è possibile creare dei valori anagrafici nella seconda maschera che richiamano in automatico i valori dalla prima?

Grazie mille!
Saro

4 Risposte

  • Re: Richiamare il valore di un campo

    Io direi, prima di pensare a Word, di normalizzare il contesto tabelle in Access. Se crei la relazione uno-a-molti semplifichi molte cose. Poi puoi risolvere il problema con una query per poi esportarla in Word...ma c'è qualche dettaglio che dovresti chiarire. Parli anche di maschere...e io non capisco. Descrivi tutto dettagliatamente usando i nomi propri di tutti gli oggetti e campi.
  • Re: Richiamare il valore di un campo

    Dunque, mi spiego meglio chè sono stato troppo sintetico!:)

    Ho creato un file word (il modulo a cui mi riferivo prima), con diversi bookmark distribuiti nella struttura del testo. Diciamo che ho creato i bookmark "x", "y", "z", ecc... .

    Ho creato un database con due tabelle e una maschera collegata a ciascuna di queste. In particolare, in una di queste tabelle ho inserito i campi "Nome", "Cognome", "Data di nascita", ecc... . Nell'altra ho creato i campi "X", "Y", "Z", ecc... . Le due tabelle sono in relazione tramite l'ID. Inoltre, in ciascuna delle due maschere ho creato un pulsante ApriMaschera che apre l'altra selezionando i dati in funzione dell'ID ("Apri la Maschera e trova dati specifici da visualizzare" e ho selezionato il campo ID per entrambe le schede).
    Per cui, allo stato attuale, inserisco i dati anagrafici nella prima, mi sposto sulla seconda e inserisco gli altri dati.
    A questo punto, nella seconda ho creato un pulsante che apre il file word usando il codice:

    Set oApp = CreateObject("Word.Application")
    oApp.Visible = True
    Set oDoc = oApp.Documents.Open ("C:\Saro\Documento.doc")
    oApp.Selection.GoTo What:=wdGoToBookmark, Name:="x"
    oApp.Selection.typeText [X]

    Ora, io ho bisogno che nel file word mi compaiano anche "Nome", "Cognome", "Data di nascita", ecc... . Come posso fare? Posso richiamare i valori dei campi della prima tabella? Se sì, lo posso fare direttamente nel codice di sopra?

    Grazie!
    Saro
  • Re: Richiamare il valore di un campo

    Se non arriva un suggerimento più esperto, provo a dire la mia, almeno a livello teorico.
    Quello che tu stai realizzando va sotto il nome di "stampa unione", prova a fare una ricerca mirata in proposito. Quel codice mi appare incompleto. Hai detto che l'evento di partenza per far migrare i dati è la Maschera2 (mi pare di capire aperta e collegata a MascheraAnagrafica). Ma nessuno ti proibisce di richiamare dati provenienti da MascheraAnagrafica la quale punta sulla "persona corrente". Da essa puoi tranquillamente estrarre i valori con le 3 sintassi:
    Forms!MascheraAnagrafica!Nome
    Forms!MascheraAnagrafica!Cognome
    Forms!MascheraAnagrafica!DataNascita

    Correggi l'intero codice e prendi in considerazione questo ultimo mio suggerimento.
  • Re: Richiamare il valore di un campo

    Ciao sarovi,
    secondo me il concetto per risolvere il tuo problema è il seguente e puoi gestire la cosa da VBA. I dati non li prendi dalle maschere ma dalle tabelle. Anche se non hai spiegato bene quali sono le chiavi primarie delle due tabelle e come sono relazionate (uno a uno o uno a molti), apri un recordset sulla prima tabella (quella con il campo ID) filtrando opportunamente con l'ID il risultato voluto e lo passi al file di word. Finito il recupero dei dati dalla prima tabella, chiudi il recordset creato e ne apri un altro recuperando i dati dalla seconda tabella, filtrando, anche qui, opportunamente i dati cercati e li passi ancora a word.
    Altrimenti, puoi creare una query che metta in relazione le 2 tabelle e recuperare da li i dati voluti in un colpo solo.
Devi accedere o registrarti per scrivere nel forum
4 risposte