Neues Formular mit aktuellen Datensatz öffnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

elm
Beiträge: 8
Registriert: Mi, 20.01.2010 22:21

Neues Formular mit aktuellen Datensatz öffnen

Beitrag von elm »

Hallo Leute,

Ich würde gern aus einem aktuellen Formular ein weiters öffnen. Das neue soll er mit dem aktuellen Datensatz öffnen der gerade im "Ursprungsformular" angezeigt wird.

Habe durch intensve Forensuche folgendes erstellt:

sub openProjektBank( oEvent as variant )

Dim oFeld as variant
Dim sID as variant
Dim oDoc as variant
Dim oForm as variant
Dim oDoc2 as variant
Dim oForm2 as variant

oDoc = StarDesktop.CurrentComponent
oForm = oDoc.DrawPage.Forms.GetByIndex(0)
REM die ID des ersten Formulars wird ausgelesen (ist z.B. wie hier ein Formularfeld)
oFeld = oForm.getByName("TextBox")
sID = oFeld.text
OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, _
OEvent.Source.Model.Parent.ActiveConnection, _
"Projekt_Bank")
REM => dann Filter setzen
oDoc2= ThisComponent
oForm2 = oDoc2.DrawPage.Forms(0)
oForm2.filter = "projektname = " + sID
REM =>setzen des Filters für das neue Formulardokument
oForm2.ApplyFilter=true
oForm2.reload
end sub

So nun wird das Formular schön geöffnet aber es gibt einen SQL statement Fehler:

Column not found: Projekt-1 in statement [SELECT * FROM "tbl_Projekt" WHERE "projektname" = "Projekt-1"]

So nun zu dem was ich nicht verstehe. In meiner Tabelle tbl_Projekt gibt es definitiv eine Spalte (Column) mit dem Namen "projektname" und auch defintiv ein Projekt-1.

Was läuft da falsch?

Weitere Informationen:
Das Makro ist im Dokumentr gespeichert. Habs aber auch mal in "MeineMakros" verschoben ändert aber nix. Das zu öffnende Formular enthält noch zwei Unterformulare, vieleicht ist da der Haken.

Jetzt hab ich das Makro so schön programmiert und komm hier nicht weiter. Würde mich freuen wenn einer mal drüberschaut und helfen kann.

Danke schon mal und Grüße
elm
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Neues Formular mit aktuellen Datensatz öffnen

Beitrag von eBayer »

schreib mal "Projekt-1" in einfaches Hochkomma...... 'Projekt-1'
Also in Deinem Fall: sID = "'" + oFeld.text + "'"
dann sollte es klappen.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
elm
Beiträge: 8
Registriert: Mi, 20.01.2010 22:21

Re: Neues Formular mit aktuellen Datensatz öffnen

Beitrag von elm »

Hallo ebayer,

perfekt, das wars. Allerdings musste ich das Makro unter MeineMakros speichern erst dann hat es funtioniert.

Und jetzt hab ich ein noch viel größeres Problem!!!

HAb alles abgepeichert und mich gefreut bin einen Kaffee trinekn gegangen und wollte jetzt weitergemachen. Nun funktioniert nix mehr. Keines meiner Makros egal ob einfach Formular aufmachen oder filter Formular funktioniert mehr.

Er bringt immer die Fehlermeldung :

BASIC-Laufzeitfehler.
Sub- oder Function-Prozedur nicht definiert.

und zwar hält der Code immer bei:

OpenForm( OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, _

an.

Ich glaub ich hab da was mit den Makros Grundsätzlich net verstanden oder falsch gemacht. Wo soll ich wann welches Makro speichern im Dokument oder Global (ist Global dann Meine Makros??)

Jetzt hat doch so toll funktioniert.

Hilferuf an ebayer der wie ich rausgekriegt hab hier im Forum sehr aktiv ist und schon vielen geholfen hat!!

Vieleicht auch diesmal ;)

Gruß
elm
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Neues Formular mit aktuellen Datensatz öffnen

Beitrag von eBayer »

Hallo elm,
ich war leider ein paar Tage ausser Gefecht gesetzt.
Kannst Du mir mal Deine Anwendung schicken? (mit dem Makro)
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten