Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Ora funziona perfettamente!
Grazie ancora.
Francesco
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Buongiorno, sono un Pediatra alle prime armi con Access e sto creando un mio database personale per la gestione dei pazienti. Ho creato le seguenti Tabelle:
Ho relazionato le due tabelle (Uno (paziente) a molti (visita)) tramite Chiave ID
Ho creato le seguenti maschere:
Sono in difficoltà a creare una macro che mi permetta, dalla maschera Dettagli paziente, di aprire la maschera Dettagli visita e inserire una nuova visita per quel paziente. Ovviamente se è gia presente una visita me ne deve fare inserire una nuova.
Avrei anche bisogno di avere una casella di testo che mi restituisca l'età anagrafica in anni e mesi. Ho gia provato ad usare questa funzione ma non so come richiamarla:
Public Function YMDgone(ByVal argdate As Date)
' shows difference between argDate and today
' by Karl Donaubauer 24.1.1999 using the DevAshishian boolean-trick ;-)
Dim Ygone As Integer, Mgone As Byte, Dgone As Byte
If IsNull(argdate) Then Exit Function
Ygone = DateDiff("yyyy", argdate, Date) _
Mgone = Int((DateDiff("m", argdate, Date) _
If Day(argdate) <= Day(Date) Then
Dgone = Format(Date, "dd") - Format(argdate, "dd")
Else
Dgone = Day(DateSerial(Year(argdate), Month(argdate) + 1, 0)) _
- Day(argdate) + Day(Date)
End If
YMDgone = Ygone & " year" & IIf(Ygone = 1, " ", "s ") _
& Mgone & " month" & IIf(Mgone = 1, " ", "s ") _
& Dgone & " day" & IIf(Dgone = 1, " ", "s")
End Function
Grazie dell'aiuto.
Francesco
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Ora funziona perfettamente!
Grazie ancora.
Francesco
ciao Francesco,
su evento load della form in cui inserisci le nuove visite invoca :
Private Sub Form_Load()
with me
if Len(.OpenArgs) > 0 Then
.ID=.OpenArgs
End If
end with
End Sub
Personalizza sempre il nome dei controlli che inserisci nella form mi riferisco a quell'anonimo Command110.
ciao, Sandro.
Grazie Sandro! Problema età sistemato.
Purtroppo non riesco ancora a collegare correttamente le due maschere.
Usando il tuo codice:
Private Sub Command110_Click()
DoCmd.OpenForm FormName:="Visita", _
view:=acNormal, _
datamode:=acFormAdd, _
OpenArgs:=Me.ID
End Sub
mi apre la scheda visita ma non mi aggiorna i dati (il campo ID rimane vuoto).
Ti allego due screenshot delle schede (i dati sono fittizi).
Grazie mille.
Francesco.
Buongiorno, sono un programmatore esperto
... e mi diletto di Pediatria ...
Function AnniConMesi(ByVal dtNascita)
Dim rVal
Dim Anni, Mesi
Mesi = DateDiff("m", dtNascita, Date)
Anni = Int(Mesi / 12)
Mesi = Mesi - Anni * 12
rVal= "Anni: " & Anni & " Mesi: " & Mesi
AnniConMesi = rVal
End Function
ciao Francesco,
per quanto all'apertura della form per l'inserimento di una nuova visita direi qualcosa del genere :
Private Sub cmdNewApp_Click()
DoCmd.OpenForm FormName:="[Dettagli visita]", _
view:=acNormal, _
datamode:=acFormAdd, _
OpenArgs:=Me.id_paziente
End Sub
ovviamente personalizza il nome della form Dettagli visita e del paziente .id_paziente con quelli reali del tuo scenario.
Per la data di nascita io valuteri qualcosa del genere :
Public Function age(ByVal dtDB As Date, Optional ByVal dtDate As Date = 0) As Integer
If dtDate = 0 Then dtDate = Date
age = DateDiff("yyyy", dtDB, dtDate) + (dtDate < DateSerial(Year(dtDate), Month(dtDB), Day(dtDB)))
End Function
Evita di pensare all'uso del campo calcolato direttamente nella tabella, questi campi sono adatti per valore che cambiano poco nel tempo e l'eta cambia tutti i giorni.
Il copdice è da inserire in un modulo standard e da richiamare nell'orgine riga di una textBox =age([datanascita]).
Vedi se questo ESEMPIO di può aiutare.
Facci sapere.
Ciao, Sandro.