Hallo Zusammen,
ich habe ein großes Problem (für mich). :( :(
Vor einigen Jahren habe ich Auswertungsprogramm bekommen.
Indem innerhalb eines Formulars das damalige Kalender-Steuerelement in zweifacher Ausführung (Kalender_1 und Kalender_2) z.B. die Daten vom 01.01.2000 bis 31.01.2000 in einem Bericht anzeigen und ausdrucken konnte.
Wenn ich jetzt das Formular aufrufe kann die Kalender nicht mehr anzeigen und alle andere Funktionen gehen natürlich auch nicht.
Seit zwei Wochen versuche ich nun für die Datumsanzeige zu dem Ergebnis zu kommen aber es geht nicht.
Vielleicht gibt es ja eine Lösung, ich wäre sehr dankbar!!!!
Zur Erklärung habe ich den alten Code beigefügt.
Private Sub Befehl2_Click()
On Error GoTo Err_Befehl2_Click
Dim stDocName As String
Dim linkcriteria As String
Dim AnfDatum As Date
Dim EndDatum As Date
Dim form1 As String
stDocName = "Punktebericht"
form1 = "Berichtsauswahl"
DoCmd.OpenReport stDocName, acPreview, , linkcriteria
Exit_Befehl2_Click:
Exit Sub
Err_Befehl2_Click:
MsgBox Err.Description
Resume Exit_Befehl2_Click
End Sub
Private Sub Kal1_Click()
Dim AnfDatum As Date
Dim EndDatum As Date
Dim KW
Dim Monat As String
Dim Monatsname As String
Dim Jahr As String
AnfDatum = Form_Berichtsauswahl.Kal1.Value
EndDatum = Form_Berichtsauswahl.Kal2.Value
KW = Format(AnfDatum, "ww", vbSunday)
Jahr = Year(AnfDatum)
Monat = Month(AnfDatum)
If (Monat = 1) Then
Monatsname = "Januar"
ElseIf (Monat = 2) Then
Monatsname = "Februar"
ElseIf (Monat = 3) Then
Monatsname = "März"
ElseIf (Monat = 4) Then
Monatsname = "April"
ElseIf (Monat = 5) Then
Monatsname = "Mai"
ElseIf (Monat = 6) Then
Monatsname = "Juni"
ElseIf (Monat = 7) Then
Monatsname = "Juli"
ElseIf (Monat = 8) Then
Monatsname = "August"
ElseIf (Monat = 9) Then
Monatsname = "September"
ElseIf (Monat = 10) Then
Monatsname = "Oktober"
ElseIf (Monat = 11) Then
Monatsname = "November"
Else
Monatsname = "Dezember"
End If
Form_Berichtsauswahl.Text16 = Monatsname
Form_Berichtsauswahl.Text6 = KW
Form_Berichtsauswahl.Text22 = Jahr
End Sub
Private Sub wochabr_Click()
On Error GoTo Err_wochabr_Click
Dim stDocName As String
stDocName = "Wochenabrechnung"
DoCmd.OpenReport stDocName, acPreview
Exit_wochabr_Click:
Exit Sub
Err_wochabr_Click:
MsgBox Err.Description
Resume Exit_wochabr_Click
End Sub
Private Sub punktedruck_Click()
On Error GoTo Err_punktedruck_Click
Dim stDocName As String
stDocName = "Punktebericht"
DoCmd.OpenReport stDocName, acNormal
Exit_punktedruck_Click:
Exit Sub
Err_punktedruck_Click:
MsgBox Err.Description
Resume Exit_punktedruck_Click
End Sub
Private Sub wochendruck_Click()
On Error GoTo Err_wochendruck_Click
Dim stDocName As String
stDocName = "Wochenabrechnung"
DoCmd.OpenReport stDocName, acNormal
Exit_wochendruck_Click:
Exit Sub
Err_wochendruck_Click:
MsgBox Err.Description
Resume Exit_wochendruck_Click
End Sub
Private Sub Befehl15_Click()
On Error GoTo Err_Befehl15_Click
Dim stDocName As String
stDocName = "Monatsabrechnung"
DoCmd.OpenReport stDocName, acPreview
Exit_Befehl15_Click:
Exit Sub
Err_Befehl15_Click:
MsgBox Err.Description
Resume Exit_Befehl15_Click
End Sub
Private Sub Befehl20_Click()
On Error GoTo Err_Befehl20_Click
Dim stDocName As String
stDocName = "Monatsabrechnung"
DoCmd.OpenReport stDocName, acNormal
Exit_Befehl20_Click:
Exit Sub
Err_Befehl20_Click:
MsgBox Err.Description
Resume Exit_Befehl20_Click
End Sub
Private Sub Befehl24_Click()
On Error GoTo Err_Befehl24_Click
Dim stDocName As String
stDocName = "Jahresabrechnung"
DoCmd.OpenReport stDocName, acPreview
Exit_Befehl24_Click:
Exit Sub
Err_Befehl24_Click:
MsgBox Err.Description
Resume Exit_Befehl24_Click
End Sub
Private Sub Befehl25_Click()
On Error GoTo Err_Befehl25_Click
Dim stDocName As String
stDocName = "Jahresabrechnung"
DoCmd.OpenReport stDocName, acNormal
Exit_Befehl25_Click:
Exit Sub
Err_Befehl25_Click:
MsgBox Err.Description
Resume Exit_Befehl25_Click
End Sub
Private Sub Befehl26_Click()
On Error GoTo Err_Befehl26_Click
Dim stDocName As String
Dim stLinkCriteria As String
Dim form1 As String
form1 = "Berichtsauswahl"
stDocName = "Startformular"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Close acForm, form1, acSaveNo
Exit_Befehl26_Click:
Exit Sub
Err_Befehl26_Click:
MsgBox Err.Description
Resume Exit_Befehl26_Click
End Sub
Private Sub Jahresüberblick_Click()
On Error GoTo Err_Jahresüberblick_Click
Dim stDocName As String
stDocName = "Jahresüberblick"
DoCmd.OpenReport stDocName, acPreview
Exit_Jahresüberblick_Click:
Exit Sub
Err_Jahresüberblick_Click:
MsgBox Err.Description
Resume Exit_Jahresüberblick_Click
End Sub
Private Sub zur_Dateneingabe_Click()
On Error GoTo Err_zur_Dateneingabe_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Dateneingabe"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_zur_Dateneingabe_Click:
Exit Sub
Err_zur_Dateneingabe_Click:
MsgBox Err.Description
Resume Exit_zur_Dateneingabe_Click
End Sub
Hallo,
was auch immer die Kal1 und Kal2-Steuerelemente waren, ersetz die beiden durch je ein einfaches Textfeld und stelle die Formateigenschaften
Format/Format auf
Datum,kurz
Format/Datumsauswahl anzeigen auf
Für Datumsangabenps:
ZitatDoCmd.Close acForm, form1, acSaveNo
sollte entfernt werden. dieses Sichern bezieht sich nur auf Formular-Design-Änderungen (Formularentwurf)
Hallo,
und weiterhin:
Die KW Formel ist falsch, liefert zu bestimmten Jahreeswechseln eine falsche KW. Und in Europa fängt die Woche Montags an.
Und die Monatsnamenermittlung ist überflüssig.
Monatsname = MonthName(Month(AnfDatum))
Hallo Klaus,
danke für die schnelle Antwort!
Ich habe die Textfelder gemacht und sie zeigen auch jeweils das andere Datum an, aber ansonsten passiert nichts.
Außerdem habe ich auch die Abfrage (für den Monatsbericht) geändert:
Zwischen [Formulare]![Berichtsauswahl]![Text29] Und [Formulare]![Berichtsauswahl]![Text31]
Vorher stand dort [Kal1] und [Kal2].
LG
Reinhard
Hallo Reinhard,
Vermutlich musst du die Datumswerte in ein SQL-lesbares Format bringen.
Zwischen Format$([Formulare]![Berichtsauswahl]![Text29], "\#yyyy\-mm\-dd\#") Und Format$([Formulare]![Berichtsauswahl]![Text31], "\#yyyy\-mm\-dd\#")
Da man das öfter mal braucht, schreibt man dafür am Besten eine Function,
die den formatierten Datumsstring zurück gibt.
Public Function SQLDatum(ByVal datWert As Date) As String
SQLDatum = Format$(datWert, "\#yyyy\-mm\-dd\#")
End Function
In Abfragen dann so verwenden
... SQLDatum(Tabelle.Datumsfeld) ...
gruss ekkehard
Hallo Ekkehard,
wenn ich Deinen Code in die Abfarge einfüge bekomme ich immer die Antwort: der von Ihnen eingegebene Ausdruck ist syntatisch falsch :(.
Trozdem danke, ich propier es weiter.
LG Reinhard
Hallo Reinhard,
Den Syntaxfehler finde ich leider nicht. Vielleicht schaut jemand anders mal
drüber.
Einen anderen Fehler habe ich jedoch selbst gemacht; - in Abfragen muss es
[Forms] statt [Formulare] heissen.
gruss ekkehard
Hallo,
@Larix
was hast Du wo eingefügt?
Poste mit C&P die vollständige Prozedur und den SQL-String der Abfrage..