Excel自动化错误

时间:2016-07-08 04:44:56

标签: excel vba ado

我得到了一个"自动化错误"在rstLgn_details.Open SqlCmd

这是守则。

Call ConnectSS_Param(ThisWorkbook.FullName)    

Set rstLgn_details = CreateObject("ADODB.Recordset")
Set SqlCmd = CreateObject("ADODB.Command")
Set SqlparamUserID = SqlCmd.CreateParameter("@UserID", 129, 1, 52, txtUsername.Value)

StrSql = "SELECT Capabilityname,SLAA_EID FORM $Login_Details WHERE SLAA_EID=@UserID"

SqlCmd.ActiveConnection = conndb
SqlCmd.CommandText = StrSql
SqlCmd.Parameters.Append SqlparamUserID            

rstLgn_details.Open SqlCmd

If rstLgn_details.RecordCount > 0 Then         
   UserName = rstLgn_details(1)
   CapHlded = rstLgn_details(0)
   ThisWorkbook.Sheets("Serach").Select
Else  
   MsgBox "Sorry You are Not Authorized for this..... ", vbInformation + vbOKOnly, "Invaild User"
End If

1 个答案:

答案 0 :(得分:0)

重新连接到Excel工作簿时,原始文件将关闭,并且设置为原始文件的所有引用都将不再有效。当您尝试使用其中一个无效引用时,您将获得Automation Error

以下是Automation Error Using Excel Object in Visual Basic Procedure

的施法

在Microsoft Excel关闭时,在Visual Basic过程中访问Microsoft Excel OLE自动化对象时,会发生此问题。例如,如果使用CreateObject函数为工作表对象创建引用,并使用过程中的GetObject函数为另一个Microsoft Excel对象创建引用,则设置Microsoft Excel工作表对象(Excel.Sheet)等于什么都没有,如果您尝试访问其他对象,则会收到OLE自动化错误消息。