ich habe eine Frage zu einem Makro, mit dem ich von einem Adressformular (dort Unterformular Auftragsliste zur Adresse) ein Auftragsformular aufrufe. Das Makro funktioniert und sieht bisher so aus:
Code: Alles auswählen
Sub fAuftragAufruf(oEvent)
oformAuftraege = oEvent.Source.Model.Parent
oformAuftrag = ThisDatabaseDocument.getformdocuments.GetByName("fAuftrag")
if oformAuftraege.RowCount = 0 Then goto Neuanlage
stAuftragID = oformAuftraege.getString(oformAuftraege.findcolumn("AuftragID")) 'nicht weil die Formularspalte so heißt, sondern die Spalte in der Abfrage, auf der das Unterformular beruht!
oformAuftrag.open
oformAuftrag = oformAuftrag.Component.drawpage.forms(0)
'SicherheitsfragenAuftrag()
'Ergänzung um Sicherheitsfragen für Auftrag (falls dort Änderungen ungespeichert sind).
DIM intFrage As Integer
with oFormAuftrag
if .ismodified() then
intFrage = MsgBox("Der angezeigte Datensatz wurde geändert. Änderungen speichern?", MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON1, "Makro BuchungAuftragsFormular")
'MB_DEFBUTTON1 macht das Ja zur vorgeschlagenen Antwort.
if intFrage = IDYES then
if .isnew() then
.insertrow
else
.updaterow
end if
end if
end if
end with
'Ergänzung Ende.
oformAuftrag.Filter = "AZ = '"+stAuftragID+"'"
'oFormAuftrag.ApplyFilter = TRUE (geht hier ohne)
oFormAuftrag.reload
'Neuanlage: Leeren Auftrag aufrufen? Auch vorher Sicherheitsfrage, falls Auftragsformular schon offen ist
End Sub
Jetzt wollte ich die Ergänzung um Sicherheitsfragen auslagern in ein eigenes Makro, Sub SicherheitsfragenAuftrag(), und in diesem Makro hier nur noch das ausgelagerte Makro aufrufen. Dabei erhalte ich aber die Fehlermeldung "Objektvariable nicht belegt" für .ismodified .
Was ist falsch? Bzw.: wie kriege ich das hin?
Ergänzungsfrage:
Am Ende des Makros soll für den Fall, daß die Auftragsliste für diese Adresse leer ist, ein neues leeres Auftragsformular erscheinen. Auch da soll vorher die Sicherheitsfrage kommen (deswegen der Wunsch nach Auslagerung) und dann vermutlich etwas mit "oformAuftrag.open", aber ohne Filterung, sondern mit einem leeren Datensatz. Wie geht das?
Schon mal vielen Dank für Hilfe.
Gruß
Freischreiber