Microsoft Access データベースからプルする必要がある Java プログラムがあります。Java SE 8 では JDBC-ODBC ブリッジがサポートされていないため、最近、ODBC の代わりに UCanAccess を使用するようにコードを変更する必要がありました ( ODBC なしで Java から Access データベースを操作する) 。
以下に示すコード (UCanAccess Web サイトにあるサンプル コードのみ) を実行すると、エラーが発生します -
ERROR: net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: NULL
コードは次のとおりです。
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://Z:\\Assignment.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM tbl2014janjun"); //tbl2014janjun ORDER BY ID
while (rs.next()) {
System.out.println(rs.getString(1));
}
テスト中に、別のデータベースである Work Order にこのコードでアクセスでき、出力が期待どおりであることに気付きました。さらに、このコードを実行しようとすると、サーバー ディレクトリにロック用の laccdb ファイルが生成されます。このため、問題はユーザー権限にあると思います。このサイトで考えられる答えを検索している間、それらのほとんどはエラーメッセージの後半に関連していました-表のスペルが間違っていたなど.スペル/場所/ファイル構造が正しいことを確認しました.
ご協力いただきありがとうございます。