Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Walterio am Dezember 17, 2021, 09:16:32

Titel: Absturz bei DoCmd.RunCommand
Beitrag von: Walterio am Dezember 17, 2021, 09:16:32
Hallo

Als Click-Ereignis (einer Befehlstaste in einem Format) wird die Funktion > Lösch_Messblock()< aufgerufen, in welcher eine Hilfstabelle gefüllt wird; am Schluss dieser Funktion wird ein Formular aufgerufen der diese Tabelle anzeigt. Der korrekten Forlmular-Anzeige folgt aber ein Absturz mit dem Laufzeitfehler 3329.
Hier bitte ich um Hilfe.
Die Funktion aufrufendes Modul:
Private Sub cmdDelMessblock_Click()
    On Error Resume Next
    DoCmd.RunCommand Lösch_Messblock() <-- hier steht er bei der Fehlermeldung
    On Error GoTo 0
End Sub          ' cmdDelMessblock_Click
Hier schematisch die Funktion:_
 Public Function Lösch_Messblock()
    Dims   ...   
    DoCmd.SetWarnings False
---Abfrage eines Parameters mittels InputBox
---Gültigkeit der Eingabe ?  und   Abbruch (Exit Function) wenn ungültig  ...
---Löschen Inhalt Hilfstabelle ...
---Füllen der Hilfstabelle ...
---am Schluss, Öffnen des Formular:s
    DoCmd.OpenForm "ufLöschProben"
End Function            ' Lösch_Messblock
Der Abbruch geschieht nachdem die aufgerufene Funktion sauber ausgeführt wurden, also die Hilfstabelle schön gefüllt und das Formular korrekt angezeigt wird. In dem Formular hat es 2 Befehlsschaltflächen: >Löschung durchführen< und >Abbrechen<. Beim direkten Aufruf des Formulars läuft alles wie geschmiert...

Auch ein On Error Befehl in der Function bringt nichts.

Hat jemand eine Idee, an was es liegen kann? Braucht man noch mehr Infos? Welche?

Danke für jeden Tip

Walterio
Titel: Re: Absturz bei DoCmd.RunCommand
Beitrag von: PhilS am Dezember 17, 2021, 09:47:50
Zitat von: Walterio am Dezember 17, 2021, 09:16:32DoCmd.RunCommand Lösch_Messblock() <-- hier steht er bei der Fehlermeldung
Dieser Code ergibt keinen Sinn. RunCommand (https://docs.microsoft.com/en-us/office/vba/api/access.docmd.runcommand) führt einen vordefinierten Befehl aus, der durch eine der AcCommand-Konstanten festgelegt wird.

Du willst nur deine eigene Funktion aufrufen. Also nur den Funktionsnamen dort schreiben.
Titel: Re: Absturz bei DoCmd.RunCommand
Beitrag von: DF6GL am Dezember 17, 2021, 09:50:32
Hallo,

wie lautet die Beschreibung des Fehlers 3329?

wie lautet der komplette VBA-Code der Funktion (Copy&Paste)? (Bei diesem Functionscode würde ich auch gleich das Handtuch werfen...)


Sodann:


Private Sub cmdDelMessblock_Click()
 
 Lösch_Messblock

End Sub          ' cmdDelMessblock_Click

und wirf DoCmd.SetWarnings False  heraus. Baue einen vernünftigen Error-Handler ein.




Bei
Titel: Re: Absturz bei DoCmd.RunCommand
Beitrag von: Walterio am Dezember 17, 2021, 10:09:00
Hallo Phil,

Natürlich! Vor lauter Bäume...
Habe die Funktion "as boolean" festgelegt und mit "if Lösch_Messblock() then ..." aufgerufen. Klappt natürlich wunderbar. Danke.

Übrigens nütze ich die Gelegenheit um mich bei dir für die tollen Videos im Codekabinett zu bedanken.

Hallo Franz,

Auch dir Danke. Error-Handling wird verbessert...

Walterio

P.S. Und wo zum Teufel ist dieser "sag Danbke"-Knopf?