Suchfunktion per Formular

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Suchfunktion per Formular

von Toxitom » Do, 29.06.2006 13:58

Hey,

da füge ich gleich noch ein bischen "Werbung" hinzu:

Mein Base-Buch ist fertig und behandelt auch die Basic-Anbindung von Formularen und Abfragen.
Dort wird ein ähnlicher Fall geschildert - also die Suche per Formular nach einem Begriff und die Anzeige der passenden Daten. Das alles zu posten würde ca. 100 Seiten füllen - zu viel....
Das Buch wird so gegen Ende Juli im Handel sein - schätze ich mal - oder du schaust ebenfalls direkt bei Galileo:
http://www.galileocomputing.de/1176?GPP=ooodev

Viele Grüße
Thomas

von pmoegenb » Do, 29.06.2006 09:54

Hallo Kritiker_1982,
Bisher habe ich nichts gefunden, was für OpenOffice BASE zugeschnitten ist vielleicht habt ihr ja einen Insider-Tipp für mich!
Wenn ich z. B. auf den Link Bücher: OpenOffice.org 2.0 - Einstieg und Umstieg, Makros für OOo 2.0 von Thomas klicke, erhalte ich dieses http://www.galileocomputing.de/900?GPP=ooo . Den Link kann man eigentlich nicht übersehen.

von Mihilist » Do, 29.06.2006 08:34

Kritiker_1982 hat geschrieben:Wie man mit dem Programm arbeitet weiss ich, wo es jedoch scheitert ist an meinen Programmierkenntnissen, gibt es da nicht auch ne Seite wo man das Schritt für Schritt erklärt bekommt... So nach dem Motto "Hello World"? Bisher habe ich nichts gefunden, was für OpenOffice BASE zugeschnitten ist :-( vielleicht habt ihr ja einen Insider-Tipp für mich!
Wie steht's denn generell mit Programmieren?
Im obersten Threat des Basic-Forums sind einige nützliche Links, damit kommt man schon recht weit, denke ich.

von Kritiker_1982 » Do, 29.06.2006 08:27

achso, ich habe das falsch interpretiert, danke :-)

Aus deiner FAQ-Seite werde ch irgendwie nicht schlau! Ich weiss nicht wirklich, wie mir das weiterhelfen soll! Wie man mit dem Programm arbeitet weiss ich, wo es jedoch scheitert ist an meinen Programmierkenntnissen, gibt es da nicht auch ne Seite wo man das Schritt für Schritt erklärt bekommt... So nach dem Motto "Hello World"? Bisher habe ich nichts gefunden, was für OpenOffice BASE zugeschnitten ist :-( vielleicht habt ihr ja einen Insider-Tipp für mich!

Dank meiner schlechten Programmierkenntnisse habe ich nun wieder ein weiteres Problem, und zwar habe ich ein neues Formular erstellt das aus Schaltflächen besteht, wenn ich z.B. auf "Beenden" klicke, soll das Programm/Datenbank geschlossen werden, ich gehe davon aus, dass ich hier ein kleines Makro benötige!

Und wenn ich auf "neuen Eintrag" klicke, soll das Formular <neu> geöffnet werden, ich hoffe, das dies relativ einfach zu erklären ist, wäre super, wenn ihr mir helfen könntet :-)...

von pmoegenb » Mi, 28.06.2006 13:54

Hallo Ben,
Wenn ich die öffne funktioniert alles wie vorher nur nicht so, das ich auch nach wortteilen suchen kann
Tja, Du musst den Suchbegriff wie von Thomas beschrieben mit % beginnen und enden lassen (%me%).
ist der Spaltenname nich wie hier Name bzw. Vorname gegeben?
Ich weiß zwar nicht welche Spaltennamen (Feldnamen) Du verwendest, aber wenn die Abfrage in dieser Hinsicht bislang korrekt gearbeitet hat, hast Du die Spaltennamen Vorname und Name.
Achja, wo bekomme ich den eine leicht verständliche einführung (am besten in Deutsch) für SQL und OOo-API her?
Meinst Du tatsächlich API's oder eher Basic (StarBasic)?

