Dialog in Makros

Hallo Liste,

ich habe ein Makro mit einem Dialog. Nun will ich bei einigen Textfeldern
eine Überprüfung machen. Ich denke, dass ich bei Ereignis - Beim Verlassen
auf eine Funktion verweise. Diese Funktion muss allerding einen Wert aus
einem anderen Textfeld benutzen. Wenn ich in der Funktion
dialog.getControl("feld").text aufrufe erhalte ich einen Laufzeitfehler
"Eigenschaft oder Methode nicht gefunden: getControl"

Das Makro ist unter "Meine Makros" gespeichert.

Hier der Codeschnipsel der Funktion:

Function TestDateDiff(oDialog)

                Dim txt as String

                Dim fehler as Boolean

                Dim txt1 as Date

                Dim rdat as String

                BasicLibraries.LoadLibrary("Tools")

                txt = oDialog.getControl("TextField8").text

MsgBox(txt,0)

End Function

Wo steckt der Fehler?

Egon

Hallo Egon,

Ich denke, dass ich bei Ereignis - Beim Verlassen
auf eine Funktion verweise. Diese Funktion muss allerding einen Wert aus
einem anderen Textfeld benutzen. Wenn ich in der Funktion
dialog.getControl("feld").text aufrufe erhalte ich einen Laufzeitfehler
"Eigenschaft oder Methode nicht gefunden: getControl"

Ich bin nicht so firm in Dialogen - habe selbst erst einen richtig erstellt.
Läuft denn der Dialog?
So etwas im Stil:
DialogLibraries.LoadLibrary("Standard")
oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialogname)

Gruß

Robert

Hallo Robert,

ja der Dialog läuft. Auch wenn ich in der Funktion, die vom Ereignis
aufrufe:

Function DateTest(oDialog as Object,txt as String) as Boolean
  If not isDate(txt) then
    MsgBox (txt &" ist kein gültiges Datum!",0,"FEHLER")
    oDialog.Source.SetFocus()
    DateTest = 1
    Exit Function
  End If
  DateTest = 0
End Function

funktioniert der Aufruf beim Verlassen des Feldes.

Aber ich will in der "Beim verlassen Funktion" noch ein anderes Feld mit
auslesen.

Gruß

Egon

Hallo Egon,

ich habe das einmal nachvollzogen. Nur einen Dialog, zwei Felder. Beim
Verlassen des 2. Feldes wird das erste Feld ausgelesen. bei mir gibt das
keine Probleme. Ich habe das Minimalbeispiel hier hoch geladen:

http://robert.familiegrosskopf.de/lo_hb_dev/Dialog.odb

Den Dialog musst Du über das Ausführen der Makros starten. Das Feld
"Vorname" wird ausgelesen, wenn das Feld "Nachname" verlassen wird.

Gruß

Robert

Hallo Robert,

ich bin verblüfft. Allerdings stehen die Makros bei mir nicht im Dokument
sondern unter Meine Makros. Das sieht der Ereignisbefehl so aus:
Standard.Module1.TestDateDiff (application, Basic)
Bei Dir steht in der Klammer (document, Basic). Vielleicht ist das der
wichtige Unterschied.

Gruß Egon

Hallo Robert,

wenn das Makro im Dokument gespeichert ist, funktioniert es. Aber wie kann
ich ein solches Makro dann nach dem Laden des Dokuments ausführen ohne auf
"Extras - Makro ausführen" zu klicken.Bei "Makro zuweisen" erden mir nur die
Eigenen Makros angezeigt?

Gruß

Egon

Hallo Egon,

es reicht, wenn Du nur an die Liste antwortest. Ich bekomme jede Mail
von Dir doppelt ...

Du kannst ein Makro, das in einem Dokument liegt, über
Extras → Anpassen → Ereignisse → Dokument öffnen
ansprechen. Dann wird der Dialog direkt beim Öffnen der Datei ausgeführt.

Gruß

Robert

Hallo Robert,

ich danke Dir für Deine Hilfe. Jetzt funktioniert es. Vielleicht gibt es später noch ein Problem, dann melde ich mich wieder. Dieses ist jedenfalls gelöst!

Gruß und nochmals danke

Egon