wimpus Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Nochmal Servus hab wieder mal ein Problem das da wäre: In einer Textbox (oder was verwendet man passenderweise ?) soll bei Eingabe von z.B. "M" eine Liste angezeigt werden, mit allen Kunden deren Name mit dem Anfangsbuchstaben "M" angezeigt werden. Hierzu soll SQL verwendet werden und nun meine Fragen: 1. Wie muss die SQL-Abfrage aussehen ? 2. Wo muss sie ausgeführt werden ? Wäre euch echt super-dankbar wenn ihr mir da helfen könntet .. Tante Google konnte das bisher nämlich nicht LG u nen schönen Arbeitstag Wimpus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wimpus Geschrieben 21. Juli 2010 Autor Teilen Geschrieben 21. Juli 2010 Hab Jetzt die SQL-Abfrage mal soweit zusammen. Dim SQL_string As String SQL_string = "SELECT * FROM kunden WHERE name = " & Form_Kunden.tbox_kinfo_name Fehlt nur noch die Ausgabe in die Textbox MFG Wimpus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Wenn du in die Textbox nur "M" eingeben willst und dann als Ergebnis alle Kunden haben willst, dere Name mit M anfängt, dann ist deine SQL Query falsch. Die liefert nur Kunden deren Name exakt "M" ist. Für alles was mit M anfängt, musst du "name like 'M%'" verwenden. Zu beachten ist dass du bei Vergleichen mit Wildcards "like" statt = verwenden musst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Hallo, 1. ich bezweifle, dass die Abfrage alle Kunden findet, deren Name mit den Zeichen aus der Textbox beginnt. 2. In einer Textbox kannst du keine Liste anzeigen sondern nur einen Text; dh. du brauchst noch ein passendes Control für die Trefferliste der Abfrage. 3. Diese Trefferliste bekommst du, indem du die SQL Abfrage an die DB schickst und dann das sich ergebende ResultSet verarbeitest. Gruß Martin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wimpus Geschrieben 21. Juli 2010 Autor Teilen Geschrieben 21. Juli 2010 (bearbeitet) Servus Leute:) habs jetzt mal ein bisschen verändert (aber noch nicht getestet !): sub kunde_suchen (buchstabe as string) Dim SQL_string As String SQL_string = "SELECT * FROM kunden WHERE name = ' " & buchstabe end sub Hallo, 2. In einer Textbox kannst du keine Liste anzeigen sondern nur einen Text; dh. du brauchst noch ein passendes Control für die Trefferliste der Abfrage. 3. Diese Trefferliste bekommst du, indem du die SQL Abfrage an die DB schickst und dann das sich ergebende ResultSet verarbeitest. Gruß Martin Könntest du mir ein BEispiel geben .. hab in VB6 u SQL nicht wirklich viel Erfahrung passt das so ? MFG Wimpus Bearbeitet 21. Juli 2010 von wimpus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Abgesehen davon, dass ich mich nicht wirklich mit der VB Syntax auskenne, sehe ich da jetzt keine Veränderung zu vorher und auch keinen der Vorschläge berücksichtigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wimpus Geschrieben 21. Juli 2010 Autor Teilen Geschrieben 21. Juli 2010 Abgesehen davon, dass ich mich nicht wirklich mit der VB Syntax auskenne, sehe ich da jetzt keine Veränderung zu vorher und auch keinen der Vorschläge berücksichtigt. Sorry Sorry habs im Eifer des Gefechts vergessen muss natürlich so aussehen sub kunde_suchen (buchstabe as string) Dim SQL_string As String SQL_string = "SELECT * FROM Kunden WHERE name LIKE ' " & buchstabe end sub Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HJST1979 Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Hallo die Frage ist was willst du genau erreichen? Ich gebe dir hier deshalb mal noch einen anderen Denkansatz. Du könntest ja eine Combobox anzeigen bei der ALLE Kunden enthalten sind. Beginnt der Endanwender Buchstaben zu tippen springt er automatisch auf den jeweils ersten Kunden der mit dieser Buchstabenreihenfolge beginnt. Der Endanwender kann dann mit Pfeil nach unten den "richtigen" Kunden auswählen. Vorteil ist du brauchst nicht bei jedem Buchstaben einen SQL- Befehl absetzen ! Nachteil ist der erste SLQ- Befehl (alle Kunden) kann u.U. länger dauern Gruß Hans-Jörg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 SQL_string = "SELECT * FROM Kunden WHERE name LIKE ' " & buchstabe Da hast du jetzt nichts anderes gemacht, als = durch LIKE ersetzt. Das alleine bringt dir gar nichts, siehe meine Erklärung aus dem ersten Beitrag. Ausserdem wird der Select einen Fehler werfen, weil du nach dem LIKE ein Hochkomma hast, das nichtmehr geschlossen wird. Ich weiß nicht, welche DB du benutzt und was für Zugriff du darauf hast, aber wenn ich mit einer DB zu tun habe, probiere ich idR immer erst direkt auf der DB die Queries aus bis sie funktionieren, bevor ich umständlich im Programm selbst rumprobiere. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FinalFantasy Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 Vorteil ist du brauchst nicht bei jedem Buchstaben einen SQL- Befehl absetzen ! Nachteil ist der erste SLQ- Befehl (alle Kunden) kann u.U. länger dauern Zusätzlicher Punkt ist, du hast die Auswahllogik dann im Programm, statt in der Datenbank. Ja nach Anwendungsfall kann das Vorteil oder Nachteil sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 21. Juli 2010 Teilen Geschrieben 21. Juli 2010 hab in VB6 u SQL nicht wirklich viel Erfahrung Warum machst du es dann in VB? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
streffin Geschrieben 30. Juli 2010 Teilen Geschrieben 30. Juli 2010 (bearbeitet) bevor du an dem SQL noch verzweifelst ... dim sSql String sSql = "SELECT * FROM kunden WHERE name like '" & buchstabe & "%'" Was bereits angesprochen wurde, wenn du nur ein Zeichen nimmst und dass dann staendig in die DB feuerst, dann geht das boese auf die performance. Sinvoller ware es wenn du noch eine IF drum rum schreibst, und erst aber einer stringlaenge von 2-3 Zeichen die Datenbank bemuehst. Gruss Sven Bearbeitet 30. Juli 2010 von streffin code tags vergessen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.