Hallo, liebe Access-Profis,
auf einem Startformular habe ich eine Schaltfläche (cmd_Steuerung_Archiv) eingepflegt, über die der Anwender Archivdateien anlegen soll. Diese Schaltfläche soll aber ausschließlich zum Ende eines Schuljahres angezeigt (zum Test habe ich das heutige Datum eingetragen) werden.
Ich habe nun eine Prozedur geschrieben, bei der ich nicht weiß, wie ich auf die Schaltfläche zugreifen soll:
Private Sub Form_Load()
Dim dDatum As Date
Dim objArchiv As AccessObject
Dim Y As Integer
Y = Year(Date)
Set objArchiv = cmd_Steuerung_Archiv
If dDatum >= DateSerial(Y, 10, 11) And dDatum <= DateSerial(Y, 10, 11) Then
XXXX
End If
End Sub
Wieder mal bin ich für eine Hilfe sehr dankbar!
Viele Grüße
gromax
Hallo,
soll die Schaltfläche nur an einem(!) bestimmten Tag angezeigt werden?
Zudem verstehe ich die IF-Logik nicht.
Private Sub Form_Load()
Me!cmd_Steuerung_Archiv.Visible = DateSerial(Year(Date), 10, 11) = Date
End Sub
Hallo DF6GL,
das mit der If-Logik ist so eine Sache?! Wenn man mit VBA anfängt, generiert man viel Code mit Intuition und es lässt sich nicht immer alles so zu Gänze logisch erklären - vielleicht wär dann das Programmieren vielleicht auch einfacher!
Ja klar brauche ich die Anzeige der Schaltfläche zu einem bestimmten Zeitpunkt im Jahr, nämlich in den letzten beiden Juli-Wochen eines jeden Schuljahres; zu diesem Zeitpunkt sollten die Anwender die Archiv-Dateien anlegen. So habe ich Deinen Inpuls aufgegriffen und adaptiert:
Private Sub Form_Load()
Dim Y As Integer
Y = Year(Date)
If Date >= DateSerial(Y, 7, 15) And Date <= DateSerial(Y, 7, 31) Then
Me!cmd_Steuerung_Archiv.Visible = Date
End If
End Sub
Nachdem ich es mit dem aktuellen Datum getestet habe, scheint dies auch zu funktionieren - oder siehst Du darin noch eine fehlerhafte Eingabe? Ich bin mir nie so ganz sicher!!
Vielen Dank für Deine Hilfe am Wochenende! Super!
Viele Grüße
gromax
Hallo,
naja, der Code ist noch ein bisschen fehlerhaft... ;)
Private Sub Form_Load()
Dim [color=red]lngAktJahr[/color] As [color=red]LONG[/color] 'vernünftig benennen und deklarieren
lngAktJahr = Year(Date)
If Date >= DateSerial(lngAktJahr, 7, 15) And Date <= DateSerial(lngAktJahr, 7, 31) Then
Me!cmd_Steuerung_Archiv.Visible = true 'Die Eigenschaft kann nur Wahr oder falsch werden.
Else
Me!cmd_Steuerung_Archiv.Visible = false ' natürlich auch wieder unsichbar machen, wenn das Datum nicht in den Zeitbereich fällt.
End If
End Sub
etwas komprimierter sieht das so aus:
Private Sub Form_Load()
Me!cmd_Steuerung_Archiv.Visible = Date >= DateSerial(lngAktJahr, 7, 15) And Date <= DateSerial(lngAktJahr, 7, 31)
End Sub
Hallo DF6GL,
das ist schon klasse!! Respekt und vielen Dank!
Alles Gute
gromax