Newsgroup: it.comp.appl.access
Titolo: Concatenare Record

Nella MiaMaschera, ho una MiaSottomaschera che mi restituisce parecchi 
record. Come fare per concatenare il contenuto (Testo) dei record della 
sottomaschera, in un unico controllo?
Napoleone 

 ha scritto nel messaggio 
news:%H4be.63452$IN.11...@twister2.libero.it...

Sempre alle prese con l'applicativo per la sanità?
Cosa vuoi dire con concatenare il testo dei record in un unico controllo?
Se ti riferisci alle singole colonne puoi usare una query con un campo che 
raggruppi gli altri:
MioCampo:[Nome] & " " & [Cognome] & " " & [Indirizzo] ecc.
Se ti riferisci alle righe, ai record, basta scrivere qualche riga di codice 
che cicla tra i record ...si, ma quanti record sono?
Insomma non ho capito cosa vuoi fare.
Ciao, Carlo 

 ha scritto nel 
messaggio news:W98be.1288702$35.47...@news4.tin.it...

Ciao Carlo, come va a Cetraro?
... intendevo sottomaschera>campo Diagnosi
siccome ad ogni diagnosi, viene aggiunto un nuovo record che vengono poi 
recuperate dalla query in base al numero di ricovero, tutti recird relavi a 
quel ricovero li vorrei raggruppare in un unico record o controllo ??
Ciao 

quel ricovero li vorrei raggruppare in un unico record o controllo ??
fai una casella di riepilogo includendo tutte le righe della tabella
filtrate per ricovero visualizzato
in modo da avere una "lista" delle sottovoci del ricovero
..o non c'ho capito una mazza? :)

 ha scritto nel messaggio 
news:Qfcbe.64325$IN.11...@twister2.libero.it...

Tutto bene a Cetraro...è da un po' che non ti si sente.
Sono d'accordo con Fabrizio: una casella di riepilogo potrebbe essere la 
scelta giusta.
Siccome la sottomaschera è legata alla maschera principale, immagino con 
l'id del paziente, anche la casella di riepilogo avrà la colonna associata 
all'id del paziente.
Ciao, Carlo 

 Ciao, Carlo
