如何从Java运行Microsoft access宏
我们将Access数据库与Java一起用于一个项目。Access数据库中有一些宏,我们需要从Java运行这些宏。有没有办法从Java执行这些宏?下面的代码适用于我在Windows 8.1上的NetBeans 8。它写入一个临时VBScript文件,然后使用cscript.exe运行该文件:如何从Java运行Microsoft access宏,java,ms-access,macros,Java,Ms Access,Macros,我们将Access数据库与Java一起用于一个项目。Access数据库中有一些宏,我们需要从Java运行这些宏。有没有办法从Java执行这些宏?下面的代码适用于我在Windows 8.1上的NetBeans 8。它写入一个临时VBScript文件,然后使用cscript.exe运行该文件: 包runaccessmacro; 导入java.io.*; 公共类RunAccessMacro{ 公共静态void main(字符串[]args){ String dbFilePath=“C:\\Users\
包runaccessmacro;
导入java.io.*;
公共类RunAccessMacro{
公共静态void main(字符串[]args){
String dbFilePath=“C:\\Users\\Public\\Database1.accdb”;
字符串vbsFilePath=System.getenv(“TEMP”)+“\\javaTempScriptFile.vbs”;
文件vbsFile=新文件(vbsFilePath);
印刷作家;
试一试{
pw=新的打印写入程序(vbsFile);
println(“Set accessApp=CreateObject(\“Access.Application\”);
println(“accessApp.OpenCurrentDatabase\”“+dbFilePath+”\”);
println(“accessApp.DoCmd.RunMacro\“doRidLogUpdate\”);
println(“accessApp.CloseCurrentDatabase”);
pw.println(“accessApp.Quit”);
关闭();
进程p=Runtime.getRuntime().exec(“cscript/nologo\”“+vbsFilePath+”\”);
p、 waitFor();
BufferedReader rdr=
新的BufferedReader(新的InputStreamReader(p.getErrorStream());
int errorLines=0;
String line=rdr.readLine();
while(行!=null){
errorLines++;
System.out.println(行);//显示错误行(如果有)
line=rdr.readLine();
}
vbsFile.delete();
如果(错误行==0){
System.out.println(“操作成功完成”);
}
}捕获(例外e){
e、 printStackTrace();
}
}
}
注:
我对此深表怀疑。Java Access库非常稀少,并且提供非常基本的支持(主要是读写数据)。这很清楚是关于编程的,所以我不知道为什么它会被关闭为离题?