Excel 无法填充我的OLEObject组合框

Excel 无法填充我的OLEObject组合框,excel,ms-access,vba,Excel,Ms Access,Vba,我试图通过adodb连接和access数据库中的数据记录集来填充我的组合框。代码以前运行良好,但在普通用户窗体中,我的问题是无法正确引用combobox.additem属性 当ActiveX对象直接位于工作表主窗口上时,如何引用它? 形状的代号为:Combox_Instruments 控件代码名称应为:Forms.ComboBox.1 我有一个得到错误的市场,当前的错误是:运行时错误1004:应用程序定义的错误或对象定义的错误 这是我的密码 Private Sub Workbook_Open()

我试图通过adodb连接和access数据库中的数据记录集来填充我的组合框。代码以前运行良好,但在普通用户窗体中,我的问题是无法正确引用combobox.additem属性

当ActiveX对象直接位于工作表主窗口上时,如何引用它? 形状的代号为:Combox_Instruments 控件代码名称应为:Forms.ComboBox.1

我有一个得到错误的市场,当前的错误是:运行时错误1004:应用程序定义的错误或对象定义的错误

这是我的密码

Private Sub Workbook_Open()

  Dim DataConnection As ADODB.Connection: Set DataConnection = New ADODB.Connection
  Dim RecordSet As ADODB.RecordSet: Set RecordSet = New ADODB.RecordSet

  Dim SQLString As String
  Const ConnectionPath As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\name\Desktop\Database.accdb;Persist Security Info=False;"

  DataConnection.ConnectionString = ConnectionPath
  DataConnection.Open

  SQLString = "SELECT Name FROM MSysObjects WHERE Type =1 AND Flags=0"

  With RecordSet
    .ActiveConnection = DataConnection
    .Source = SQLString
    .LockType = adLockReadOnly
    .CursorType = adOpenForwardOnly
    .Open
    End With

Do Until RecordSet.EOF = True
    If RecordSet.Fields(0) <> "Instruments" Then
        Debug.Print RecordSet.Fields(0)
        Sheets("Mainwindow").OLEObjects("Forms.ComboBox.1").AddItem RecordSet.Fields(0) - ISSUE IS HERE!
        RecordSet.MoveNext
    Else
        RecordSet.MoveNext
    End If
    Loop

End Sub

假设工作表主窗口上有名为CombBox_Instruments的组合框,则代码应为:

Sheets("Mainwindow").CombBox_Instruments.AddItem RecordSet.Fields(0)

哇,谢谢你!奇怪的是,我试过了,但是用了.value,它找不到属性。但当我在附加事件处理程序的if语句中使用它时,.value属性显然适用于combbox\u工具。您知道为什么会出现这种情况吗?例如:如果CombBox_Instruments.Value和DTPicker_FROM.Value