Seite 1 von 1

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

Verfasst: Fr, 25.03.2011 09:08
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

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

Verfasst: Fr, 25.03.2011 20:03
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.

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

Verfasst: Fr, 25.03.2011 22:00
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

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

Verfasst: Sa, 26.03.2011 05:23
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)?

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

Verfasst: Sa, 26.03.2011 14:16
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

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

Verfasst: Sa, 26.03.2011 19:38
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.

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

Verfasst: Mo, 28.03.2011 21:31
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