Aiuto! collegamento tra maschere

di il
11 risposte

Aiuto! collegamento tra maschere

Buongiorno a tutti,
premetto che sto ancora studiando le basi di access.
Sto cercando di programmare un db per refertazione e salvataggio di dati di ecocardiografie ed eventualmente, in futuro, ulteriori esami clinici (del sangue, radiografie etc).
Per il momento ho creato una tab Anagrafica e una Ecocardiogramma. ID_Paziente chiave primaria in Anagrafica ed in relazione con ID_paziente di Ecocardiogramma uno-a molti.
Vorrei che dopo aver compilato i dati sulla maschera anagrafica, ci fosse un pulsante che permette di spostarsi nella maschera ecocardiogramma (riferita a quel medesimo ID) e proseguire con l'inserimento dei dati tecnici.
Ho inserito una macro nel pulsante di spostamento tra le maschere di condizione WHERE ="[ID_paziente]=" & [ID_paziente]
che aveva lo scopo di trasferire il codice ID generato automaticamente nella prima maschera, nella seconda maschera. Questa cosa non sembra funzionare,
come posso risolvere?
Ringrazio in anticipo.

11 Risposte

  • Re: Aiuto! collegamento tra maschere

    Ad un pulsante di comando sulla maschera anagrafica, all'evento su clic prova questo codice:
    Private Sub Comando_Click()
    Me.Refresh
    Dim Var As Integer
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("ecocardiogramma", dbOpenDynaset)
    rs.AddNew
    Var = rs!ID_ecocardiogramma.Value
    rs!ID_paziente = Me.ID_paziente
    rs.Update
    rs.Close
    db.Close
    DoCmd.OpenForm "ecocardiogramma", acNormal, , "ID_ecocardiogramma =" & Var
    End Sub
  • Re: Aiuto! collegamento tra maschere

    Volendo usare le macro le istruzioni corrette da implementare sono:
    EseguiComandoMenu
    Comando: SalvaRecord (questa istruzione ti serve soprattutto quando inserisci per la prima volta la scheda dei dati anagrafici del Paziente in Anagrafica)
    ApriMaschera
    Nome maschera: Ecocardiogramma
    Visualizzazione: Foglio dati
    Condizione WHERE: "[ID_Paziente] = [Maschere]![Anagrafica]![ID_Paziente]"
    oppure scritto così "[ID_Paziente] = " & [Maschere]![Anagrafica]![ID_Paziente]
  • Re: Aiuto! collegamento tra maschere

    1) Iniziare il titolo del thread con "Aiuto!" è di utilità nulla, anzi.

    leonardo.molinari ha scritto:


    ...
    premetto che sto ancora studiando le basi di access.
    Sto cercando di programmare un db ...
    Tra la prima riga e la seconda riga che ho quotato devi inserire molto "di tuo". Se la realizzazione di quel database ha tempi ben definiti e stretti, rifletti bene su quello in cui ti sei imbarcato.
    Devi impostare la proprietà DefaultValue del controllo associato ad ID_Paziente nella maschera che apri tramite codice VBA nell'evento Load. Da qualche parte avevo fatto un intervento molto dettagliato... vattelapesca a torvarlo però.
  • Re: Aiuto! collegamento tra maschere

    Innanzitutto grazie a tutti per la disponibilità,
    purtroppo nessuna di queste soluzioni ha risolto il problema: il campo ID_paziente nella maschera Ecocardiogramma non si compila automaticamente con quello randomizzato nella maschera precedente Anagrafica.

    Philcattivocarattere ha scritto:


    Devi impostare la proprietà DefaultValue del controllo associato ad ID_Paziente nella maschera che apri tramite codice VBA nell'evento Load. Da qualche parte avevo fatto un intervento molto dettagliato... vattelapesca a torvarlo però.
    Mi sembra la strada giusta ma avrei bisogno di una guida più dettagliata...
  • Re: Aiuto! collegamento tra maschere

    Per la questione del DefaultValue
    1. Apri in visualizzazione struttura la maschera Ecocardiogramma
    2. Punta il mouse sul campo ID_Paziente, clicca con il tasto destro del mouse e scegli Proprietà
    3. Scheda Tutte
    4. Valore predefinito: [Maschere]![Anagrafica]![ID_Paziente]
    5. Salva tutto

    Questa soluzione è "radicale", ossia ha un senso se usi la maschera Ecocardiogramma SOLTANTO come maschera collegata dal clic del pulsante di Anagrafica. Se apri la maschera Ecocardiogramma da sola, ti apparirà una scomoda finestra di richiesta parametro.
  • Re: Aiuto! collegamento tra maschere

    OsvaldoLaviosa ha scritto:


    Per la questione del DefaultValue
    1. Apri in visualizzazione struttura la maschera Ecocardiogramma
    2. Punta il mouse sul campo ID_Paziente, clicca con il tasto destro del mouse e scegli Proprietà
    3. Scheda Tutte
    4. Valore predefinito: [Maschere]![Anagrafica]![ID_Paziente]
    5. Salva tutto

    Questa soluzione è "radicale", ossia ha un senso se usi la maschera Ecocardiogramma SOLTANTO come maschera collegata dal clic del pulsante di Anagrafica. Se apri la maschera Ecocardiogramma da sola, ti apparirà una scomoda finestra di richiesta parametro.
    ok questo mi è chiaro, credo che però il problema risieda nel fatto che il valore predefinito è preso in maniera del tutto casuale tra uno degli ID_pazienti già registrati, non copia l'ultimo generato nella maschera anagrafica.
  • Re: Aiuto! collegamento tra maschere

    Infatti quella sintassi di attribuzione del DEFAULTVALUE sarebbe da censurare... , se si pensa che scorrendo i Records nella maschera cambia il riferimento...

    Se devi prendere l'Ultimo IdPaziente, sarebbe da capire se sei in MULTIUTENZA o MONOUTENZA... prima di sparare idee malsane.

    Se sei in MultiUtenza sarebbe bene usare @@IDENTITY e recuperare il dato con una funzione dedicata.
    Se sei in MonoUtenza, puoi provare banalmente don DMAX(....)
  • Re: Aiuto! collegamento tra maschere

    leonardo.molinari ha scritto:


    Vorrei che dopo aver compilato i dati sulla maschera anagrafica, ci fosse un pulsante che permette di spostarsi nella maschera ecocardiogramma (riferita a quel medesimo ID) e proseguire con l'inserimento dei dati tecnici.
    Io credo di aver risposto in maniera corretta a questa richiesta. Uso fare anch'io in casi come questo e va alla grande.

    leonardo.molinari ha scritto:


    ok questo mi è chiaro, credo che però il problema risieda nel fatto che il valore predefinito è preso in maniera del tutto casuale tra uno degli ID_pazienti già registrati, non copia l'ultimo generato nella maschera anagrafica.
    Falso. La maschera Ecocardiogramma prende l'ID_Paziente che "in quel momento" figura in maschera Pazienti. Se sei posizionato su "ultimo record", Ecocardiogramma prende quell'ultimo ID_Paziente. Poi chiudi maschera Ecocardiogramma (che so) vuoi posizionarti sul 40° record Pazienti e riaprire Ecocardiogramma. Ecocardiogramma segna l'ID_Paziente corrispondente.
  • Re: Aiuto! collegamento tra maschere

    OsvaldoLaviosa ha scritto:



    Falso. La maschera Ecocardiogramma prende l'ID_Paziente che "in quel momento" figura in maschera Pazienti. Se sei posizionato su "ultimo record", Ecocardiogramma prende quell'ultimo ID_Paziente. Poi chiudi maschera Ecocardiogramma (che so) vuoi posizionarti sul 40° record Pazienti e riaprire Ecocardiogramma. Ecocardiogramma segna l'ID_Paziente corrispondente.
    Sta di fatto che però non funziona, all'apertura della maschera Ecocardiogramma i dati sono già precompilati e sempre quelli del primo paziente immesso
  • Re: Aiuto! collegamento tra maschere

    Ecocardiogramma la apri con il clic del pulsante in maschera Pazienti? Ecocardiogramma, sia pur essendo una maschera a sè...svolge (per così dire) una funzione "subordinata".
  • Re: Aiuto! collegamento tra maschere

    Ragazzi risolto!
    il problema stava nel fatto che la maschera Ecocardiogramma non generava un nuovo record ID_ecocardiogramma.
    Adesso sta funzionando, grazie a tutti davvero.
Devi accedere o registrarti per scrivere nel forum
11 risposte