Verbindung zu Access Datenbank

JaninaSt

Aktives Mitglied
Hallo!

Ich habe mir von folgendem Link:

Download: Microsoft Access Database Engine 2010 Redistributable - Microsoft Download Center - Download Details

Microsoft Access Database Engine 2010 runtergeladen

und möchte nun mittels Java (Eclipse) eine Verbindung zu einer Datenbank erstellen.

Code:

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class Main {

	public static void main(String[] args) {
		
		try {
		      	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		} catch (Exception e) {
		    	System.out.println("JDBC-ODBC driver failed to load.");
		    	return;
		}

	    try {
	    	
	    	Connection con = DriverManager.getConnection("jdbc:odbc:Test", "", "");
	    	Statement stmt = con.createStatement();
	    	stmt.execute("CREATE TABLE SalesHistory(ProductID NUMBER,Price CURRENCY, TrnsDate DATE)");
	    	stmt.close();
	    	con.close();
	    } catch (Exception e) {
	    	System.out.println(e);
	    }
	}
}

Folgende Fehlermeldung bekomme ich:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben

Kann mir jemand sagen was ich falsch mache? Oder fehlt mir noch ein Treiber?

Vielen Dank schon mal für eure Hilfe.
 

Michael...

Top Contributor
Ob der Download dafür nötig war?

Du versuchst mit dem Sun Treiber über die ODBC Schnittstelle auf die Datenbank zu zugereifen, dazu muss die Access DB als ODBC Datenquelle mit dem Namen Test im Betriebssystem eingerichtet sein.
Das passt soweit und die Verbindung lässt sich da erfolgreich aufbauen?
 

JaninaSt

Aktives Mitglied
Ok danke schon mal, das heißt ich muss unter den Systemsteuerungen eine neue Datenquelle anlegen die dann hier zum Beispiel den Namen "Test" erhalten würde.

Wenn ich unter Systemsteuerungen zum ODBC Datenquellen Administrator gehe und unter System-DSN eine neue hinzufügen möchte kann ich aber nur einen SQL Server oder SQL Native Client als Treiber auswählen.. Da sollte ja aber eigentlich auch ein MS Access Treiber drinnen sein, den ich hier ja auswählen muss oder?

Oder ist der vorher zu installieren?
 

JaninaSt

Aktives Mitglied
Ich hätte jetzt den Weg ohne ODBC Quelle probiert, da bekomme ich folgende Meldung:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben

Der Code ist genau der von dem im vorigen Beitrag erwähnten Link:

Java:
   String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="
      + filename + ";READONLY=false}";      
 
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   con = DriverManager.getConnection(url, user, passwd);

Welchen Fehler mache ich? Hat wer ne Idee?
 

OSBI_Fan

Mitglied
Hallo JaninaSt,

Eintragungen für den Access-Datenbank-Zugriff mit Java:

Name: JDBC-ODBC-Bridge (Variante mit Registrierung der ODBC Datenquellen)
Driver: sun.jdbc.odbc.JdbcOdbcDriver
Database URL: jdbc:eek:dbc:[noparse]Driver[/noparse]={Microsoft Access Driver (*.mdb)};DBQ=C:/test.mdb

Achtung: Bei der Pfadangabe zur ACCESS-Datenbank keine Backslashes (\), sondern Slashes (/) verwenden!

Die Felder "User Name" und "Password" bleiben in diesem Fall leer.

P.S. Da bei der URL ein Smiley eingetragen wurde habe ich: "Driver" <-> "driver" geändert.
[EDIT]Edit by L-ectron-X:
P.S. Da bei der URL ein Smiley eingetragen wurde habe ich: "Driver" <-> "driver" geändert.
Bei solchen Problemen den kritischen Teil mit [noparse][noparse][/noparse]-Tags umhüllen.
Hab das mal für dich oben gemacht.[/EDIT]

Grüße
OSBI_Fan

OSBI = Open Source Business Intelligence
 
Zuletzt bearbeitet:

JaninaSt

Aktives Mitglied
Aber wenn ich bei der URL DBQ=C:/test.mdb hinten dran hab, heißt das die Datenbank mit dem Namen test muss hier schon existieren oder?

Was ist wenn ich die Datenbank aber auch mit Java erzeugen möchte, also eine komplett neue anlegen möchte?
 

Michael...

Top Contributor
Ja, die Datei muss existieren. Wenn man einen neue erzeugen will, bleibt aus Java heraus eigentlich nur die Möglichkeit eine bestehende (Vorlage) zu kopieren.
 

tfa

Top Contributor
Was ist wenn ich die Datenbank aber auch mit Java erzeugen möchte, also eine komplett neue anlegen möchte?
Muss es wirklich Access sein? Oder kannst du auch was anderes nehmen? Den größten Gefallen tut man sich, wenn man Access in die Tonne kloppt und eine vernünftige DB einsetzt.
 

JaninaSt

Aktives Mitglied
@Michael: Ok, danke. Dachte eigentlich es ist auch möglich eine neue zu erzeugen.

