Hallo
Ich habe eine Funktion geschrieben, die das heute Alter einer Person errechen, aufgrund ihres Geburtsdatums oder aufgrund ihres Alters an einem bestimmten Zeitpunkt. Leider habe ich nicht bei allen Personen diese Angabe. In diesem Fall wird mir im Feld folgendes angezeigt: #Fehler.
Wie kann ich diese anzeige umgehen, damit das Feld einfach leer bleibt.
Hier mein Code:
'Berechnung Alter
intAdreMitglied = rsMitglied!adreMitglied_ID
intAlter = AlterCalcFix(intAdreMitglied)
Public Function AlterCalcFix(intAdreMitglied)
Dim db As DAO.Database
Dim rsAlterCalcFix As DAO.Recordset
Set db = CurrentDb
Set rsAlterCalcFix = db.OpenRecordset("SELECT adreMitglied_ID, adreMitGlied_Alter, adreMitGlied_DatAlter, adreMitGlied_DatGeburt FROM
tblAdresseMitglied WHERE adreMitglied_ID = " & intAdreMitglied)
If IsNull(rsAlterCalcFix!adreMitGlied_DatGeburt) Then
AlterCalcFix = Fix((Date - rsAlterCalcFix!adreMitGlied_DatAlter) / 365.25 + rsAlterCalcFix!adreMitGlied_Alter)
Else
AlterCalcFix = Fix((Date - rsAlterCalcFix!adreMitGlied_DatGeburt) / 365.25)
End If
Set rsAlterCalcFix = Nothing
End Function
Gruss Daniel
Hallo,
eine (von mehreren) quick & dirty-Lösungen:
Set rsAlterCalcFix = db.OpenRecordset("SELECT adreMitglied_ID, nz(adreMitGlied_Alter,0) as MitGlied_Alter, nz(adreMitGlied_DatAlter,0) as MitGliedDatAlter, adreMitGlied_DatGeburt FROM
tblAdresseMitglied WHERE adreMitglied_ID = " & intAdreMitglied)
If IsNull(rsAlterCalcFix!adreMitGlied_DatGeburt) Then
AlterCalcFix = Fix((Date - rsAlterCalcFix!MitGlied_DatAlter) / 365.25 + rsAlterCalcFix!MitGlied_Alter)
Else
AlterCalcFix = Fix((Date - rsAlterCalcFix!adreMitGlied_DatGeburt) / 365.25)
End If
Hallo Franz
In diesem Fall in welchem ich den Code unten anfüge, komme ich immer noch nicht klar. Kannst du mir dabei helfen. Wie muss ich hier den Code (nz) einbauen, damit nicht "#Fehler" im Feld erscheint, wenn das Geburtsdatum und das Alter fehlt, das heisst wenn im Feld Me.txtAlterAktuell keine Daten vorhanden sind.
Public Function AlterKat()
'Anzeige der Alterskategorie anhand des Alters / Geburtsdatums
Dim intAlter As Integer
Dim rsAlterKat As DAO.Recordset
intAlter = Me.txtAlterAktuell
Set db = CurrentDb
Set rsAlterKat = db.OpenRecordset("SELECT * FROM tblCboAlterKat ORDER BY alterKat_Alter", dbOpenSnapshot)
rsAlterKat.FindFirst ("alterKat_Alter >= " & intAlter)
If Not rsAlterKat.NoMatch Then
AlterKat = rsAlterKat!alterKat_Bez
End If
End Function
Hallo,
Public Function AlterKat()
'Anzeige der Alterskategorie anhand des Alters / Geburtsdatums
AlterKat = Currentdb.OpenRecordset("SELECT Top 1 alterKat_Bez FROM tblCboAlterKat Where alterKat_Alter >= " & nz(Me.txtAlterAktuell ,0) & " ORDER BY alterKat_Alter", dbOpenSnapshot)(0)
End Function