Newsgroup: it.comp.appl.access
Titolo: Problemi con il Report

Salve ragazzi.
Mi potete dire per cortesia dov'è l'errore nel seguente codice?
Private Sub Comando202_Click()
DoCmd.OpenReport "ReportREFERTO_AMBULATORIALE", acViewPreview, ,
("Forms![Form AGGIORNAMENTI]![id-anagraf-paziente] = [tab ANAGRAFICA
PAZIENTI.id-anagraf-paziente] and Forms![Form AGGIORNAMENTI]![Sottomaschera
tab DATI AMBULATORIALI2]![id-dati-clinici]=Forms![Form
AGGIORNAMENTI]![Sottomaschera tab ESAMI-DA-ESEGUIRE]![id-dati-clinici]")
End Sub
In pratica ho una maschera in cui seleziono un paziente da una casella
combinata, due sottomaschere sottostanti mostrano  tutte le visite
effettuate da quel paziente e gli esami eseguiti a fronte di una determinata
visita.
Ora io vorrei che posizionandomi su di una particolare visita (nella prima
sottomaschera), venga stampato il referto ambulatoriale contenente i dati
anagrafici del paziente, la visita specifica selezionata e gli esami
specifici eseguiti (nella seconda sottomaschera) per quella visita.
Il codice scritto mi fa vedere invece tutte le visite effettuate dal
paziente e non solo quella selezionata!
Sinceramente ho fatto diverse prove, ma non ho risolto nulla!
Ora me ne vado a dormire, sarà meglio...
Grazie come sempre
Ciao Rita

 ha scritto nel messaggio
news:viDgc.10102$Qc.4...@twister1.libero.it...

Parentesi tonde?
Hai inserito nella condizione (che mi sembra un po' incasinata) un confronto
a valori presi da due sottomaschere, il report non verrà filtrato.
Oltre al fatto che, a mio parere, non scriverei così la stringa della
condizione...
Ciao.
-- 
Sergio MAZZA

Lucia Rita Carfagno ha scritto:


Questa sintassi:
Forms![Form AGGIORNAMENTI]![Sottomaschera tab DATI
AMBULATORIALI2]![id-dati-clinici]
è sbagliata. Per accedere ad un controllo di una sottomaschera devi
passare attraverso la proprietà Form del controllo che la contiene, cosa
che non hai fatto:
Forms![Form AGGIORNAMENTI]![Sottomaschera tab DATI
AMBULATORIALI2].FORM![id-dati-clinici]
Comunque come criterio mi sembra un po' strano, non credo che possa
funzionare, non puoi passare ad un report un criterio del tipo
[Forms]...=[Forms].....
Devi usare i campi presenti nell'origine dati del report per filtrarlo:
"NomeCampo=" & ValoreCampo & " OR AltroCampo<" & AltroValore
Se la tabella delle visite ha una chiave primaria, per es. IDvisita, puoi
aprire il report passandogli un filtro più semplice:
  DoCmd.OpenReport ("nomeReport", acViewPreview, , "IDvisita=" & _
  me.sottomaschera.form!IDvisita)
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:pnLgc.100483$rM4.4...@news4.tin.it...

Ciao Sergio,
beh si c'è un pò di confusione però quando ho un solo record in
sottomaschera funziona, il problema c'è quando me ne serve uno soltanto tra
tanti.
Poi ho il vizio dei nomi lunghi...
Una domanda sorge spontanea: come scriveresti tu la stringa?
Comunque grazie.
Ciao
Rita

 ha scritto nel messaggio
news:c60ntf$5um$1...@news.newsland.it...

Ciao Namor,
ora metto subito in atto ciò che mi suggerisci.
Grazie mille
Ciao Rita


DoCmd.OpenReport "ReportREFERTO_AMBULATORIALE", acViewPreview, ,
"[id-anagraf-paziente] = " & Me![id-anagraf-paziente] & " And
[id-dati-clinici] = " & Me![Sottomaschera tab DATI
AMBULATORIALI2]![id-dati-clinici]
Sempre che l'origine dati del report abbia i campi: [id-anagraf-paziente] e
[id-dati-clinici]; praticamente hai due tabelle in relazione uno - molti o
no?
Comunque se l'obbiettivo era vedere tutti i dati clinici del paziente non
sarebbe meglio fare una struttura report-sottoreport, proprio identica a
maschera-sottomaschera?
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio
news:aCVgc.105380$rM4.4...@news4.tin.it...

Grazie mille Sergio, sì l'obiettivo è vedere per ogni paziente, immesso una
sola volta, tutte le visite ambulatoriali e, per ognuna di queste, i
relativi esami effettuati ed i certificati rilasciati.
Utilizzerò il tuo codice e lo amplierò, non è un problema.
L'anagrafica pazienti è collegata alla tabella visite ambulatoriali con
uno-a-molti, quest'ultima, tramite la chiave id-dati-clinici collega con
uno-molti le due tabelle : esami eseguiti e certificati.
Comunque penso che vada bene ciò che hai scritto.
Non so, a questo punto, se il report con sottoreport mi avrebbe facilitato
il problema visto che devo stampare una sola visita per volta. Penserò,
comunque, anche a questa soluzione.
    Ciao e grazie
      Rita

 ha scritto nel messaggio
news:aCVgc.105380$rM4.4...@news4.tin.it...

