使用Powershell打开MS Access数据库吗?

时间:2018-09-11 07:21:32

标签: forms powershell ms-access

我正在尝试使用Powershell在Access数据库中打开一个表单:

$application = New-Object -ComObject Access.Application
$Fullpath = "path.accdb"
$application.OpenCurrentDataBase($Fullpath)
$application.docmd.OpenForm("frm")

我收到以下错误消息:

  

使用“ 1”参数调用“ OpenCurrentDatabase”的异常:“无法   转换类型的COM对象   'Microsoft.Office.Interop.Access.ApplicationClass'到接口类型   'Microsoft.Office.Interop.Access._Application'。此操作失败   因为接口的COM组件上的QueryInterface调用   IID为'{68CCE6C0-6129-101B-AF4E-00AA003F0F07}'的广告因   出现以下错误:加载类型库/ DLL时出错。 (来自的例外   HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。

有没有人看过这个问题/解决了这个问题?

1 个答案:

答案 0 :(得分:0)

我想让您尝试一下。.我编写了这段代码并正常工作

$Db = "sampledb.mdb"
$cursor = 3 
$lock = 3

$conn = New-Object -ComObject ADODB.Connection 
$recordset = New-Object -ComObject ADODB.Recordset
$conn.Open("Provider=Microsoft.Ace.OLEDB.12.0;Data Source=$Db")

$query = "Select * from LoginInfo"
$recordset.open($query,$conn,$cursor,$lock)

$recordset.Addnew() 
$recordset.Fields.Item("EmpID") = "1" 
$recordset.Fields.Item("UserName") = $username_txt.Text
$recordset.Fields.Item("PWord") = $password_txt.Text
$recordset.Fields.Item("EmpRole") = $userrole_combo.SelectedItem

$recordset.Update()
$recordset.close() 
$conn.close()