# Abfrage aus einer ACCESS-Datenbank mit JAVA



## superbuchi (19. April 2005)

*Ich versuche Daten aus einer ACCESS-Datenbank mit Suchwort abzufragen:*

  // Funktioniert nicht:
   String sqlAbfrage = "SELECT * FROM schueler WHERE name LIKE \"B%\" ";

  // Funktioniert auch nicht:
   String sqlAbfrage = "SELECT * FROM schueler WHERE name like '"+suchwort+"%' ORDER BY name";

  // Funktioniert
   String sqlAbfrage = "SELECT * FROM schueler";

  // Wenn ich eine Ablaufverfolgung durchführe, sieht das u.a. so aus:
    // C:\Dokumente und Einstellungen\wi001\Lokale Einstellungen\Temp\SQL.LOG

_  sunpkcs11       15a8-15d8    ENTER SQLExecDirect 
            HSTMT               0B022460
            UCHAR *             0x0ACF2FE0 [      -3] "SELECT * FROM schueler WHERE name like \"B*\"\ 0"
            SDWORD                    -3

    sunpkcs11       15a8-15d8    EXIT  SQLExecDirect  with return code -1 (SQL_ERROR)
            HSTMT               0B022460
            UCHAR *             0x0ACF2FE0 [      -3] "SELECT * FROM schueler WHERE name like \"B*\"\ 0"
            SDWORD                    -3

 DIAG [37000] [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'name like \[B*\]'. (-3100) _ 

   _______________________________________________________________________
   Weitere versuche mit * oder Entwertung der " mit \" waren ohne Erfolg.
   Wenn ich die Abfrage-String mit like in Access eingebe funktionierts.
   Mit MS-SQL funktioniert die Abfrage ohne Probleme

   Kennt vielleicht der ACCESS-ODBC-Treiber keine "like"?
   Oder kann mir jemand eine Tip geben, wie ich nach Suchwörten von Java aus 
   in einer Access-Datenbank suchen kann?


----------



## Thomas Darimont (19. April 2005)

Hallo!

Lasse dochmal mit
String sqlAbfrage = "SELECT * FROM schueler WHERE name LIKE B%";

Gruß Tom


----------



## superbuchi (4. Juni 2005)

Danke für die AW. 
 Aber das hat leider bei MS-ACCESS nicht funktioniert, allerdings funktioniert dein Vorschlag so bei MS-SQL. Genau so wie dieser hier:

  String sqlAbfrage = "SELECT * FROM schueler WHERE name like ' "+suchwort+"% ' ORDER BY name";

 Wie gesagt, ich vermute das er Probleme mit dem "LIKE" gibt. Habe es leider mit MS-ACCESS nicht hinbekommen und deshalb eine Datenbankanbindung an MS-SQL geschrieben.


----------



## Horstl (5. Juni 2005)

heeey 

probier es dochmal mit 
"SELECT * FROM schueler WHERE name like ' *"+suchwort+"*""

also statt % ein * ... wenn ich das im Access eingebe funktioniert es, mit % irgendwie nicht.
vielleicht liegt ja da der Hund


----------

