Seite 1 von 1

Fehlermeldung Makro bei Gebrauch Beispieldatenbank

Verfasst: Do 5. Sep 2013, 15:26
von WernerBhm
Hallo Zusammen,
ich versuche seit Tagen ein abhängiges Kombinationsfeld zu erstellen. Ich möchte eigentlich nur bei der Eingabe in die Haupttabelle Buchungen zwei Felder Buchungsstelle und Kategorie mittels Kombinationsfelder füllen. Kombinationsfelder deshalb, damit der ausgewählte Text sofort in der Haupttabelle lesbar ist. Dazu soll nach Auswahl der Kategorie eine selektierte Auswahl im zweiten Kombinationsfeld angezeigt werden. Leider werde ich im Base Handbuch dazu nicht recht fündig. Ein Versuch mit einem Unterformular (lt. Handbuch) war nicht erfolgreich, da das Unterformular nur grau war und keine Werte annahm. Der Versuch mit dem Beispielmakro "TextAnzeigen" aus dem Base Gesamthandbuch Makro bringt Fehlermeldungen. Das Hauptformular dazu heißt bei mir Formular, das Kombinationsfeld heißt Buchungsstelle und das unsichtbare Numerische Feld heißt Kategorie_ID und stammt aus der Haupttabelle Buchungen. Es gibt keine Unterformulare.
Die Aufzählung der Zuweisungen nach SUB InhaltAnzeigen musste ich ausblenden, da sonst ebenfalls Fehlermeldung (Meldung: wrong number of parameters!)

Hier der Anfang des angepassten Makros aus der Beispieldatenbank:

SUB InhaltAnzeigen '(Formular AS STRING, Buchungsstelle AS STRING, Kategorie_ID AS STRING, Buchungsnamen AS STRING, Auswahl_Buchungen AS STRING, Position AS Integer )
DIM oForm AS OBJECT
DIM oFeld AS OBJECT
DIM oFeldList AS OBJECT
DIM stFeldWert AS STRING
DIM inID AS INTEGER
DIM oCtlView AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm = oDrawpage.forms.getByName("Formular")
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oFeld = oForm.getByName("Kategorie_ID")
oFeldList = oForm.getByName("Buchungsstelle")
oFeldList.Refresh() REM Refresh(), damit neu eingegebene Werte angezeigt werden
REM Wert des ID-Feldes auslesen
IF NOT IsEmpty(oFeld.getCurrentValue()) THEN
inID=oFeld.getCurrentValue()
Hier bricht das Makro mit dem Fehler:
BASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: getCurrentValue.

ab.

Was läuft hier falsch? Kann mir jemand dazu helfen?
Geht diese Selektierung vielleicht doch auch ganz einfach ohne Makro mit Unterformular.

Herzlichen Dank im Voraus

Werner

Version: 4.1.1.2 auf Windows Vista

Re: Fehlermeldung Makro bei Gebrauch Beispieldatenbank

Verfasst: Do 5. Sep 2013, 17:36
von RobertG
Hallo Werner,

wo genau der Fehler in dem Makro steckt kann ich Dir auf den ersten Blick nicht sagen, aber versuche doch einmal die Beispiel_Datenbank_Filter. Da gibt es zumindest Listenfelder, die sich gegenseitig beeinflussen.

Gruß

Robert

Re: Fehlermeldung Makro bei Gebrauch Beispieldatenbank

Verfasst: Do 5. Sep 2013, 19:44
von WernerBhm
Hallo Robert,

danke für Deine schnelle Antwort. In der Beispiel_Datenbank_Filter ist dazu leider auch nichts vorhanden.
Ich werde aber morgen Vormittag, heute qualmt mir der Kopf doch schon zu sehr, einen alten Threat vor einem Jahr durchgehen der das gleiche Thema aber mit zwei abhängigen Listenfeldern hatte. Vielleicht hilft mir das weiter und es gibt eine Möglichkeit zusätzlich zum Frendschlüsselwert den dazu gehörenden Text in einem Feld abzuspeichern.

Herzlichen Gruß

Werner

Re: Fehlermeldung Makro bei Gebrauch Beispieldatenbank

Verfasst: Do 5. Sep 2013, 21:01
von RobertG
Hallo Werner,

genau aus diesem Thread stammt die Datenbank. Ich habe da ein Beispiel drin, bei dem sich der Inhalt von 3 Listfeldern gegenseitig beeinflusst.

Gruß

Robert

Re: Fehlermeldung Makro bei Gebrauch Beispieldatenbank

Verfasst: Fr 6. Sep 2013, 11:30
von WernerBhm
Hallo Robert,

jetzt bin ich doch in dem alten Thread fündig geworden. Die dort erwähnte Erweiterung der Selectanweisung, mit Like und einer Variablen über ein Makro, funktioniert auch mit Kombinationsfelderrn. :D
Ist zwar nicht so elegant wie in dem Datenbankbeispiel, aber ich denke für das erste Weiterkommen reicht es aus. Jetzt muss ich nur noch schauen, welchem Ereignis ich dem Makro im ersten Kombifeld zuweise und wie ich im zweiten Kombifeld das Auswahlfeld beim Start auf leer bekomme.

Herzlichen Dank für deine Antworten

Werner