【问题标题】:combobox in vba?vba中的组合框?
【发布时间】:2019-03-12 12:19:17
【问题描述】:

我有问题我为填充组合框编写了这段代码,但组合框没有填充

Private Sub refArt_Enter()
    refArt.Clear
    refArt.AddItem ""
      Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim rq As String
      Set conn = getConn()
      Set rs = New ADODB.Recordset
      rq = "SELECT ref FROM tblArticles;"
      rs.Open rq, conn, adOpenDynamic, adLockBatchOptimistic
      Do While Not rs.EOF
          refArt.AddItem rs("ref").value
          rs.MoveNext
      Loop
End Sub

【问题讨论】:

  • 请解释一下填充是什么意思。在 HTML/CSS 中,填充是指在元素内添加 marginals
  • 我想从 access 数据库中添加项目到组合框
  • 好的,如果你在do-while循环中放了一个断点,代码会到达那部分吗?
  • 他给我这个类型不匹配的错误
  • 您能否提交更多信息,此错误发生在哪一行?

标签: excel ms-access vba


【解决方案1】:

我在另一个网站上找到了这个,并根据我的需要使用了该结构,但如果您根据需要对其进行编辑,它应该可以工作。需要指出的一点是,您应该在 UserForm_Intialize 事件上调用宏,而不是在 CommandButton 事件上调用,这样每次用户窗体加载时它都会从数据库中重新填充数据。

   Private Sub UserForm_Initialize()
        On Error GoTo UserForm_Initialize_Err
        Dim cnn As New ADODB.Connection
        Dim rst As New ADODB.Recordset
        cnn.Open "Set Connection String Here"
        rst.Open "SELECT ref FROM tblArticles"
        rst.MoveFirst
        With Me.ComboBox1
            .Clear
            Do
                .AddItem rst![ref]
                rst.MoveNext
            Loop Until rst.EOF
        End With
UserForm_Initialize_Exit:
        On Error Resume Next
        rst.Close
        cnn.Close
        Set rst = Nothing
        Set cnn = Nothing
        Exit Sub
UserForm_Initialize_Err:
        MsgBox Err.Number & vbCrLf & Err.Description, vbCritical, "Error!"
        Resume UserForm_Initialize_Exit
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-24
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多