VisualBasic 6 - Datenbank filtert nicht die Spalte mit Zahlenwerten

Skorbion

Grünschnabel
Hallo ;-)

Ich brauche mal bitte unbedingt eure Hilfe :)

Situation:

Ich habe eine Datenbank und möchte gern Daten Filtern.

-tb_Such ist der Wert, der im Textfeld "Suchen" eingegeben wird.

Die ersten IF Anweisungen sind dafür da, weil man 1. Nach Anfangsbuchstabe und 2. Nach "irgendwas, was in dem Wort" vorkommt suchen kann.

Der Code funktioniert wunderbar und er findet auch alles. Aber ...
er findet nur die Daten, die in der Tabellen Ansicht mit "Text" definiert worden sind.

1. Definiere ich die Spalte "Nummer" als Text = findet er die Daten.
--> Definiere ich die Spalte "Nummer" als Zahl = findet er die Daten nicht.

Jetzt habe ich mir gedacht, wenn im Suchfeld eine Zahl gesucht wird, diese dann in einen String umzuwandeln, aber
ich weis jetzt nicht richtig wie ich das machen soll, also der Syntax.

Die Spalte Nummer muss auch Zahl sein, weil ich nach der Spalte Sortieren muss.


Code:
..
..
    If optAnfangsbuchstabe.Value = True Then Suchbegriff2 = "'" & tb_Such & "*'"
    If optSchlüsselwort.Value = True Then Suchbegriff2 = "'*" & tb_Such & "*'"

If opt_Nummer.Value = True Then
    RecordSet.Daten.Filter = "Nummer like " & Suchbegriff2 & ""
    cmdDatenZählen_Click
End If

If opt_Name.Value = True Then
    RecordSet.Daten.Filter = "Name Like " & Suchbegriff2 & ""
    cmdDatenZählen_Click
   End If
..
..

Nicht grade gut Erklärt :p
 
Annamhe: es geht um MS Access

LIKE geht nur für Texte

SQL:
-- Ein Teil eines Textes (Alles was mit Hans beginnt
[meinTextFeld] LIKE "Hans*"

--  Findet nur Hans
[meinTextFeld] = "Hans"

-- und bei Zahlen: Findet alle mit dem Eintrag 13
[meinIntegerFeld] = 13
 
Zuletzt bearbeitet von einem Moderator:
Man könnte doch aber in der Abfrage das Feld in einen String umwandeln

SQL:
SELECT zahl FROM tabelle WHERE STR(zahl) LIKE '*123*'
 
Danke für die schnellen Antworten. Leider habe ich das letzte mal 2006 was in VB gemacht und ich komme nicht drauf wie ich eure Beispiele coden muss.

Könnt ihr mir an Hand meines Beispiels oben zeigen wie ich das schreiben muß, das er Zahlen finden kann ?

Also ich denke mal das man diese Zeile:

PHP:
RecordSet.Daten.Filter = "Nummer Like " & Suchbegriff2 & ""

ändern muss.

Danke
 
Danke.

Leider habe ich keinen Erfolg damit.

PHP:
RecordSet.Daten.Filter = "Nummer = " & Suchbegriff2 & ""

Oder habe ich ein Leerzeichen mit drinn ?


- Ich schaue heute Abend noch mal rein :) - schönen Nachmittag noch.
 
Zuletzt bearbeitet:
Du hast weiter oben in deinem Code das folgende
Visual Basic:
    If optAnfangsbuchstabe.Value = True Then Suchbegriff2 = "'" & tb_Such & "*'"
    If optSchlüsselwort.Value = True Then Suchbegriff2 = "'*" & tb_Such & "*'"
Da machst du aus deine Zahl einen String und ggf noch ein * davor. Dass darfst du nur bei Strings. Bei Zahlen nicht.
Ausser du arbeitest mit den Zaheln als String, siehe dazu das Beispiel von tombe
 
Einfach reden, aber kompliziert denken - nicht umgekehrt. ...

PHP:
If optSchlüsselwort.Value = True Then Suchbegriff2 = tb_Such.text
;-)

Der Spruch oben passt eigentlich recht gut. Es klappt alles wunderbar.

Ich bedanke mich nochmal für die schnelle Hilfe :)
 
Zurück