8

MS Access ファイルを Java GUI プログラムに接続したいのですが、接続に問題があります....

Windows 7 64b と ms office 2007 を使用しています。コントロール パネルで ODBC ドライバー マネージャーを開いたとき、Microsoft Access 用のドライバーが見つかりませんでした (おそらく、ODBC を開始したときに 64 ビット ODBC の実行が開始され、現在は32ビットODBC。これを読んで、次のように作成しました:「ウィンドウ7 64ビットマシンのjdbc-odbc接続.. 1.データソース(ODBC)を右クリック..プロパティに移動して、次のことを変更します

ターゲット [ %SystemRoot%\SysWOW64\odbcad32.exe ] 開始: [ %SystemRoot%\System32 ]

Enter キーを押して管理者として続行 source: source link " ) コントロール パネルで ODBC を開始すると、ドライバーのスクリーンショットが表示されます

私のプログラムコード(2つの方法を試しましたが、同じエラーがあります):

        public void Connect() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

 //    String DatabaseFile = "D:java/Invertory.mdb";       
//            String DATABASE =
//                    "jdbc:odbc:Driver="
//                    + "{Microsoft Access Driver (*.mdb, *.accdb)};"
//                    + "DBQ=" + DatabaseFile;`enter code here`
 String DATABASE ="jdbc:odbc:Driver= Microsoft Access Driver (*.mdb, *.accdb);DBQ=Invertory.mdb";
           CONEX = DriverManager.getConnection(DATABASE);

        } catch (Exception X) {
          X.printStackTrace();
            //JOptionPane.showMessageDialog(null,e);
        }
    }

エラー

java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません

4

9 に答える 9

15

UCanAccess JDBC ドライバーを使用します。

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://<mdb or accdb file path>",user, password); 
for example: 
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://c:/pippo.mdb");

あなたの例では、それはConnection conn=DriverManager.getConnection("jdbc:ucanaccess://"+path)

于 2014-12-04T09:44:59.150 に答える
2

しばらく前に、ここにリンクの説明を入力して同様の質問に答えました。

基本的に当時:

  1. JDBC-ODBC ブリッジを介して 32 ビット Java から Ms-Access に接続できます。
  2. 64 ビット Java から JDBC-ODBC を介して 32 ビット Odbc ドライバーに接続できませんでした。32ビットプログラムからしか接続できないというメッセージがありました
  3. Microsoft は 64 ビットの Ms-Access ドライバーを提供していますが、Java の 64 ビット JDBC-ODBC ドライバーでは機能しませんでした。

それ以来、新しいオープンソースの Ms-Access JDBC Driver Ms-Access JDBC driverがあるようです。私はそれがどれほど良いかわかりません。

于 2013-07-10T05:48:55.733 に答える
0
final String fileName = "c:/myDataBase.mdb"
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+fileName;
Connection con = DriverManager.getConnection(url,username,password);
于 2015-07-30T04:59:03.517 に答える