Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Geburtstagsmelder mit 2 Tagen Vorlauf
zurück: Abfrage-Assistent zur Duplikatsuche und Bereinigung dieser! weiter: Beispiel Db Belegungsplan Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
derArb
getting better


Verfasst am:
14. Aug 2006, 20:19
Rufname: derArb
Wohnort: Berlin

Geburtstagsmelder mit 2 Tagen Vorlauf - Geburtstagsmelder mit 2 Tagen Vorlauf

Nach oben
       

hier ein kleines Beispiel,

beim Anzeigen der Datenbank werden Geburtstage, welche 2 Tage oder einen Tag nach dem aktuellen Datum stattfinden, angezeigt.
Ausserdem auch die aktuellen Geburtstage. Alle Geburtstage werden aus einer Tabelle ausgelesen.
Code:
Private Sub Form_Current()
    MsgBox "Danke an Willi Wipp und Jens von " & _
           "http://www.office-loesung.de ," & Chr(13) & _
           "welche mir sehr viel geholfen haben"
    Dim rs As DAO.Recordset
    Dim i As Integer
    Dim Alter As Variant
    Dim heuteDatum As String
    Dim heuteTagMinusZwei As String
    Dim heuteTagMinusEins As String
    Dim heuteTag As String
   
    ' System Zeit abfragen
    heuteDatum = DateSerial(Year(Date), Month(Date), Day(Date))
    heuteTagMinusZwei = Left(Now + 2, 5)
    heuteTagMinusEins = Left(Now + 1, 5)
    heuteTag = Left(Now, 5)
    ' Tabelle Geburtstag zum Auswerten festlegen
    Set rs = CurrentDb.OpenRecordset("Geburtstag")
    ' Tabelle Geburtstag für Durchsuchung vorbereiten
    With rs
        ' .EOF(end of file) und .BOF(beginn of file) abfragen
        If .EOF And .BOF = True Then Exit Sub
        .MoveLast
        .MoveFirst
        ' Anzahl der Datensätze zählen. Recordcount zählt die Datensätze
        For i = 1 To .RecordCount
            Alter = Right(.Fields("[Datum]"), 4) - _
                    Right(.Fields("[geburtsdatum]"), 4)
            If Left(.Fields("[Datum]"), 5) = heuteTagMinusZwei Then
                If IsNull(Right(.Fields("[geburtsdatum]"), 4)) = True Then
                    Alter = "unbekannte Anzahl"
                End If
                MsgBox .Fields("[Vorname]") & " " & _
                       .Fields("[Nachname]") & _
                       " hat in 2 Tagen Geburtstag. Die Person wird " & _
                       Alter & " Jahre alt"
            End If
            If Left(.Fields("[Datum]"), 5) = heuteTagMinusEins Then
                If IsNull(Right(.Fields("[geburtsdatum]"), 4)) = True Then
                    Alter = "unbekannte Anzahl"
                End If
                MsgBox .Fields("[Vorname]") & " " & _
                       .Fields("[Nachname]") & _
                       " hat morgen Geburtstag. Die Person wird " & _
                       Alter & " Jahre alt"
            End If
            If Left(.Fields("[Datum]"), 5) = heuteTag Then
                If IsNull(Right(.Fields("[geburtsdatum]"), 4)) = True Then
                    Alter = "unbekannte Anzahl"
                End If
                Listfüller = Listfüller & ";" & _
                             .Fields("[Vorname]") & " " & _
                             .Fields("[Nachname]") & _
                             " hat Geburtstag. Die Person ist " & Alter & _
                             " Jahre alt geworden"
                'alternativ
                'Listfüller = Listfüller & ";" & _
                              Left(.Fields("[Vorname]"), 1) & ". " & _
                             .Fields("[Nachname]") & "..." & Alter
                MsgBox .Fields("[Vorname]") & " " & _
                       .Fields("[Nachname]") & _
                       " hat heute Geburtstag. Die Person ist " & _
                       Alter & " Jahre alt geworden"
            End If
            .MoveNext
        Next i
    End With
    rs.Close
    Set rs = Nothing
    Me!lstGeburtstag.RowSource = Mid(Listfüller, 2)
End Sub
eine Beispiel Acess2000 mdb unter (kann natürlich in dieses Forum übernommen werden)
GeburtstageMitVorankuendigung.zip

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Willi Wipp
Moderator


Verfasst am:
15. Jun 2007, 13:46
Rufname:
Wohnort: Raum Wiesbaden

Re: Geburtstagsmelder mit 2 Tagen Vorlauf - Re: Geburtstagsmelder mit 2 Tagen Vorlauf

Nach oben
       

Nachfragen bitte im Thema Geburtstagsmelder mit 2 Tagen Vorlauf {Nachgefragt} stellen!

Hi derArb,

da ist doch noch einiges an "ueberfluessigem" Code drin, hier mal eine etwas andere Variante
Code:
Option Compare Database
Option Explicit

Public Sub SetGeburtstagsliste()
    Dim rs              As DAO.Recordset
    Dim lngAlter        As Long
    Dim strAlter        As String
    Dim strHeute        As String
    Dim strInZweiTagen  As String
    Dim strInEinemTag   As String
    Dim strListe        As String
    Dim strSQL          As String
    Dim strTag          As String
    Dim strText         As String
   
    'System Zeit abfragen
    strHeute = Format$(Date, "mmdd")
    strInZweiTagen = Format$(DateAdd("d", 2, Date), "mmdd")
    strInEinemTag = Format$(DateAdd("d", 1, Date), "mmdd")
    'Abfrage ueber die Tabelle Geburtstag zum Auswerten festlegen
    strSQL = "SELECT *, Format$(GeburtsDatum, 'mmdd') AS GebTag " & _
               "FROM tblGeburtstag " & _
              "WHERE Format$(GeburtsDatum, 'mmdd') Between " & strHeute & _
                                               " And " & strInZweiTagen & _
          " ORDER BY Format$(GeburtsDatum, 'mmdd'), GeburtsDatum DESC"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    'wenn Daten vorhanden
    If Not (rs.EOF And rs.BOF) Then
        rs.MoveFirst
        Do Until rs.EOF 'solange noch DS vorhanden
            lngAlter = DateDiff("yyyy", rs!GeburtsDatum, Date) + _
                      (Format(Date, "mmdd") < Format(rs!GeburtsDatum, "mmdd"))
            strAlter = Format$(lngAlter, "###")
            'Variante 1
'            Select Case rs!GebTag
'              Case strHeute:       strText = "Heute"
'              Case strInEinemTag:  strText = "Morgen"
'              Case strInZweiTagen: strText = "Übermorgen"
'              Case Else                    'sollte eigentlich nicht vorkommen!
'                MsgBox "Das ist ein fehlerhafter Datensatz!"
'            End Select
'            strText = rs!Vorname + " " & rs!Nachname & " hat " & strText & _
'                      "Geburtstag und wird " & strAlter & " Jahre alt."
            'Variante 2
            If strTag <> rs!GebTag Then
                strTag = rs!GebTag
                Select Case strTag
                  Case strHeute:       strText = "Heute"
                  Case strInEinemTag:  strText = "Morgen"
                  Case strInZweiTagen: strText = "Übermorgen"
                  Case Else                'sollte eigentlich nicht vorkommen!
                    MsgBox "Das ist ein fehlerhafter Datensatz!"
                End Select
                strListe = strListe & ";;--- " & strText & " ---;"
            End If
            strText = strAlter & " Jahre alt wird " & _
                      rs!Vorname + " " & rs!Nachname
'            MsgBox strText
            strListe = strListe & ";" & strText
            rs.MoveNext
        Loop
    End If
    rs.Close
    Set rs = Nothing
    MsgBox Mid(strListe, 2)
'    With Me!lstGeburtstag
'        .RowSourceType = "Value List"
'        .RowSource = Mid(strListe, 2)
'    End With
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)


Zuletzt bearbeitet von Willi Wipp am 20. Jun 2007, 15:46, insgesamt 2-mal bearbeitet
derArb
getting better


Verfasst am:
16. Jun 2007, 15:05
Rufname: derArb
Wohnort: Berlin


AW: Geburtstagsmelder mit 2 Tagen Vorlauf - AW: Geburtstagsmelder mit 2 Tagen Vorlauf

Nach oben
       

hallo Willi Wipp,

vielen Dank für die 'Mühe. Ich werds mir beizeiten genauer anschauen

mfg
derArb

_________________
MfG
derArb

Scio me nihil scire...Εν οίδα οτι ουδέν οίδα... Ich weiss, dass ich nichts weiss (Sokrates)
Ich bevorzuge Beiträge mit korrekter deutscher Grammatik.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: SQL: Umsatz nach Kassen, Tagen, Stunden und Obermerkmalen 1 Hobbystern 88 31. Dez 2013, 20:11
Gast SQL: Umsatz nach Kassen, Tagen, Stunden und Obermerkmalen
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahl nach bestimmten Tagen 17 Marja 303 28. Aug 2013, 15:01
Gast Auswahl nach bestimmten Tagen
Keine neuen Beiträge Access Tabellen & Abfragen: Anhand der aktuellen Kalenderwoche nach den Tagen suchen 8 MPrinz 159 13. Apr 2013, 22:28
MPrinz Anhand der aktuellen Kalenderwoche nach den Tagen suchen
Keine neuen Beiträge Access Tabellen & Abfragen: Mittelwert, fortlaufend über best. Anzahl von Tagen 1 Gast 163 30. Aug 2012, 01:08
JMalberg Mittelwert, fortlaufend über best. Anzahl von Tagen
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage Datum | innerhalb 7 tagen 3 misterLuk 184 05. Apr 2012, 10:36
MisterLuk Abfrage Datum | innerhalb 7 tagen
Keine neuen Beiträge Access Formulare: Datumsdifferenz in Tagen : Einfärben 2 Shaddom 197 24. Mai 2011, 20:55
Shaddom Datumsdifferenz in Tagen : Einfärben
Keine neuen Beiträge Access Berichte: Datum in 10 Tagen anzeigen, aber wie??? 2 Gast 260 26. Apr 2011, 12:36
Gast Datum in 10 Tagen anzeigen, aber wie???
Keine neuen Beiträge Access Programmierung / VBA: Navigationsbutton schneller Vorlauf selbst erstellen 1 ralf2307 1302 27. Mai 2009, 15:57
DBKlempner Navigationsbutton schneller Vorlauf selbst erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: errinnerungsabfrage für Termine in den nächsten 30 Tagen 2 benny.b 388 03. März 2009, 11:11
Gast errinnerungsabfrage für Termine in den nächsten 30 Tagen
Keine neuen Beiträge Access Programmierung / VBA: Backup nach 7 Tagen löschen 10 Fienchen 1189 12. Sep 2008, 21:50
Willi Wipp Backup nach 7 Tagen löschen
Keine neuen Beiträge Access Programmierung / VBA: Access VBA Geburtstagsmelder -> Wochenende? 1 Decro 1785 12. Jun 2008, 11:04
DarkTears Access VBA Geburtstagsmelder -> Wochenende?
Keine neuen Beiträge Access Tabellen & Abfragen: bestimmte Anzahl an Tagen von einem Datum abziehen?Fehler? 8 Ramas 3193 11. Feb 2008, 11:31
Willi Wipp bestimmte Anzahl an Tagen von einem Datum abziehen?Fehler?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web