120 Aufrufe
Gefragt in Datenbanken von
Brauche Hilfe
Ich habe eine Tabelle
Meine Tabelle Name ist Test008 Und Test007
Test008:
ID    Niedrig     Hoch
1    100     200
2    500     700
3    900     1000
************************************************************
Test007:
ID    DD001
1    530
************************************************************
  Sub FindProject007()
    Dim strSQL As String
    Dim rst As Recordset
    
    Set WS = DBEngine.Workspaces(0)
    Set DB = WS.Databases(0)
    strSQL = "SELECT * FROM Test008, Test007 WHERE Test007.DD001 >= Test008.Niedrig AND Test007.DD001 <= Test008.Hoch"
    Set rst = DB.OpenRecordset(strSQL)
        If Not rst.EOF Then
        MsgBox "Not Found"
    Else
        MsgBox "Found"
    End If
    rst.Close
    Set rst = Nothing
End Sub

Meine Frage: Jedesmal, wenn ich versuche, über Formulare zu Filtern >= AND <= wie meine Beispiel oben,
bekomme ich bei egal welcher Nr (FOUND). Normaler Weise muss, wenn ich 107 eingebe,  (FOUND) kommen, aber wenn ich 800 eingebe
soll kommen (NOT FOUND). Bitte was habe ich falsch gemacht????

Danke

2 Antworten

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo Sbo,

Der Operator AND hat eine höhere Priorität als die Vergleichsoperatoren >= oder <=. Folglich arbeitet deine Abfrage nicht so, wie du es möchtest. Setz mal Klammern um die Vergleichsterme:

WHERE (Test007.DD001 >= Test008.Niedrig) AND (Test007.DD001 <= Test008.Hoch)

Gruß computerschrat
0 Punkte
Beantwortet von
Hallo Computerschrat,

Viel Dank hat alles gut geklapt du bist der beste. ich bin neu in der forum wo kann ich dir Punkte geben.

Grüß

Sbo
...