Schlagwortsuche aus Formular? WIE???

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Barlee »

Hallo Ralle67,
aber da ist der Suchbegriff (z.B. WIE '*suchtext*') ja fest und nicht variabel.
Mit einer Parameterabfrage könntest Du den Suchbegriff immer neu definieren.
Siehe u.a.
viewtopic.php?f=8&t=13206&p=52917&hilit ... age#p52917

Gruß Barlee
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Barlee »

Hallo Ralle,

ja, da bleibt wohl nur ein Makro.
Dieses muss:
1- das Textfeld auslesen
folgendes könnte helfen:
viewtopic.php?f=8&t=12709&p=63859&hilit ... sen#p63859

2- eine Verbindung zur DB aufbauen und die Abfrage absetzen. Als Suchkriterium muss der ausgelesene Wert genommen werden.
Hier ist der Weg beschrieben, auf Datenbanken mittels BASIC zuzugreifen und Abfragen zu starten:
http://www.dannenhoefer.de/faqstarbasic ... ifen..html

Vielleicht kommst Du damit weiter??
Gruß Barlee
Ralle67
Beiträge: 3
Registriert: So, 13.01.2008 00:20
Wohnort: Köln
Kontaktdaten:

Zu früh gefreut

Beitrag von Ralle67 »

Tja, das klappt wohl nicht...
Der folgende Code erzeugt in der letzten Zeile immer eine Exeption: Table not found in statement [SELECT * from Medien].
Die Tabelle heißt aber Medien!

Was mache ich falsch???

Ansonsten klappt alles... Formular wird ausgelesen, SQL-query-string sieht eigentlich auch gut aus... Die Datenquelle habe ich auch eingetragen...

Code: Alles auswählen

REM suche nach Titel
sub Suche_titel
	Dim sText as String
	Dim sFeld as String
	sText = thisComponent.drawpage.forms.getByName("Sucheingabe").getByName("sf1").text
	sFeld = "Titel"
	sql_sucheMedien( sText, sFeld)
end sub

REM  Suchliste wird aufbereitet
sub sql_sucheMedien(stxt, sfeld)
	SQL = "SELECT * FROM Medien WHERE " & sfeld & " LIKE '%" & stxt & "%'" 
	
	DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
	DataSource = DatabaseContext.getByName("Medien Fröbelschule")
	Connection = DataSource.GetConnection("","")
	Statement = Connection.createStatement()
	ResultSet = Statement.executeQuery(SQL)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Barlee »

Hallo Ralle,

setze einmal den Tabellennamen in Anführungszeichen. Wie siehts dann aus?

Gruß Barlee
Ralle67
Beiträge: 3
Registriert: So, 13.01.2008 00:20
Wohnort: Köln
Kontaktdaten:

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Ralle67 »

Barlee hat geschrieben:Hallo Ralle,

setze einmal den Tabellennamen in Anführungszeichen. Wie siehts dann aus?

Gruß Barlee
Hmmm, wenn ich folgendes mache,

Code: Alles auswählen

	SQL = "SELECT * FROM "Medien" WHERE " & sfeld & " LIKE '%" & stxt & "%'" 
dann kommt "Basic-Syntaxfeher. Unerwartetes Symbol: Medien.". Sowas hatte ich aber auch erwartet bei Anführungszeichen in Anführungszeichen. Ich habe auch versucht die inneren " durch \" zu tarnen, das brachte aber auch nix.

Code: Alles auswählen

	SQL = "SELECT * FROM 'Medien' WHERE " & sfeld & " LIKE '%" & stxt & "%'" 
Bei diesem Versuch kommt "unexpected Token: Medien...".

Laut diverser Code-Beispiele sollte es eigentlich ohne Anführungszeichen klappen. Allerdings muss man bei einer SQL-Abfrage von Hand schon welche setzen... Verstehe ich nicht...

Gruß
Ralf
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Barlee »

Hallo Ralf,

hast Du schon eine Lösung?
Ändert sich etwas, wenn Du in der Anweisung

Code: Alles auswählen

 SQL = "SELECT * FROM Tab_Personen WHERE " & sfeld & " LIKE '%" & stxt & "%'"
die Tabelle in doppelte Anführungszeichen (""Tab_Personen"") setzt?

Gruß Barlee
Ralle67
Beiträge: 3
Registriert: So, 13.01.2008 00:20
Wohnort: Köln
Kontaktdaten:

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von Ralle67 »

Hi Barlee,

so klappt es nun:

Code: Alles auswählen

SQL = "SELECT * FROM ""Medien"" WHERE """ & sfeld & """ LIKE '%" & stxt & "%'" 
Die doppelten Anführungszeichen waren der Trick. Die Spalte 'sfeld' musste auch noch in doppelte " gesetzt werden.
Nun kann ich weitermachen...

Ich muss mir wohl doch mal ein StarBasic-Buch zulegen ;-)

Vielen Dank für dein Hilfe!

Gruß
Ralf
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Schlagwortsuche aus Formular? WIE???

Beitrag von komma4 »

Ralle67 hat geschrieben:Ich muss mir wohl doch mal ein StarBasic-Buch zulegen ;-)
Nö, denke ich nicht.

Wenn Du schon so weit, wie beschrieben, gekommen bist helfen Dir Bücher nicht (mehr) weiter.

Bedenke: die Probleme, die nun bei Deinen Versuchen hochkommen, und die Fragestellungen "wie löse ich das?", haben andere auch schon gehabt.

Diese fragten dann hier (oder sonstwo im Netz) und erhielten auf konkrete Fragen (meist) auch konkrete Antworten.

5¢ von mir.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten