如何在Matlab中创建新的Microsoft Access *.accdb数据库文件?
创建新的*.accdb文件的可行方案
我之前也碰到过类似的问题——JDBC-ODBC桥驱动本身不支持直接创建Access数据库文件,得换些思路来实现。结合你用Matlab的场景,给你两个实用的方法:
方法一:利用Access的COM组件(Windows专属)
如果你的机器是Windows系统且安装了Microsoft Access/Office套件,可以直接通过Matlab调用Access的ActiveX对象来创建空白数据库,步骤很简单:
% 定义新数据库的保存路径(注意用双反斜杠或者正斜杠) new_accdb_path = 'C:\\path\\to\\new\\my_database.accdb'; % 创建Access应用实例 access_app = actxserver('Access.Application'); % 创建空白的accdb数据库 access_app.NewCurrentDatabase(new_accdb_path); % 关闭Access并释放资源 access_app.Quit; delete(access_app);
这个方法的优势是直接用Access原生功能生成数据库,兼容性最好,但依赖Office环境,只能在Windows上用。
方法二:用UCanAccess驱动(跨平台,无需Access)
如果需要跨平台(比如Mac/Linux)或者不想依赖Office,可以用纯Java的UCanAccess驱动——它不仅能连接accdb,还支持创建新数据库。
首先你需要把UCanAccess的相关Jar包(ucanaccess.jar、hsqldb.jar、jackcess.jar、commons-lang.jar、commons-logging.jar)添加到Matlab的Java类路径里(可以通过javaaddpath('path/to/jars')命令添加)。然后用以下代码创建数据库:
% 新数据库路径 new_accdb_path = 'C:\\path\\to\\new\\my_database.accdb'; % 构建UCanAccess的JDBC URL,指定创建accdb格式(V2010对应accdb) jdbc_url = ['jdbc:ucanaccess://', new_accdb_path, ';newdatabaseversion=V2010']; % 加载驱动并创建连接(连接时自动生成空白数据库) java.lang.Class.forName('net.ucanaccess.jdbc.UcanaccessDriver'); conn = java.sql.DriverManager.getConnection(jdbc_url, '', ''); % 可选:创建表等操作示例 stmt = conn.createStatement(); stmt.executeUpdate('CREATE TABLE Products (ProductID INT PRIMARY KEY, ProductName VARCHAR(100))'); stmt.close(); % 关闭连接 conn.close();
这个方法完全不依赖Access客户端,跨平台通用,适合没有Office环境的场景。
补充说明
如果你坚持想用原来的JDBC-ODBC桥,那只能先通过上面两种方法创建好空白accdb文件,再用你原来的代码去连接——JDBC-ODBC本身没有创建数据库的能力,必须借助外部工具或API来完成创建步骤。
内容的提问来源于stack exchange,提问作者user36800
相关产品推荐
相关产品推荐

