Wie auf MS-Access DB zugreifen?

Status
Nicht offen für weitere Antworten.

ernst

Top Contributor
Hallo allerseits,
Zu Testzwecken will ich auf eine Access-Datenbank zugreifen.
Ich habe mit MS-ACCESS eine einfache Datenbank demoDB1.MDB angelegt
und eine Tabelle erzeugt.

Leider gibt es schon bei der Anwesiung
demoDB1Connection =
DriverManager.getConnection(datenQuelle,"","");
die folgende Fehlermeldung:
[Microsoft][ODBC Microsoft Access Driver] Datei '(unbekannt)' nicht
gefunden.

Fragen:
1) Was muss ich machen, damit diese Fehlermeldung nicht mehr passiert?
(Ich habe keine Datenbank-Treiber oder Ähnliches installiert, da ich
gelesen habe, dass mit der Lösung (siehe unten) "keine DSN über die
Systemsteuerung eingerichtet werden muss".
Wo bekommt man die "Microsoft-Access-Treiber" her, falls sie benötigt
werden?
Ich denke, dass bei der Installation von MS-Access auch die Treiber
installiert werden, oder was muss man da noch machen?

2)
Müssen die Buchstaben im Datenpfad alle groß geschreiben werden?
also:
C:/DEMODB1.MDB

mfg
Ernst

------------------------------------------------
Code:
import java.sql.*;

public class MainDB1 {
  public static void main(String[] args) {
    String datenQuelle;
    Connection demoDB1Connection;
    Statement StatementSQL;
    ResultSet resultSet;
    String AbfrageSQL;
		
    try{ 
// Lädt die Klasse mit dem Namen "sun.jdbc.odbc.JdbcOdbcDriver"
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// getConnection(...) benötigt 3 Parameter:
// eine Datenquelle, einen User, ein Passwort
// eine Datenquelle ist wie folgt aufgebaut:
// jdbc:Subprotokoll:Datenquellennamen
// Für ODBC-Datenquellen ist das Subprotokoll obcd
// 
      datenQuelle = "jdbc:odbc:Driver={Microsoft Access Driver
(*.mdb)};DBQ=C:/DEMODB1.MDB";	    	
// getConnection(...) liefert die Verbindung zur Datenbank zurück.
// obenstehender Pfad muss jeweils angepasst werden!
      demoDB1Connection =  
               DriverManager.getConnection(datenQuelle,"","");
// Um Anfragen an die Datenbank stellen zu können benötigt man ein
// Objekt der Klasse Statement
      StatementSQL = demoDB1Connection.createStatement();
      AbfrageSQL = "SELECT Nr, Bezeichnung, Bestand FROM Artikel1 ";
      AbfrageSQL = AbfrageSQL + "WHERE Nr = '1000';";
      resultSet = StatementSQL.executeQuery(AbfrageSQL);
      resultSet.close();
      StatementSQL.close();
      demoDB1Connection.close();	    	
    }
    catch (ClassNotFoundException fehler){
      System.out.println("DB konnte nicht geöffnet werden");	    	
      fehler.printStackTrace();
    }
    catch (SQLException fehler){
      System.out.println("DB konnte nicht geöffnet werden");	    	
      fehler.printStackTrace();
    }
  }
}
----------------------------------------------------------------------------
 

Niki

Top Contributor
Hast du die Datenquelle unter System Steuerung/Verwaltung/Datenquellen (ODBC) hinzugefügt?
 

ernst

Top Contributor
Niki hat gesagt.:
Hast du die Datenquelle unter System Steuerung/Verwaltung/Datenquellen (ODBC) hinzugefügt?
Nein, denn ich habe gelesen, dass mit der Lösung (siehe unten) "keine DSN über die
Systemsteuerung eingerichtet werden muss".

mfg
Ernst
 
G

Gast

Gast
Also ich mach das so:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// set this to a MS Access DB you have on your machine
String database = "jdbc:eek:dbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database += "bla.mdb"
+ ";DriverID=22;READONLY=true}"; // add on to the end
// now we can get the connection from the DriverManager
con = DriverManager.getConnection(database, "", "");
stmt = con.createStatement();
// pstmt = con.prepareStatement(sql);
pstmt_sitData =
// "Datenbankverbindung hergestellt");
 

ernst

Top Contributor
Gast hat gesagt.:
Also ich mach das so:

String database = "jdbc:eek:dbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database += "bla.mdb"
+ ";DriverID=22;READONLY=true}"; // add on to the end

Das ist so ähnlich, wie ich es gemacht habe.
Ich habe durch Tests folgendes festgestellt:
Deine und meine Lösungen funktionieren _nicht_ bei Datenbanken, die ich mit MS-Access erstellt habe.
Wenn ich dagegen eine _bestimmte_ Datenbank nehme, die mir jemand mal gegeben hat
(und der diese mit MS-Access erstellt hat), dann funktioniert deine und meine Lösung.
Was hat der Mensch wohl bei der Erstellung der Datenbank mit MS-Access noch gemacht, was ich nicht gemacht habe?

Bem:
Ich habe keine DNS über die Systemsteuerung eingerichtet.

mfg
Ernst
 

L-ectron-X