SQL = z. B. http://de.wikipedia.org/wiki/SQL
StarBasic = http://www.dannenhoefer.de/faqstarbasic/index.html

Für Abfagen verwende ich keinen Assistenten. Ich gebe die SQL-Befehle direkt ein.

von Kritiker_1982 » Mi, 28.06.2006 13:12

Hallo schon mal Danke für die schnelle Hilfe, ich habe jetzt den Code angepasst, sieht nun so aus:

Code: Alles auswählen

SELECT * FROM "db" "db" WHERE ( ( LOWER ( "Name" ) LIKE :Nachname or LOWER ( "Vorname" ) LIKE :Vorname ) ) ORDER BY "Vorname" ASC
Wenn ich die öffne funktioniert alles wie vorher nur nicht so, das ich auch nach wortteilen suchen kann :-(

Wenn ich auf bearbeiten der Abfrage gehe, kommt die meldung:
Fehler bei der Verbindung mit der Datenquelle!

Vor dem WIE muss ein Spaltenname stehen.
ist der Spaltenname nich wie hier Name bzw. Vorname gegeben?

Warum geht das denn jetzt nicht?


Achja, wo bekomme ich den eine leicht verständliche einführung (am besten in Deutsch) für SQL und OOo-API her? Das ich mich da einmal einarbeiten kann!

MfG

Ben

von Toxitom » Mi, 28.06.2006 09:26

Hey Kritiker,
Wenn ihr für diese zwei Problemchen noch ne Lösung parat hättet, wäre das super....
Haben wir sicher, nur... ich glaube, du solltest dich einmal mit SQL und der OOo API beschäftigen. Das wird nämlich immer komplizierter und erfordert immer mehr Wissen :wink:
...wie bekomme ich das jetzt hin, dass er mir alle raus sucht die einen bestimmten Teil, der Suchanfrage beinhalten (z.B. meier, meyer, Brehmer) sollen gefunden werden,...
Indem du statt "=" (der Operator verlangt eine exakte Übereinstimmung) einen Textvergleichsoperator nutzt. In SQL direkt "LIKE" in Base geht auch die Übersetung "WIE", allerdings nicht im direkten SQL-Code. Dazu nutzt du dann die entsprechenden Platzhalter:
In SQL "%" für 0-beliebige Zeichen, "_" für ein beliebiges Zeichen
in Base auch: "*" für 0-beliebige Zeichen, "?" für ein belibiges Zeichen

Dein Fall: soetwas wie

Code: Alles auswählen

...WHERE  (LOWER("Name") LIKE '%me%') ...
Und dann müsste diese Suchabfrage noch in ein Formular eingebunden werden, so dass die Abfrage nicht per popup erfolgt, sondern in dem Formular mit einem kleinen Suchfeld mit Button.
Das geht mit Unterformularen. Die Werte der Hauptformularfelder können als Variable im Unterformualr eingesetzt werden. Die Erläuterung dieses Vorgehens würde aber definitiv diesen Thread "sprengen" und setzt schon einiges an "Wissen" voraus.
Viele Grüße
Thomas

von Kritiker_1982 » Mi, 28.06.2006 07:35

So, habe deinen Code entsprechend auf mein Test-Projekt angepasst:

Code: Alles auswählen

SELECT * FROM "db" "db" WHERE ( ( LOWER ( "Name" ) = :Nachname AND LOWER ( "Vorname" ) = :Vorname ) ) ORDER BY "Vorname" ASC
und nun gibt er mir eine leere Tabelle aus!

Ohne Fehlermeldung, ohne alles :-(

Edit:
Sorry, habe das AND in dem Code übersehen :-) hab daraus ne ODER-Verbindung gemacht nu klappts! Aber jetzt hab ich noch ein kleines Problem, wie bekomme ich das jetzt hin, dass er mir alle raus sucht die einen bestimmten Teil, der Suchanfrage beinhalten (z.B. meier, meyer, Brehmer) sollen gefunden werden, wenn ich "me" in das suchfeld eingebe.

Und dann müsste diese Suchabfrage noch in ein Formular eingebunden werden, so dass die Abfrage nicht per popup erfolgt, sondern in dem Formular mit einem kleinen Suchfeld mit Button.

Wenn ihr für diese zwei Problemchen noch ne Lösung parat hättet, wäre das super....

Ich danke euch.

von pmoegenb » Di, 27.06.2006 14:00

Hallo Kritiker_1982,

Code: Alles auswählen

SELECT * FROM "Tabelle1" "Tabelle1" WHERE ( ( LOWER ( "Nachname" ) = :Nachname AND LOWER ( "Vorname" ) = :Vorname ) ) ORDER BY "Vorname" ASC
mit dieser SQL-Abfrage kannst Du Nachname und Vorname abfagen. Durch die Klausel LOWER müssen die Eingaben in Kleinbuchstaben erfolgen. D. h. in der Datenbank setzt dieser Befehl Vor- und Nachname in Kleinbuchstaben um und vergleicht Sie dann mit der Eingabe.

von Kritiker_1982 » Mo, 26.06.2006 12:47

könntest du mir vielleicht einmal einen vollständigen code formulieren?
Wäre echt super und wenn es deine zeit zulässt eine kurze erklärung, wie man eine Textbos mt dieser Variabel "verlinkt"!

Ich danke dir im Vorraus!

Edit:
So, habe das einfach mal in der Entwurfsansicht unter Kriterium ":a" eingegeben, und jetzt fragt er mich auch fleißig nach Parameter "a" beim öffnen der Abfrage bzw. auch bei meinem Formular... nur die Suche ist natürlich mehr als Präzise wenn ich z.B. schulz eingebe findet er nichts wie verhindere ich dass er auf Groß und Kleinschreibung achtet und auch nicht nur das wort was "GENAU" so geschrieben wird sondern auch wo dieses Suchwort drin vorkommt.? Naja, und dann wäre halt noch der Punkt mit der Suchfeldfunktion in einem Formular... Ich habe aber jetzt mttlerweile Hoffnung, dass das Funktionieren könnte :)

