# Java auf eine Accessabfrage



## DGM (29. Nov 2004)

Hallo Leute. 

Kann mir irgendwer sagen ob ich v. Java aus auf eine Accessabfrage zugreifen kann und wenn ja, wies geht? 

Access 2002 
Java 1_4_2 

mfg DGM


----------



## Guest (29. Nov 2004)

Ja über ODBC. Treiber ist bereits in rt.jar drin. (sun.jdbc.odbc.JdbcOdbcDriver)


----------



## Guest (29. Nov 2004)

Ehhm Du fragtest auch wie. :wink: 

```
...
CallableStatement cs = connection.prepareCall("EXECUTE Name_der_gespeicherten_Abfrage");
if(cs.execute())
{
  ResultSet rs = cs.getResultSet();
  while(rs.next())
  {
    ... wie bei normalen Abfragen, auf die einzelnen Felder zugreifen
  }
}
...
```


----------



## DGM (29. Nov 2004)

Zugreifen kann man wie auf eine Table. K. Dass weiß ich. 
Nur wie stell ich es an wenn in der Abfrage ein Where drin ist und ich die Daten nach denen gesucht wird ich übergeben bekomme.

Bsp:


```
public void getfreiezimmer(String vondat, String bisdat)
 throws SQLException{
   Statement stmt = con.createStatement();
   ResultSet rs;
   
   rs = stmt.executeQuery("SELECT * FROM qryFreieZimmer"); // <-- Gibts hier eine Möglichkeit vondat und bisdat zu übergeben sodass er mit diesen die Abfrage durchführt
   rs.next();

   System.out.println(rs.getString(1));

   rs.close();
   stmt.close();
  }
```


----------



## Guest (29. Nov 2004)

Klar.

```
public void getfreiezimmer(String vondat, String bisdat) throws SQLException
{ 
  PreparedStatement stmt = con.createStatement("SELECT * FROM qryFreieZimmer WHERE datum BETWEEN ? AND ?"); 

  stmt.setDate(1, string_in_java_sql_date(vondat)); // den String in java.sql.Date konvertieren
  stmt.setDate(2, string_in_java_sql_date(bisdat)); // den String in java.sql.Date konvertieren

  ResultSet rs = stmt.executeQuery();
  while(rs.next())
  { 
    ...
  }
  ...
}
```


----------



## Guest (29. Nov 2004)

Ups! Ersetze " con.createStatement(" durch  "con.prepareStatement("


----------



## DGM (29. Nov 2004)

Vielen Dank

mfg DGM


----------

