我正在尝试使用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))。
有没有人看过这个问题/解决了这个问题?
答案 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()