Wenn wir dies Problem noch hinbekommen würden wäre dass mehr als Klasse!!!!

von Toxitom » Mo, 26.06.2006 12:06

Hey Kritiker,
Kann ich da nicht eine Variable eingeben, die im Formular per Text-Box deffiniert wird?
Grundsätzlich ja - ob es allerdings auch im Assistenten funktioniert, weis isch nicht. In der Grafischen Abfrage-Ansicht jedenfalls geht es: Variable mit einem Doppelpunkt beginnen

Gruss
Thomas

von Kritiker_1982 » Mo, 26.06.2006 07:56

Habe gerade etwas herausgefunden, was euch Pro's vielleicht weiterhilft:

Wenn man bei der erstellung einer Abfrage den Assistenen nutzt gibt er die möglichkeit Suchbedingungen einzufügen! Kann ich da nicht eine Variable eingeben, die im Formular per Text-Box deffiniert wird? So funktionierte das auch bei Access!

Bitte helft mir, ich verzweifle hier :(

Suchfunktion per Formular

von Kritiker_1982 » So, 25.06.2006 14:15

Hallo ihr alle...
ich bin ehemaliger Nutzer von Access und da hatte ich die möglichkeit eine Suchfunktion über eine Abfrage in meine Formulare einzubauen, dies hab ich allerdings bei Base nicht hinbekommen, auch wenn ich meine Access-Datenbanken per Base öffne, wie kann ich das denn nu realisieren?

Beispiel DB:

Adressdatenbank
Spalten:
1. ID
2. Name
3. Vorname
4. Tel

Formular:
Suche:
Suchmaske in der ich nach Name und Vorname suchen kann und er mir die Ergebnisse direkt unter der Maske in Tabelle (Name, Vorname und Tel.) anzeigt, dass muss doch möglich sein, hab nur bisher noch nichts passendes gefunden wäre Toll wenn mir mal jemand eine kleine Beispiel DB erstellen könnte... Würde mir sehr weiterhelfen!

Ich danke euch im vorraus.

MfG

Ben

Nach oben