Il mio problema è:
Quando andrò a stampare il report, non voglio vedere stampate le diagnosi
su più righe (che non'è simpatico) tipo:
Diabete.
Cardiopatia ischemica.
B.P.C.O.
ma:
Diabete. Cardiopatia ischemica. B.P.C.O.
Buona giornata 

 Buona giornata
Sì ho capito.
Credo che con un semplice ciclo sul recordset delle diagnosi per quel 
paziente sia la soluzione. Il risultato, inizialmente attribuito ad una 
variabile, lo associ al controllo sul report.
Per esempio ecco una funzione creata per te:
Public Function DimmiTutteLeDiagnosi(IDPaz As Long) As String
Dim rcs As Recordset, i As Integer, MiaSQl As String
Dim MieDiagnosi As String
MiaSQl = "SELECT Anagrafe.IDPaziente, Accesso.Diagnosi FROM Anagrafe INNER 
JOIN Accesso ON Anagrafe.IDPaziente = Accesso.IDPaziente WHERE 
(((Anagrafe.IDPaziente)=" & IDPaz & "));"
Set rcs = CurrentDb.OpenRecordset(MiaSQl)
rcs.MoveLast
rcs.MoveFirst
For i = 1 To rcs.RecordCount
MieDiagnosi = MieDiagnosi & vbcrlf & rcs!Diagnosi
rcs.MoveNext
Next i
rcs.Close
Set rcs = Nothing
DimmiTutteLeDiagnosi = Trim(MieDiagnosi)
'qui puoi scrivere il codice per il controllo sul report
'Me!MioControlloSulReport = Trim(MieDiagnosi)
'ovviamente puoi chiamare la funzione dal report stesso che diventerebbe:
'Me.MioControlloSulReport = DimmiTutteLeDiagnosi(TuoIDPaziente)
End Function
Ciao, Carlo


Per Anagrafe, intendi ??
Per Diagnosi, credo intendi il none del campo della sottomaschera?
Il concatenamento dei vari record, li posso richiamare sia in report, che 
query, che form?
per il momento vorrei capire meglio quanto da te indicato, poi comincio a 
provarlo.
Napoleone

 ha scritto nel messaggio 
news:Brsbe.65794$IN.11...@twister2.libero.it...

Il mio esempio ipotizza che tu abbia una tabella (Anagrafica) con i nomi dei 
pazienti e una tabella (Accesso) con i ricoveri o l'accesso all'ambulatorio 
con relative diagnosi. Le due tabelle sono legate dall'IDPaziente.
Ho postulato che per ogni paziente o meglio per un determinato paziente, tu 
volessi elencare tutte le varie diagnosi a lui correlate attraverso diversi 
ricoveri o accessi ambulatoriali.
Detto questo ho costruito la funzione. Per esempio in un report potresti 
avere l'anagrafica di un paziente e nel sottoreport o in una casella di 
testo l'elenco delle diagnosi a lui relative.
Ho capito male?
Fammi sapere.
Ciao, Carlo 

 ha scritto nel 
messaggio news:kIsbe.826959$b5.36...@news3.tin.it...

Per fortuna in questo ci capiamo benissimo!!
Fosse sempre cosi...
.........................
Spero di provare al più presto e ti faccio sapere
Ciao
Napoleone

[CUT]
Tb_Pazienti >Anagrafica pazienti
Tb_RH_Drg_Storico > Diagnosi di dimissione
DiagnosiDescr > Controllo della sottomaschera in cui memorizzo le diagnosi, 
una per riga.
Quindi il modulo è stato cosi corretto:
------------------------------------------
Public Function DimmiTutteLeDiagnosiDescr(IDPaz As Long) As String
Dim rcs As Recordset, i As Integer, MiaSQl As String
Dim MieDiagnosiDescr As String
MiaSQl = "SELECT Tb_Pazienti.IDPaziente, Tb_RH_Drg_Storico.DiagnosiDescr 
FROM Tb_Pazienti INNER JOIN Tb_RH_Drg_Storico ON Tb_Pazienti.IDPaziente = 
Tb_RH_Drg_Storico.IDPaziente WHERE(((Tb_Pazienti.IDPaziente)=" & IDPaz & 
"));"
Set rcs = CurrentDb.OpenRecordset(MiaSQl)
rcs.MoveLast
rcs.MoveFirst
For i = 1 To rcs.RecordCount
MieDiagnosiDescr = MieDiagnosiDescr & vbCrLf & rcs!DiagnosiDescr
rcs.MoveNext
Next i
rcs.Close
Set rcs = Nothing
DimmiTutteLeDiagnosiDescr = Trim(MieDiagnosiDescr)
'qui puoi scrivere il codice per il controllo sul report
'Me!MioControlloSulReport = Trim(MieDiagnosiDescr)
'ovviamente puoi chiamare la funzione dal report stesso che diventerebbe:
'Me.MioControlloSulReport = DimmiTutteLeDiagnosiDescr(TuoIDPaziente)
End Function
-------------------------------------------
DimmiTutteLeDiagnosiDescr = Trim(MieDiagnosiDescr)
'qui puoi scrivere il codice per il controllo sul report
'Me!MioControlloSulReport = Trim(MieDiagnosiDescr)
'ovviamente puoi chiamare la funzione dal report stesso che diventerebbe:
'Me.MioControlloSulReport = DimmiTutteLeDiagnosiDescr(TuoIDPaziente)
......
questo codice, va lasciato pure nel modulo, credo di no??
---------------------------------------------
Ora io ho una query che mi restituisce tutte le diagnosi, su tanti record
(per ogni ricovero) quante sono le diagnosi di dimissione.
Ti allego  l'SQL
SELECT Tb_RH_Storico.IDRicovero AS Tb_RH_Storico_IDRicovero, 
Tb_RH_Storico.IDPaziente AS Tb_RH_Storico_IDPaziente, 
Tb_RH_Drg_Storico.IDDrgStorico, Tb_RH_Drg_Storico.IDPaziente AS 
Tb_RH_Drg_Storico_IDPaziente, Tb_RH_Drg_Storico.IDRicovero AS 
Tb_RH_Drg_Storico_IDRicovero, Tb_RH_Drg_Storico.Codicedrg, 
Tb_RH_Drg_Storico.DiagnosiDescr
FROM Tb_RH_Storico INNER JOIN Tb_RH_Drg_Storico ON Tb_RH_Storico.IDRicovero 
= Tb_RH_Drg_Storico.IDRicovero
WHERE (((Tb_RH_Storico.IDRicovero) Like [inserisci il numero del 
ricovero]));
Come debbo fare per richiamarmi la diagnosi unica in una Q_Diagnosi_Unica??
E Nel report ci vuole un controllo Non Associato??
DimmiTutteLeDiagnosiDescr = Trim(MieDiagnosiDescr)
'qui puoi scrivere il codice per il controllo sul report
Su evento??
'Me!MioControlloSulReport = Trim(MieDiagnosiDescr)
'ovviamente puoi chiamare la funzione dal report stesso che diventerebbe:
'Me.MioControlloSulReport = DimmiTutteLeDiagnosiDescr(TuoIDPaziente)
Qui non mi è molto chiaro!!!
Abbi pazienza!
Inoltre da questo modulo, posso richiamare la Diagnosi Unica, sia
per IDPaziente che per IDRicovero??
Per il momento mi fermo qui.
Ciao Napoleone

 ha scritto nel messaggio 
news:G2Obe.87341$zZ1.2...@twister1.libero.it...

Un po' complesso da tradurre e da spiegare senza il db in mano.
La Function DimmiTutteLeDiagnosiDescr(IDPaz As Long) As String
prevede un paziente e molte diagnosi a prescindere dal numero di diagnosi e 
presuppone due tabelle: Anagrafica o come si chiama nel tuo db e Accessi con 
il campo diagnosi.
Se vuoi elencare tutte le diagnosi per quel paziente e per un determinato 
ricovero la cosa cambia nel senso che devi aggiungere al recordset la 
variabile ricovero.
Se scrivi Like [inserisci il numero del  ricovero] prevedi che l'utente 
digiti il numero di ricovero e questo si adatta bene alla visualizzazione 
delle diagnosi per quel ricovero. Non si adatta bene per la rappresentazione 
in un report o in una sottomaschera quando volessi visualizzare tutte le 
diagnosi per tutti i ricoveri.
Al posto di Like [inserisci il numero del  ricovero] puoi usare una funzione 
che restituisce il N° di ricovero con una domanda o predisporre un ciclo che 
cicla sui vari numeri di ricovero e quindi senza la domanda.
Tutto dipende da cosa vuoi ottenere.
Se ancora ci sono problemi potresti contattarmi in privato e inviarmi copia 
del db (zippata).
Ciao, Carlo