如何解决此错误消息"编译错误:用户定义的类型未定义"在Microsoft VBA中

时间:2017-12-15 17:43:03

标签: sql-server excel vba stored-procedures adodb

我是Microsoft-VBA的新手,我试图让Excel在MSSQL Server中运行存储过程并将记录添加到为此目的创建的表中。但每次我尝试运行它来测试我的代码,我收到此错误消息。我已经审查并实施了在此论坛上提出的一些解决方案,但我无法使其发挥作用。例如,我已经去激活工具>中的“Microsoft ActiveX数据对象记录集2.8库”。引用,但我仍然得到相同的错误。如果有人能查看我的代码并告诉我我做错了什么,那将会很高兴。

This image contains the code and error message

Sub My_Test_Report()

    Dim objConn As New ADODB.Connection
    Dim objCmd As New ADODB.Command
    Dim objParm1 As New ADODB.Parameter
    Dim objRs As New ADODB.Recordset

    objCmd.CommandText = "[Report Queries].[dbo].[My_Test_Report]"
    objCmd.CommandType = adCmdStoredProc
    Set objConn = GetNewConnection
    objCmd.ActiveConnection = objConn
    objCmd.Parameters.Refresh
    objCmd(1) = True
    Set objRs = objCmd.Execute

End Sub

2 个答案:

答案 0 :(得分:0)

我同意ashleedawg3,你有'Paremeter'和'参数'。当我尝试编译时,我得到相同的错误,并在该特定行上突出显示:

enter image description here

这里的线索是编译器看到了DOESNT知道的类型,因此你得到“用户定义的类型,未定义”

尝试调整拼写,看看是否修复了它......

答案 1 :(得分:0)

我认为你错过了第二个图书馆。转到工具参考并添加两者:

  

☑MicrosoftActiveX数据对象6.1库

     

☑MicrosoftActiveX数据对象Recordset 6.0库

(取消选中相同库的任何较低版本。)

请注意,如果选择同一个库的不同版本,通常最好选择最高版本号。