@tfa: Ja, die Frage hör ich öfters ;) Aber ja, muss Access sein.


Ich schaffs aber immer noch nicht eine Verbindung aufzubauen...

Java:
import java.sql.Connection;
import java.sql.DriverManager;


public class Main {

	private static Connection con;

	public static void main(String[] args) {
		
			try{
				String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Testdatenbank.mdb";
				//laden der Treiberklasse
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				//zurückgeben der neuen Verbindung
				con = DriverManager.getConnection(url);
				   
			} catch(Exception e){
					e.printStackTrace();
			}
	}
	
}

Immer die Fehlermeldung das der Datenquellenname nicht gefunden wurde und kein Standardtreiber angegeben wurde....
 

OSBI_Fan

Mitglied
Hallo JaninaSt,

versuch mal folgendes:

Java:
//Datenbankverbindung herstellen
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Testdatenbank.mdb","","" );
System.out.println("Connection Successful ");
Und wichtig ist auch, die DB-Verbindung wieder zu schließen:

Java:
con.close();
Grüße
OSBI_Fan

OSBI = Open Source Business Intelligence
 

JaninaSt

Aktives Mitglied
Leider immer noch die selbe Fehlermeldung.

Vielleicht hats da was anderes, weil wenn ich auf den ODBC Datenquellen Administrator gehe und da dann auf die MS Access Database einen Doppelklick mache steht da dass der ODBC Treiber nicht gefunden werden kann und ich den Treiber neu installieren soll...

Oder aber müsst das ja eigentlich egal sein weil ich ja eh die Variante ohne ODBC Datenquelle verwende so wies jetzt aktuell eingebunden ist, oder?

Also ich bin ratlos was ich noch probieren kann.
 
Zuletzt bearbeitet:

JaninaSt

Aktives Mitglied
Ok, ich hab jetzt eine ODBC Quelle eingerichtet.

Mein Java Code:

Java:
private static Connection getConnection() throws Exception {
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String url = "jdbc:odbc:db1";
    String username = "";
    String password = "";
    Class.forName(driver);
    return DriverManager.getConnection(url, username, password);
  }

Jetzt bekomme ich die Meldung:

[Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.

Ich habe einen 64 Bit Rechner, habe aber eine 32 Bit Access Version installiert.

Kanns sein, dass es da Probleme gibt?

Die ODBC Datenquelle hab ich folgendermaßen eingerichtet:

Unter C:\Windows\SysWOW64 habe ich die Datei odbcad32.exe (Das ist die 32Bit Datei) ausgeführt und dann eine Datenquelle mit dem Namen db1 angelegt.

Dann sollts doch eigentlich auch gehen...
 

JaninaSt

Aktives Mitglied
Also das Problem ist tatsächlich, dass ich einen 64 Bit Rechner habe, die Access Version aber eine 32 Bit ist.

Deshalb kann ich auch nur einen 32 Bit Treiber installieren, da lässt sich natürlich immer nur der installieren welcher von den Bit her gleich ist wie die Office Version was drauf ist.

Zugegriffen wird aber nur auf den 64 Bit Treiber, darum kann man ihn auch nicht finden wenn man mit Java folgendes ausführt.

Java:
[...]
private static Connection getConnection() throws Exception {
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    //String url = "jdbc:odbc:data";
    String url = "jdbc:odbc:Driver=(Microsoft Access-Treiber (*.mdb));DBQ=D:/data.mdb";
    String username = "";
    String password = "";
    Class.forName(driver);
    return DriverManager.getConnection(url, username, password);
  }
[...]

Falls mal wer das selbe Problem hat:

Werde mir jetzt einen XP Mode auf mein Notebook runterladen, dass sollt mit 32 Bit laufen und so sollts auch funktionieren, weil dann eben alles mit 32 Bit läuft.
 

janina11

Neues Mitglied
Hallo..

Ich habe genau das selbe Problem.
Allerdings lief das Ganze vor einiger Zeit schon einmal auf einem 64Bit Rechner mit 32Bit Access.


Hat jemand noch eine andere Idee, woran es liegen könnte?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
J Verbindung zur Datenbank MS Access Datenbankprogrammierung 4
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
D Java MS Access Verbindung Datenbankprogrammierung 10
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
P ODBC verbindung Java soll auf access mdb datei zugreifen Datenbankprogrammierung 2
H Direkte Verbindung zu Access-DB? Datenbankprogrammierung 6
J Problem bei ODBC Verbindung mit Access Datenbankprogrammierung 4
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
OnDemand SSL Verbindung zu externer DB Datenbankprogrammierung 5
C MySQL Remote Verbindung zu MariaDB Datenbankprogrammierung 11
M SQL , CSV Verbindung : Zu Umfangreicher Code durch Unwissenheit Datenbankprogrammierung 21
Z Beim schließen des Programms die verbindung zur DB beenden. Datenbankprogrammierung 4
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
M Oracle SQLException: Verbindung getrennt Datenbankprogrammierung 2
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
C Verbindung mit SQLExpress Datenbankprogrammierung 9
S E(fx)clipse Verbindung zu MS SQL Express aufbauen Datenbankprogrammierung 7
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
F MySQL Verbindung zum SQL-Server Datenbankprogrammierung 27
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
C datenbank verbindung config Datenbankprogrammierung 23
I MariaDB-Verbindung in JAVA Datenbankprogrammierung 11
J Verbindung aufbauen Datenbankprogrammierung 7
S DB2 Express C - keine Verbindung zur Datenbank Datenbankprogrammierung 2
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
W Keine ODBC-Verbindung zur MSAccess-Datenbank Datenbankprogrammierung 2
S Auslagern der Datenbank Verbindung Datenbankprogrammierung 2
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
D NullPointerException bei DB Verbindung Datenbankprogrammierung 6
AssELAss Verbindung i5 Series 7.1 / 7.2 (DB2) mit Oracle SQL Developer Datenbankprogrammierung 3
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
M MySQL Verbindung zum Server aufbauen ohne DB ansprechen Datenbankprogrammierung 2
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
I Datenbank Verbindung geht nicht Datenbankprogrammierung 2
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
Helgon H2 Verbindung öffnen/schließen - Dauer, wann, wie lange? Datenbankprogrammierung 2
J Verbindung zu Datenbank herstellen Datenbankprogrammierung 26
P MySQL Verbindung nach außen sehr langsam Datenbankprogrammierung 4
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
T MySQL Sichere Verbindung Datenbankprogrammierung 6
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
S Google Web Toolkit LDAP - Verbindung Datenbankprogrammierung 2
pg1337 Verbindung mit postgres - eclipse Datenbankprogrammierung 4
M Verbindung mit MSSQL hängt! Datenbankprogrammierung 2
cover1012 Derby/JavaDB Verbindung mit FTP-Server Datenbankprogrammierung 13
T NullPointerException bei Verbindung zur Datenbank Datenbankprogrammierung 4
J DB2 Verbindung zu AS400 Datenbankprogrammierung 6
F PostgreSQL JPA und Hibernate - Verbindung zur DB Datenbankprogrammierung 7
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
T mdb Verbindung ohne Registrierung der Datenquelle im OS Datenbankprogrammierung 14
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
S Hibernate in Verbindung mit Hsql Datenbankprogrammierung 2
D Oracle Verbindung mit Java zu Datenbank Datenbankprogrammierung 8
F MSSQL-Server Verbindung Datenbankprogrammierung 5
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
DStrohma MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt? Datenbankprogrammierung 5
G MySQL Tables 1:1 verbindung Datenbankprogrammierung 14
B JDBC Verbindung mit Postgresql Datenbankprogrammierung 13
U MSSQL Verbindung steht, aber meckert beim Statement Datenbankprogrammierung 2
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
N Trennt sich die Verbindung zur DB (MySQL) automatisch? Datenbankprogrammierung 3
X JDBC Verbindung in einer Funktion Datenbankprogrammierung 9
O HSQLDB Verbindung schlägt fehl Datenbankprogrammierung 3
C DB2/AS400 Verbindung Datenbankprogrammierung 2
T Form, Verbindung Feld -> DB Datenbankprogrammierung 3
J Verbindung zur Datenbank schlägt fehl... Datenbankprogrammierung 2
C keine Verbindung zur MS-SQL-Datenbank mehr Datenbankprogrammierung 4
Y Keine verbindung mit der Datenbank Datenbankprogrammierung 2
G verbindung 2er Tabellen Datenbankprogrammierung 3
G persistence.xml für MySQL - Verbindung Datenbankprogrammierung 6
C Keine Verbindung Datenbankprogrammierung 12
G 2 Tabellen in einer 1:n Verbindung Datenbankprogrammierung 2
G Verbindung mit Eclipse auf Datenbank einrichten Datenbankprogrammierung 3
M Verbindung zu Oracle DB Datenbankprogrammierung 4
U *.mdb Datenbank Verbindung mit Pfadangabe Datenbankprogrammierung 3
sparrow Objekt mit lazy-verbindung komplettieren Datenbankprogrammierung 13
M jbcd : odbc Verbindung zu Accessdatei (*.mdb) Datenbankprogrammierung 9
M DB-Verbindung zu DB in Projektordner möglich? Datenbankprogrammierung 17
G jdbc grundlegende verbindung zu sql server geht nicht Datenbankprogrammierung 9
M Passwortvergabe bei Verbindung zwischen jdbc und mysqlServer Datenbankprogrammierung 2
M Verbindung überprüfen und bei Bedarf neu aufbauen Datenbankprogrammierung 3
M Fehler bei der Verbindung zu einer MSSQL/Express Datenbank! Datenbankprogrammierung 17
B fehlerhafte PostgreSQL-Verbindung Datenbankprogrammierung 4
C Keine Verbindung zu HSQLDB möglich Datenbankprogrammierung 22

Ähnliche Java Themen

Neue Themen


Oben