Accsess 07 errinnerung bei erreichtem datum

Hallo zusammen.

Folgendes Problem. Ich habe eine Datenbank (Access 07, ist aber eine mdb) für Mitglieder einer Feuerwehr. Dort auch eine Tabelle mit Beförderungen und anstehende Beförderungen mit Datumsvergabe wann z.b die nächste Beförderung fällig ist.
Ich möchte das beim Start der DB eine Meldung erscheint wenn ein Datum erreicht ist (z.B Mitglied XY zur nächsten Beförderung geeignet.)

Beispiel Mitglied XY ist ab 1.1.2013 bereit für eine neue Beförderung. Wenn der Nutzer der DB an genau diesem Datum oder auch Tage danach die DB öffnet soll eine Meldung kommen das dieses Mietglied eine Beförderung bevorstehen hat.
Zusammen mit den Möglichkeiten „Ok“ Meldung wird nicht mehr angezeigt, oder „abbrechen“ und die Meldung wird beim nächsten Start wieder geöffnet.

Hoffe Ihr könnt mir helfen.

Antworten bitte leicht verständlich

Schon mal danke im Voraus

Grüße Luni69

Hallo,

Folgendes Problem. Ich habe eine Datenbank (Access 07, ist
aber eine mdb) für Mitglieder einer Feuerwehr. Dort auch eine
Tabelle mit Beförderungen und anstehende Beförderungen mit
Datumsvergabe wann z.b die nächste Beförderung fällig ist.
Ich möchte das beim Start der DB eine Meldung erscheint wenn
ein Datum erreicht ist (z.B Mitglied XY zur nächsten
Beförderung geeignet.)

Beispiel Mitglied XY ist ab 1.1.2013 bereit für eine neue
Beförderung. Wenn der Nutzer der DB an genau diesem Datum oder
auch Tage danach die DB öffnet soll eine Meldung kommen das
dieses Mietglied eine Beförderung bevorstehen hat.

Dafür geeignet: Das AutoExec-Makro, das eine Public-Funktion aufruft, die mittels einer Abfrage die entspr. Datensätze liefert und z. B. in einem Formular anzeigt.

Statt Autoexec-Makro käme auch (besser) ein „Start“-Formular in Betracht.

Zusammen mit den Möglichkeiten „Ok“ Meldung wird nicht mehr
angezeigt, oder „abbrechen“ und die Meldung wird beim nächsten
Start wieder geöffnet.

Eine MsgBox ist dafür nicht brauchbar.

Diese Steuerung kann mit einem (weiterem) Ja/Nein-Feld in der Tabelle und ein daran gebundenes Formular-Kontrollkästchen realisiert werden.

Hoffe Ihr könnt mir helfen.

Antworten bitte leicht verständlich

Was ist „leicht“?

Gruß
Franz, DF6GL

Also eine Abfrage hab ich erstellt. Weitere schritte bitte für dummis. Ne DB kann ich aufgrund des assistenten erstellen danach brauch ich genaue anweisungen :x

Moin, Luni,

soll eine Meldung kommen das
dieses Mietglied eine Beförderung bevorstehen hat.

schlechtes Design - was soll angezeigt werden, wenn mehr als einer befördert werden könnte?

Zusammen mit den Möglichkeiten „Ok“ Meldung wird nicht mehr
angezeigt

Schlechtes Design - wenn der Anwender die Beförderung nicht gleich veranlasst, hat er sie bis morgen vergessen.

oder „abbrechen“ und die Meldung wird beim nächsten
Start wieder geöffnet.

Siehe oben.

Nimm Dir Franz’ Ratschlag zu Herzen, rufe beim Start der Applikation eine Routine auf, die alle zur Beförderung Anstehenden markiert.

Gruß Ralf

ps: Falls an der Antwort irgend etwas unverständlich sein sollte - don’t hesitate to ask.

Hallo,
wie gesagt eine Abfrage hab ich schon erstellt. Was muß ich bei dem Datum an Kriterien angeben?
Habe auch ein Formular erstellt das auf diese Abfrage beruht.
Wie bekomme ich es hin das Sich das Formular an dem erreichtem Datum Selbstständig öffnet?
Schon mal danke für die Antwort.
Grüße luni

Moin, Luni,

Was muß ich bei dem Datum an Kriterien angeben?

keine Ahnung, Beamtenrecht kenne ich nicht :frowning:

Habe auch ein Formular erstellt das auf diese Abfrage beruht.
Wie bekomme ich es hin das Sich das Formular an dem erreichtem
Datum Selbstständig öffnet?

