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
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.
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
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?