Ciao Sergio,
scusami se approfitto, ma mi spieghi perchè non funziona il codice 'adattato
da me' sulla base di ciò che hai scritto tu?
Sicuramente avrò sbagliato io più di qualcosa.
DoCmd.OpenReport "ReportREFERTO_AMBULATORIALE", acViewPreview, , "[tab
ANAGRAFICA PAZIENTI]![id-anagraf-paziente]=" & Me![id-anagraf-paziente] & "
and [Sottomaschera tab DATI AMBULATORIALI2]![id-dati-clinici]=" &
Me![Sottomaschera tab ESAMI-DA-ESEGUIRE]![id-dati-clinici]
L'id-dati-clinici lega la tabella delle visite a quella degli esami eseguiti
per ogni visita.
Ciao e grazie
Rita

 ha scritto nel messaggio
news:aCVgc.105380$rM4.4...@news4.tin.it...

Sergio scusami, volevo solo dirti che ho risolto.
Ora il report funziona e per risolvere il tutto ho pensato ad una cosa
assurda: utilizzare la tabella della sottomaschera!
Il codice riadattato è il seguente:
DoCmd.OpenReport "ReportREFERTO_AMBULATORIALE", acViewPreview, , "[tab
ANAGRAFICA PAZIENTI]![id-anagraf-paziente]=" & Me![id-anagraf-paziente] & "
and [tab DATI AMBULATORIALI]![id-dati-clinici]=" & Me![Sottomaschera tab
ESAMI-DA-ESEGUIRE]![id-dati-clinici]
Grazie ancora
Ciao Rita

 ha scritto nel messaggio
news:NyXgc.12026$Qc.4...@twister1.libero.it...

Perché assurda? Se ha come origine dati quello che ti serve per i report...
Hai fatto bene...
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:c63a5l$nm0$1...@canarie.caspur.it...

AH! Ok Sergio, mi fa piacere sapere che quando penso sia assurda una cosa
risulta invece azzeccata! Scherzo, ho ancora poca dimestichezza con Access,
lo lascio e lo riprendo di continuo, ma senza approfondire i problemi.....
Grazie come sempre
Ciao Rita
P.S.: Nel prossimo messaggio ho ancora un piccolo problemino....

 P.S.: Nel prossimo messaggio ho ancora un piccolo problemino....
Quale?
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:c63a5l$nm0$1...@canarie.caspur.it...

Salve, pensavo che i guai fosseri terminati!
Ora mi è rimasto da stampare soltanto il certificato rilasciato per quella
visita e per quegli esami.
Il certificato però non è collegato all'anagrafica, ma alla tabella delle
visite tramite il campo [id-dati-clinici].
Il report dei certificati ha come origine dati una 'Query' completa in cui
vado a pescare nome, cognome, data e medico.
Non riesco ad inserire nel codice, però, la query come origine dati, forse
non va fatto così, io non lo so.
Se come origine dati del report scelgo la tabella, poi non so come andare a
prendere nome, cognome ecc. visto che il Dlookup mi dà errore.
Insomma non so cosa fare....
  Grazie Rita

   Grazie Rita
Scusa, hai detto che la query ti restituisce tutti i dati necessari per
avere il certificato?
- dati anagrafici;
- dati certificato (tramite join con visite);
Il report lo associ alla query e quando lo apri in anteprima gli passi come
condizione l'id del certificato, o no?
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:c65b7d$at0$1...@canarie.caspur.it...

Sergio...si hai ragione...però devo vedere, se riesco a connettere ancora lo
farò stasera altrimenti domani, sono tornata da poco dal lavoro e non sono
molto presente.
Ciao e come sempre grazie per la tua disponibilità.
Ciao Rita

 ha scritto nel messaggio
news:c65b7d$at0$1...@canarie.caspur.it...

Ho risolto!
Sergio grazie, mi sei stato di aiuto, il codice è:
DoCmd.OpenReport "Report CERTIFICATO", acViewPreview, , ("[tab
CERTIFICATI]![id-certificato]=" & Me![Sottomaschera tab
CERTIFICATI]![id-certificato])
Ora posso selezionare il certificato e stamparlo.
Grazie Rita

 ha scritto nel messaggio
news:c65b7d$at0$1...@canarie.caspur.it...

Mistero! Ho scoperto che selezionando la visita, vengono selezionati
automaticamente gli esami presenti nella seconda sottomaschera ma non il
certificato presente nella terza sottomaschera!
E' un limite di Access o mio?
Riassumo: la tabella 'Anagrafica pazienti' è collegata tramite
l'id-anagraf-pazienti alla tabella 'visite ambulatoriali' , quest'ultima,
tramite l'id-dati-clinici, collega due tabelle: 'esami clinici' e
'certificati'.
Maschera 'Anagrafica' ---> sottomaschera 'Visite ambulatoriali'    ------>
sottomaschera 'Certificati'
 
                       ------> sottomaschera 'Esami clinici'
Ho controllato e sembra tutto uguale, ma i certificati non scorrono! Forse è
meglio che vada a dormire, altrimenti la prima paziente sono io....
Ciao Rita

 ha scritto nel messaggio
news:2%Xhc.141503$Kc3.4...@twister2.libero.it...

Volevo solo dire che ho risolto il problema della sottomaschera, sono io che
do i numeri!
Ho dimenticato la solita requery!
Ciao grazie
Rita

 Rita
Scusa se non ti ho supportato ma sono un po' incasinato...
Ciao e buon lavoro...
--
Sergio MAZZA

 ha scritto nel messaggio
news:c6agen$ntd$1...@canarie.caspur.it...

Beh non direi che non mi hai aiutata, mi hai fatto riflettere e mi hai dato
comunque dei suggerimenti.
Grazie ciao
Rita