PDA

View Full Version : Problema con Access


X-Hunter
07-09-2004, 18:55
Ciao a tutti....
Ho bisogno del vostro aiuto!

Ho un problemino con access.

Spiego brevemente il problema:
Ho due tabelle, una chiamata Pazienti (con all'interno i campi di anagrafica, nome, cognome, ecc....) e una chiamata Pagamenti (destinata alla memorizzazione dei pagamenti effettuati dai pazienti). Entrambe unite tramite tecnica delle chiavi esterne.

Ho realizzato per la gestione grafica delle tabelle le maschere che mette a disposizione access. Questa maschera è costituita dalla zona "Anagrafica" con tutti i dati anagrafici del paziente e da una sotto maschera con i pagamenti di quel singolo paziente.

Il mio problema sta nel fatto che nel campo "Totale Versato" (vedi l'immagine allegata) devono potersi inserire, automaticamente e dinamicamente, la somma dei pagamenti effettuati dal singolo paziente e con la possibilità che il campo venga aggiornato ogni qualvolta che io decida di cambiare record del db.

Spero di essere stato il più chiaro possibile.
Io ho fatto tutto...manca solo questo piccolo particolare che non riesco a risolvere.

Come posso risolverlo? c'è qualcuno che ha idea di come affrontarlo?
Io ho provato a fare qualcosa ma tutto con esito negativo...

Aspetto vostri consigli!

Grazie a chi risponderà!

/Daniel
http://daniel84.altervista.org/Foto/1.jpg

cere
09-09-2004, 09:19
Prova a creare una function in un modulo tipo questa:

Public Function gf_Somma(lv_Paziente As String) As Long
Dim lo_RekSet As ADODB.Recordset
Dim lv_Select As String
On Error Resume Next
Err.Clear
Set lo_RekSet = New ADODB.Recordset
lo_RekSet.CursorLocation = adUseClient
lv_Select = "Select sum (TuoCampoAcconto) as lv_Total From [TuaTabellaPagamenti]" & _
" WHERE [TuoCodicePaziente] = '" & lv_Paziente & "'"
lo_RekSet.Open lv_Select, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
lo_RekSet.MoveFirst
If Err.Number = 0 Then
gf_Somma = lo_RekSet.Fields(0).Value
End If
lo_RekSet.Close
On Error GoTo 0
End Function

Basta chiamare la function quando ti serve.

TuaCaselladitestoTotaleVersato = gf_Somma(TuoCodicePaziente)

Naturalmente devi assegnare alle variabili il tipo dati che ti serve, nell’esempio ho usato String e Long ma non so cosa usi nel tuo DB.

Ciao, Cere.