Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: smily68 am Oktober 08, 2013, 15:22:39

Titel: Anzeige #Fehler wenn in einer Funktion Daten fehlen
Beitrag von: smily68 am Oktober 08, 2013, 15:22:39
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
Titel: Re: Anzeige #Fehler wenn in einer Funktion Daten fehlen
Beitrag von: DF6GL am Oktober 08, 2013, 15:33:57
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
   
Titel: Re: Anzeige #Fehler wenn in einer Funktion Daten fehlen
Beitrag von: smily68 am Oktober 16, 2013, 09:57:29
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
Titel: Re: Anzeige #Fehler wenn in einer Funktion Daten fehlen
Beitrag von: DF6GL am Oktober 16, 2013, 10:28:23
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