Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Anzeige #Fehler wenn in einer Funktion Daten fehlen

Begonnen von smily68, Oktober 08, 2013, 15:22:39

⏪ vorheriges - nächstes ⏩

smily68

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

DF6GL

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
   

smily68

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

DF6GL

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