Schlechtes Design. Der Anwender sollte gezielt ein Endlosformular öffnen, das ihm alle Kandidaten zeigt. Dieses Formulat sollte sinnvollerweise gleich entgegennehmen, ob und wann jemand befördert wird oder den Grund, warum nicht.

Gruß Ralf

Hallo,

Was muß ich
bei dem Datum an Kriterien angeben?

wenn Du mit dem aktuellen Datum vergleichen möchtest, kannst Du das über die Date()-Funktion abrufen. Also etwa "

Hallo,
ersteinmal Danke für die Antwort.
Ich habe das Kreterium beim Datum angegeben.
Ich habe ein Formular das sich beim öffnen der DB Automatisch öffnet (Ist aber ein anderes Formular nicht das worauf sich die Abfrge beruht).
Wenn ich auf die ereignissprozedur gehe mus ich ja wohl einen neuen VBA Code eingeben der mir dann anzeigt ob auf der gewünchten Abfrage (Formular) ein Datensatz zum anzeigen vorhanden ist.
Wie soll dieser VBA Code aussehn? Und wo gebe ich Ihn ein? Momentan Sieht die Ereignissprozedur so aus:

Option Compare Database

Private Sub Befehl0_Click()
On Error GoTo Err_Befehl0_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Arbeitsmaske“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl0_Click:
Exit Sub

Err_Befehl0_Click:
MsgBox Err.Description
Resume Exit_Befehl0_Click

End Sub

Private Sub Befehl0_Enter()
RunCommand acCmdAppMaximize
DoCmd.Maximize
End Sub
End Sub

Private Sub Befehl1_Click()
On Error GoTo Err_Befehl1_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Personalien“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl1_Click:
Exit Sub

Err_Befehl1_Click:
MsgBox Err.Description
Resume Exit_Befehl1_Click

End Sub
Private Sub Befehl3_Click()
On Error GoTo Err_Befehl3_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Fahrzeugaufträge“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl3_Click:
Exit Sub

Err_Befehl3_Click:
MsgBox Err.Description
Resume Exit_Befehl3_Click

End Sub
Private Sub Befehl6_Click()
On Error GoTo Err_Befehl6_Click

DoCmd.Quit

Exit_Befehl6_Click:
Exit Sub

Err_Befehl6_Click:
MsgBox Err.Description
Resume Exit_Befehl6_Click

End Sub

Private Sub Form_Open(Cancel As Integer)
RunCommand acCmdAppMaximize
DoCmd.Maximize
End Sub
Private Sub Befehl7_Click()
On Error GoTo Err_Befehl7_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Beiträge“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl7_Click:
Exit Sub

Err_Befehl7_Click:
MsgBox Err.Description
Resume Exit_Befehl7_Click

End Sub
Private Sub Befehl12_Click()
On Error GoTo Err_Befehl12_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Fahrzeugdaten“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl12_Click:
Exit Sub

Err_Befehl12_Click:
MsgBox Err.Description
Resume Exit_Befehl12_Click

End Sub
Private Sub Befehl13_Click()
On Error GoTo Err_Befehl13_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Personalien Nicht Mitglieder“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl13_Click:
Exit Sub

Err_Befehl13_Click:
MsgBox Err.Description
Resume Exit_Befehl13_Click

End Sub
Private Sub Befehl15_Click()
On Error GoTo Err_Befehl15_Click

Dim oApp As Object

Set oApp = CreateObject(„Word.Application“)
oApp.Visible = True

Exit_Befehl15_Click:
Exit Sub

Err_Befehl15_Click:
MsgBox Err.Description
Resume Exit_Befehl15_Click

End Sub
Private Sub Befehl16_Click()
On Error GoTo Err_Befehl16_Click

Dim oApp As Object

Set oApp = CreateObject(„Excel.Application“)
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True

Exit_Befehl16_Click:
Exit Sub

Err_Befehl16_Click:
MsgBox Err.Description
Resume Exit_Befehl16_Click

End Sub
Private Sub Befehl17_Click()
On Error GoTo Err_Befehl17_Click

Dim stAppName As String

stAppName = „C:\Programme\Outlook Express\msimn.exe“
Call Shell(stAppName, 1)

Exit_Befehl17_Click:
Exit Sub

Err_Befehl17_Click:
MsgBox Err.Description
Resume Exit_Befehl17_Click

End Sub
Private Sub Befehl21_Click()
On Error GoTo Err_Befehl21_Click

Dim stDocName As String

stDocName = „Seite1_1“
DoCmd.OpenDataAccessPage stDocName, acDataAccessPageBrowse

