[gelöst]Input soll Wert an SQL übergeben ...

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
opiWahn
***
Beiträge: 91
Registriert: Mo, 21.03.2011 15:47
Wohnort: zw. KL und NW

[gelöst]Input soll Wert an SQL übergeben ...

Beitrag von opiWahn »

hallo,

nach dem ich meine Eingabe von einer Listbox (war zum Testen) jetzt auf eine Inputbox umstellen wollte knallts an allen Ecken und Kanten?
Ich möchte ganz simpel einen Wert aus einer InputBox an ein SQL übergeben, das ausgeführt mir dann die Textboxen füllt.

Code: Alles auswählen

Sub Auftragsnummer
	oDoc = thisComponent
	oController = oDoc.getCurrentController()
	oform = odoc.drawpage.forms.getbyindex(0)
	oText1 = oForm.getByName("txt1")
	oText2 = oForm.getByName("txt2")
	oText3 = oForm.getByName("txt3")
	oText4 = oForm.getByName("txt4")
	oText5 = oForm.getByName("txt5")
	oANr = inputBox ("Auftragsnummer","Eingabe")
	
	Dim Context, DB, Connection, QueryErg As Object
	Dim DBName, sSQL As String
	Dim Statement As Variant
	
   		DBName = "REPARATUR"
		Context = createUnoService("com.sun.star.sdb.DatabaseContext")
		DB = Context.GetByName (DBName)
		Connection = DB.GetConnection ("","")
		sSql = "SELECT `objekt_anrede`,`objekt_name`,`objekt_strasse`,`objekt_ort`,`langtext` FROM `REPARATUR` WHERE `key` = '"+oANr+"';"	
		Statement = Connection.CreateStatement
		QueryErg = Statement.ExecuteQuery(sSQL)
		oText1.text = QueryErg.GetString(1)
		oText2.text = QueryErg.GetString(2)
		oText3.text = QueryErg.GetString(3)
		oText4.text = QueryErg.GetString(4)
		oText5.text = QueryErg.GetString(5)			
		Connection.Close()
End Sub
2011-03-25 09 06 14.png
Wo liegt das Problem?

Grüße
opiWahn
Zuletzt geändert von opiWahn am Mo, 28.03.2011 21:25, insgesamt 1-mal geändert.
Grüße
opiWahn
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Input soll Wert an SQL übergeben ...

Beitrag von DPunch »

Aloha
opiWahn hat geschrieben:Wo liegt das Problem?
Du hast in Deinem Formular kein Textfeld (bzw gar kein Steuerelement) mit dem Namen "txt1".

Abgesehen davon solltest Du möglicherweise mit Sicherheitsabfragen ala

Code: Alles auswählen

oANr = inputBox ("Auftragsnummer","Eingabe")
If Len(oANr) = 0 Then Exit Sub '<----
und

Code: Alles auswählen

QueryErg = Statement.ExecuteQuery(sSQL)
If QueryErg.Next Then '<----
oText1.text = QueryErg.GetString(1)
oText2.text = QueryErg.GetString(2)
...
oText5.text = QueryErg.GetString(5)
End If '<----
arbeiten.
Benutzeravatar
opiWahn
***
Beiträge: 91
Registriert: Mo, 21.03.2011 15:47
Wohnort: zw. KL und NW

Re: Input soll Wert an SQL übergeben ...

Beitrag von opiWahn »

Hallo,

danke erstmal für den Tipp die evtl. Fehler abzufangen. Das wollte ich später machen, wenn die Grundfunktionalität hergestellt ist.
Die Textfeld habe ich selbstvertständlich im Formular und diese sind auch mit txt1, ... bezeichnet.
Bild 1.png
Und genau da bin ich am grübeln, ob ich bei "redesign" was entscheidendes vergessen habe.
Denn genauso hat's ja auch mit der Listbox funktioniert.
Kann das was mit dem Index zu tun haben, weil am Anfang ja bei den Options angefangen wird zu zählen?
Andererseits sind sie im Makro ja eindeutig benannt.

Grüße
opiWahn
Grüße
opiWahn
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Input soll Wert an SQL übergeben ...

Beitrag von DPunch »

Aloha
opiWahn hat geschrieben:Kann das was mit dem Index zu tun haben, weil am Anfang ja bei den Options angefangen wird zu zählen?
Andererseits sind sie im Makro ja eindeutig benannt.
Ich verstehe leider nicht, was Du damit sagen willst.

Die Fehlermeldung ist allerdings eindeutig, und, ohne Dir zu nahe treten zu wollen, in 99,9% der Fälle liegt da ein Fehler seitens des Anwenders vor.
Hast Du die Textfelder wirklich so benannt?
Sind die Textfelder tatsächlich im ersten Formular (also nicht in einem Unterformular)?
Benutzeravatar
opiWahn
***
Beiträge: 91
Registriert: Mo, 21.03.2011 15:47
Wohnort: zw. KL und NW

Re: Input soll Wert an SQL übergeben ...

Beitrag von opiWahn »

...in 99,9% der Fälle liegt da ein Fehler seitens des Anwenders vor.
Hast Du die Textfelder wirklich so benannt?
Sind die Textfelder tatsächlich im ersten Formular (also nicht in einem Unterformular)?
Punkt 1) geb dir recht, auch wenn ich geneigt bin den Satz um 0,9 Prozentpunkte zu senken :D
Punkt 2) jeb - siehe Anlage
Punkt 3) es gibt kein Unterformular - jedenfalls hab ich keins angelegt

soll ich das Teil mal als zip hochladen?
Bild 2.png
Grüße
opiWahn
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Input soll Wert an SQL übergeben ...

Beitrag von DPunch »

Aloha
opiWahn hat geschrieben:Punkt 1) geb dir recht, auch wenn ich geneigt bin den Satz um 0,9 Prozentpunkte zu senken :D
Da ich natürlich keinerlei statistische Erhebung gemacht habe, kann ich Dir kaum widersprechen ;)
opiWahn hat geschrieben:soll ich das Teil mal als zip hochladen?
Das wäre wohl das Einfachste.
Benutzeravatar
opiWahn
***
Beiträge: 91
Registriert: Mo, 21.03.2011 15:47
Wohnort: zw. KL und NW

Re: [gelöst]Input soll Wert an SQL übergeben ...

Beitrag von opiWahn »

Nach langer erfolgloser Fehlersuche habe ich mich gestern entschieden den Quellcode (Makros) zu sichern, das Formular neu aufzubauen und den Code zurück zu spielen.
Und siehe da - der Fehler ist verschwunden und das Teil läuft wieder :o :? :D
Grüße
opiWahn
Antworten