Probleme mit end If / else / end sub

Guten Tag
Kann mir jemand helfen, mein Code geht nicht. Es sollte so ablaufen:

  1. Frage „Wollen Sie“: Wenn nein, abbrechen
  2. Wenn Abfrage VP67=Ja: Meldung „So“ und dann abbrechen
  3. Wenn Abfrage VP67=Nein sowie Abfrage Dcount „Datum“
    = 0: abbrechen ohne Meldung
  4. Wenn Abfrage VP67=Nein und Abfrage Dcount „Datum“=0: die Abfrage ausführen.
    Momentan kommt bei immer End sub erwartet und ich weiss nicht weiter

Private Sub Befehl67_Click()
Function Kieszugbeif()
With CodeContextObject
If MsgBox(„Wollen Sie?“, vbOKCancel + _
vbQuestion, „Kieszug“) = vbOK Then
If (.VPgültigmorgen!VP = 67) Then
MsgBox „so“, vbOKOnly, „“
Exit Function
If ((DCount("[Datum]", „KieszugDatum+1Abfrage“) 0)) Then
Exit Function
DoCmd.OpenQuery „Kies Datum+1“, acViewNormal, acEdit
End Sub

Hallo,

Kann mir jemand helfen, mein Code geht nicht.

teilweise. Ich kann Dir ein paar grundsätzliche Fehler zeigen.
Reparieren kann ich den Code nicht, ich sehe dem noch nicht mal an, womit Du arbeitest. Ich rate mal: Access-VBA. Richtig?

Es sollte so ablaufen:

  1. Frage „Wollen Sie“: Wenn nein, abbrechen
  2. Wenn Abfrage VP67=Ja: Meldung „So“ und dann abbrechen
  3. Wenn Abfrage VP67=Nein sowie Abfrage Dcount „Datum“
    = 0: abbrechen ohne Meldung
  4. Wenn Abfrage VP67=Nein und Abfrage Dcount „Datum“=0: die
    Abfrage ausführen.
    Momentan kommt bei immer End sub erwartet und ich weiss nicht
    weiter

Private Sub Befehl67_Click()
Function Kieszugbeif()

Es gibt verschiedene Prozeduren.
Eine ‚Function‘ ist auch nur eine Prozedur, allerdings eine, die etwas zurück gibt.
Eine Prozedur in eine andere schreiben geht nicht.

Deine Function hat also mehrere Fehler.

  • sie darf nicht in der Sub ‚Befehl67_Click‘ stehen
  • der Funktion werden keine werte übergeben, das ist fast immer nötig
  • Die Funktion gibt nichts zurück

Wie es aussieht, benötigst Du gar keine Function, lösch den Teil einfach raus.
Ersetze ‚Exit Function‘ durch ‚Exit Sub‘, denn das ist wohl, was Du vor hast.

Im restlichen Code scheint es um Access-VBA zu gehen, den Teil verstehe ich nicht, da kann ich nicht helfen.

Gruß Rainer

Private Sub Befehl67_Click()
Function Kieszugbeif()
With CodeContextObject
If MsgBox(„Wollen Sie?“, vbOKCancel + _
vbQuestion, „Kieszug“) = vbOK Then
If (.VPgültigmorgen!VP = 67) Then
MsgBox „so“, vbOKOnly, „“
Exit Function
If ((DCount("[Datum]", „KieszugDatum+1Abfrage“) 0))
Then
Exit Function
DoCmd.OpenQuery „Kies Datum+1“, acViewNormal, acEdit
End Sub

Hallo Peter,

neben dem was Rainer schon sagte, im Code fehlt gelegentlich End If und End With.

Gruß
Reinhard