Exit_Befehl21_Click:
Exit Sub

Err_Befehl21_Click:
MsgBox Err.Description
Resume Exit_Befehl21_Click

End Sub
Private Sub Befehl22_Click()
On Error GoTo Err_Befehl22_Click

Dim stAppName As String

stAppName = „C:\Dokumente und Einstellungen\steffi-maik\Eigene Dateien- Erste Schritte - Tipps.doc“
Call Shell(stAppName, 1)

Exit_Befehl22_Click:
Exit Sub

Err_Befehl22_Click:
MsgBox Err.Description
Resume Exit_Befehl22_Click

End Sub
Private Sub Befehl23_Click()
On Error GoTo Err_Befehl23_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Übungsdienste“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl23_Click:
Exit Sub

Err_Befehl23_Click:
MsgBox Err.Description
Resume Exit_Befehl23_Click

End Sub
Private Sub Befehl25_Click()
On Error GoTo Err_Befehl25_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Druckstudio“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl25_Click:
Exit Sub

Err_Befehl25_Click:
MsgBox Err.Description
Resume Exit_Befehl25_Click

End Sub
Private Sub Befehl35_Click()
On Error GoTo Err_Befehl35_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Anwesend Einsatz“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl35_Click:
Exit Sub

Err_Befehl35_Click:
MsgBox Err.Description
Resume Exit_Befehl35_Click

End Sub
Private Sub Befehl36_Click()
On Error GoTo Err_Befehl36_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Kontakte“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl36_Click:
Exit Sub

Err_Befehl36_Click:
MsgBox Err.Description
Resume Exit_Befehl36_Click

End Sub
Private Sub Befehl37_Click()
On Error GoTo Err_Befehl37_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Inventar“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Befehl37_Click:
Exit Sub

Err_Befehl37_Click:
MsgBox Err.Description
Resume Exit_Befehl37_Click

End Sub
Private Sub Anwesend_Click()
On Error GoTo Err_Anwesend_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = „Anwesendheit“
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Anwesend_Click:
Exit Sub

Err_Anwesend_Click:
MsgBox Err.Description
Resume Exit_Anwesend_Click

End Sub

Hallo,

Ich habe ein Formular das sich beim öffnen der DB Automatisch
öffnet (Ist aber ein anderes Formular nicht das worauf sich
die Abfrge beruht).

dann kanst Du die Überprüfung ja beim Öffnen des speziellen Formulars durchführen.

Wenn ich auf die ereignissprozedur gehe mus ich ja wohl einen
neuen VBA Code eingeben der mir dann anzeigt ob auf der
gewünchten Abfrage (Formular) ein Datensatz zum anzeigen
vorhanden ist.

Ja, mindestens einer.

Wie soll dieser VBA Code aussehn? Und wo gebe ich Ihn ein?
Momentan Sieht die Ereignissprozedur so aus:

Das sind eine Menge Ereignisprozeduren, die Du wohl über den Assistenten für Deine Buttons erstellt hast. Wenn Du jetzt aber Dinge mit VBA machen möchtest, die Dir der Assistent nicht bereitstellen kann, mußt Du selbst Hand anlegen. Dazu öffnest Du das Formular in der Entwurfsansicht, klickst den Button der das spezielle Formular öffnet an und blendest (sofern noch nicht sichbar) über Ansicht - Eigenschaften das Eigenschaftsfenster ein. Da suchst Du dann das Ereignis BeimKlicken (typisch für einen Button) und da sollte bereits [Ereignisprozedur] drinnen stehen. Wenn Du in die Zeile hereinklickst, erscheinen am Ende drei Punkte, über die Du in die Ereignisprozedur im VBA-Editor gelangst. Da würde ich den Code etwa so abändern.

Dim db As Database, rst1 As Recordset
Dim stAbfrage As String
Dim stDocName As String

stAbfrage = „Hier Name der Abfrage eintragen“
stDocName = „Hier Name des Formulars eintragen“

Set db = CurrentDb

Set rst1 = db.OpenRecordset(stAbfrage, dbOpenSnapshot)
rst1.MoveFirst
If rst1.BOF = True And rst1.EOF = True Then
MsgBox („Keine Daten vorhanden!“)
Exit Sub
Else
DoCmd.OpenForm stDocName
End If

rst1.Close
Set rst1 = Nothing
db.Close
Set db = Nothing

Wenn Du im Editor den Cursor auf ein Schlüsselwort, wie zum Beispiel Recordset oder MsgBox setzt und F1 drückst, wird Dir die Hilfe zu den Begriffen angezeigt.

MfG,

ujk