Zum Inhalt springen

[VB 6] SQL-Abfrage Anfangsbuchstabe


wimpus

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von wimpus
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

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 von streffin
code tags vergessen
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...