Gesperrter Benutzer
Auf jeden Fall solltst du darauf achten, dass du im Code den Dateinamen der Datenbankdatei richtig schreibst. (Groß-/Kleinschreibung. Im Verlauf des Threads hast du bereits zwei verschiedene Schreibweisen benutzt. Prüfe das mal.

Mit der vorgeschlagenen Variante ist kein Treiber notwendig (es gibt auch keinen). Auch ein Eintrag in den ODBC-Quellen ist damit nicht notwendig.
 

ernst

Top Contributor
L-ectron-X hat gesagt.:
Auf jeden Fall solltst du darauf achten, dass du im Code den Dateinamen der Datenbankdatei richtig schreibst. (Groß-/Kleinschreibung. Im Verlauf des Threads hast du bereits zwei verschiedene Schreibweisen benutzt. Prüfe das mal.

Mit der vorgeschlagenen Variante ist kein Treiber notwendig (es gibt auch keinen). Auch ein Eintrag in den ODBC-Quellen ist damit nicht notwendig.

Stimmt! Du hast recht!
Ich habe laufend an einer falschen Stelle nach dem Fehler gesucht.
Allerdings ist bei mir egal, ob ich groß oder klein schreibe.
Ich habe einen falschen Buchstaben geschrieben.
Vielen Dank an alle.
Jetzt kann ich wieder weiterprogrammieren.

mfg
Ernst
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Access 2007 zugreifen- ODBC Driver Manger Datenbankprogrammierung 3
P ODBC verbindung Java soll auf access mdb datei zugreifen Datenbankprogrammierung 2
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
G Connect zu ACCESS-DB mit Ucanaccess Datenbankprogrammierung 11
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
J Unterschied @Id und @Access? Datenbankprogrammierung 5
MaxG. Access Datenbank Datenbankprogrammierung 48
I Access Datenbank in Table einlesen lassen Datenbankprogrammierung 2
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
W Access DB Metainfo hinzufügen Datenbankprogrammierung 8
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
Neumi5694 MS Access Sicherheit entfernen Datenbankprogrammierung 0
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
L mdb (access) ansteuern: Welcher weg ist der Beste Datenbankprogrammierung 3
D Java MS Access Verbindung Datenbankprogrammierung 10
Neumi5694 MS Access Tabellenbesitzer ändern Datenbankprogrammierung 0
V Datenbank Access einbinden Datenbankprogrammierung 11
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
Neumi5694 Java + MS Access + 64 Bit = Fehler -1073740777 Datenbankprogrammierung 2
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
Gossi MySQL Access denied Datenbankprogrammierung 11
J Access Datenbank mit JAVA erstellen - boolean Werte Datenbankprogrammierung 4
M Datenbankverbindung Access Datenbankprogrammierung 3
F Insert into Access Datenbankprogrammierung 3
C Access Datenbankprogrammierung 2
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
E Access Datenbank, Linux Umgebung Datenbankprogrammierung 4
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
M Access Abfrage mit Parameter & Access/Java liefern unterschiedliche Ergebnisse Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
K Access Datenbank mit Java auf win7 64bit Datenbankprogrammierung 14
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
F Zugriff auf MS Access-Datenbank mit jackcess Datenbankprogrammierung 10
P Access Datenbank durchsuchen Datenbankprogrammierung 8
M Problem mit Hibernate und Access Datenbankprogrammierung 9
S Datenbankapplikation von Access -> Java Datenbankprogrammierung 18
B MAC Access Datenbank in Java verwenden - Treiberproblem Datenbankprogrammierung 2
J mit java in access DB über odbc/jdbc Datenbankprogrammierung 2
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
C MS Access und Jarkarta POI Datenbankprogrammierung 4
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
Q Access Datenbank in eine Internetseite einbinden Datenbankprogrammierung 2
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
F Zugriff auf MS Access DB Datenbankprogrammierung 3
T Problem beim Update in die Access DB Datenbankprogrammierung 9
M Tabelle in Access Datei mit JDBC generieren Datenbankprogrammierung 3
C MySQL langsamer als MS ACCESS Datenbankprogrammierung 5
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
X JDBC und MS-Access Sicherheitslücken? Datenbankprogrammierung 4
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
G "Adapter" Access -> MySQL? Datenbankprogrammierung 6
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
H Fehler mit ". Microsoft Access Driver" Datenbankprogrammierung 12
K Java JDBC Access Datenstruktur Datenbankprogrammierung 2
V Überprüfen ob Tabelle existiert in Access per ODBC Datenbankprogrammierung 2
S Access vom Programm aus starten Datenbankprogrammierung 8
V Tabelle kopieren (Superbase -> Access) Datenbankprogrammierung 1
G Java und Access? Datenbankprogrammierung 3
D Problem mit Access abfrage Datenbankprogrammierung 10
D Access Datenbank in .jar-Datei Datenbankprogrammierung 51
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
M Access Datenbank ! Datenbankprogrammierung 5
M Hilfe -Access mag sein Replace nciht merh Datenbankprogrammierung 2
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
U MS Access reservierte Wörter Datenbankprogrammierung 2
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
B Platzierung einer Access Datenbank Datenbankprogrammierung 4
V MS Access DB - Schreibschutz deaktivieren Datenbankprogrammierung 3
S PreparedStatements, Abfrageoptimierung unter MS Access Datenbankprogrammierung 5
S Java Access Arbeitsgruppendatei Datenbankprogrammierung 2
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
S Access und Java, aber wie? Datenbankprogrammierung 4
N Hilfe ! Mein Applet bekommt ein Access-Denied von MySQL Datenbankprogrammierung 7
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
T Zugriff auf MS-Access-DB ist grottenlangsam. Normal? Datenbankprogrammierung 9
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
H Hibernate vs. MS Access Datenbankprogrammierung 7
G Suchen nach Autowerten in Access-DB Datenbankprogrammierung 20
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
T Desktopanwendung mit Access als DB Datenbankprogrammierung 4
H Microsoft Access Abfrage Datenbankprogrammierung 6
K Problem mit datenbankanbindung unter access 2003 Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben