64位access資料庫
⑴ Powerbi報錯-Access資料庫引擎OLEDB提供程序的64位版本才可讀
當您嘗試使用PowerBI分享的鏈接與EXCEL進行整合時,遇到無法刷新並顯示出以下錯誤的情況,這是由於64位版本的Access資料庫引擎無法在含有32位Office的電腦上正確安裝或訪問所致。此問題的主要原因在於64位的應用程序需要使用Access資料庫引擎64位版本,而32位的Office安裝在系統中時,Access資料庫引擎64位安裝程序會提示無法安裝。為了解決這一復雜問題,您可以採取以下步驟:
首先,您需要下載與您的系統相匹配的Access資料庫引擎安裝包。請訪問微軟官方網站:microsoft.com/zh-cn/dow... 下載適合您系統的版本。下載完成後,將文件保存至您的電腦文件夾中。
接著,打開Windows的運行窗口,通過快捷鍵Win+R輸入64位Access資料庫引擎安裝文件所在的目錄路徑,隨後添加"/quiet"參數。例如,如果您的64位Access資料庫引擎安裝文件位於"C:\accessdatabaseengine_X64.exe"目錄下,請輸入"C:\accessdatabaseengine_X64.exe /quiet"並點擊確定。操作完成後無需進一步干預。
重新啟動PowerBI後,您將能夠成功刷新別人分享的報表,解決之前遇到的訪問問題。這一過程確保了正確的資料庫引擎版本安裝在您的系統上,從而避免了因版本不匹配導致的錯誤提示。
⑵ Access資料庫連接錯誤解決辦法
64位Windows系統連接Access資料庫,程序中可能需要修改Access資料庫連接:
32位:String strUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=c://demo.mdb"
64位:String strUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=c://demo.mdb"
修改後仍報錯則進入「控制面板」-》「管理工具」-》「數據源(ODBC)」查看系統是否存在Access驅動
若不存在則需要安裝Microsoft Access驅動程序:
官方:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255
32位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/
AccessDatabaseEngine.exe
64位:http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/
AccessDatabaseEngine_X64.exe
下面是連接access的.mdb文件,解析代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package test;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
public class Test {
/**
* TODO : 讀取文件access
*
* @param filePath
* @return
* @throws ClassNotFoundException
*/
public static void readFileACCESS(File mdbFile) {
Properties prop = new Properties();
prop.put("charSet", "gb2312"); // 這里是解決中文亂碼
prop.put("user", "");
prop.put("password", "");
//String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + mdbFile.
getAbsolutePath();
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ="+ mdbFile.
getAbsolutePath();
Statement stmt = null;
ResultSet rs = null;
String tableName = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 連接到mdb文件
Connection conn = DriverManager.getConnection(url, prop);
ResultSet tables = conn.getMetaData().getTables(
mdbFile.getAbsolutePath(), null, null,
new String[] { "TABLE" });
// 獲取第一個表名
if (tables.next()) {
tableName = tables.getString(3);// getXXX can only be used once
} else {
return;
}
stmt = (Statement) conn.createStatement();
// 讀取第一個表的內容
rs = stmt.executeQuery("select * from " + tableName);
ResultSetMetaData data = rs.getMetaData();
while (rs.next()) {
for (int i = 1; i <= data.getColumnCount(); i++) {
System.out.print(rs.getString(i) + " ");
}
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
readFileACCESS(new File("C:\\Users\\Ninemax\\Desktop\\西太區醫學索引.mdb"));
}
}