# Fehler in der select-Abfrage



## Guest (22. Nov 2006)

So habe ja bald die ganzen sql befehle durch aber nun funktionoert die select anweisung nicht!

Fehlermeldung:

JDBC/mySQL-Treiber geladen.

Fehler in der Vergabe der Aktennummer java.sql.SQLException: [Microsoft][ODBC Mi
crosoft Access Driver] Das Microsoft Jet-Datenbankmodul findet die Eingangstabel
le oder Abfrage 'KlientenDaten' nicht. Stellen Sie sicher, dass sie existiert un
d der Name richtig eingegeben wurde.

Press any key to continue...

vorhanden:
eine Schnittstelle,
anlegen einer Datenbank 

```
befehl.executeUpdate("CREATE TABLE KlientenDaten (" +
     		"ID       				INT," +
     		"name     				VARCHAR(100)," +
     		"vorname 				VARCHAR(100),"+
     		"geburtsdatum     		DATE," +//...geht noch weiter an der Stelle
```

und nun möchte ich auf die ID in der Datenbank zugreifen.
Habe mir eine getID() geschrieben aber bekomme nur die obrige Fehlermeldung.
Die Operation wird an einer anderen Stelle aufgerufen, aber das sollte ja keine Rolle spielen

```
private static ResultSet rs_daten;
	static int getID()
  	{
  		int ID = 0;
  		verbinden();//wird  zum herstellen einer Verbindung gebraucht, dieses Funktioniert aber
  		try
  		{  	
		rs_daten = befehl.executeQuery("SELECT MAX(ID) FROM KlientenDaten");
  	//	rs_daten = befehl.executeQuery("SELECT MAX('" + ID + "') FROM KlientenDaten");
  			while(rs_daten.next())
  			{
  				ID = rs_daten.getInt("MAX(ID)") + 1;
  				System.out.println("Ergebnis: " + ID);
  			}
  		}
  		catch (Exception e)
    	                {
      		System.out.println("Fehler in der Vergabe der Aktennummer " + e);
    	                }
	//	System.out.println(ID);
    	schliessen();();//wird  zum beenden einer Verbindung gebraucht
    	return ID;
              }
```


----------



## SlaterB (22. Nov 2006)

tja, KlientenDaten nicht gefunden,
wird die Tabelle erst im Programmverlauf angelegt/ öfter mal gelöscht?

versuche die Tabelle mal vor Programmstart in der DB zu haben
und führe in einem Programmdurchlauf nur diese eine Anfrage durch,
keine anderen (die vielleicht die Tabelle kaputtmachen),

mache dich vielleicht mal über ein paar Meta-Anfragen schlau,
z.B. eine Liste aller vorhandenen Tabellen in der DB, falls es das bei ODBC gibt

Connection.getMetaData();
http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html

---------

falls doch irgendwelche Tippfehler auftreten (im geposteten Code nicht zu entdecken)
versuche mal einen Tabellennamen a oder ähnlich kurz


----------



## Kite (23. Nov 2006)

die tabelle wird bei starten des programmes angelegt und dann bleibt sie bestehen, wenn das prog 2 mal gestartet wurde, regestriert er das es die tabelle gibt und dann nimmt er die vorhandene Tabelle. 
werde es mal mit ner kleineren Tabelle versuchen und ausprobieren. 
in die Tabelle reinschreiben tut er ja aber ich kann diese ID nur nicht auslesen.
werd mich mal heute damit weiter beschäftigen.
trotzdem danke
markus


----------



## Guest (26. Nov 2006)

Habe das Problem gefunden!
Die Max sowie die Count und andere Funktionen unter SQL kann Access nicht anfangen, man muß sich selbst diese funktion schreiben!

Nur wenn es interessiert!

Markus


----------

