【问题标题】:ms-access: instead of rowsource, running from queryms-access:而不是 rowsource,从查询运行
【发布时间】:2009-09-02 18:51:27
【问题描述】:

我有一个从列表框行源运行的非常复杂的查询。我只是做一个 listbox1.requery 并填充列表框。

我不想这样做,而是:

  1. 我只想将查询保存在查询部分中
  2. 从那里调用它。
  3. 然后我想将查询结果保存到字符串中
  4. 然后我想将字符串输入列表框

你能帮我写出这四个问题的代码吗?

谢谢!

【问题讨论】:

    标签: sql mysql ms-access vba


    【解决方案1】:

    另一种解决方案是在记录集中打开查询,然后将列表框控件的 记录集 属性设置为它。我有我自己的功能(我主要将它用于组合框)。如有必要,当您想从另一个数据库打开记录集时,可以向 sub 添加额外的“连接”参数。

    Public Sub addQueryToCombobox(x_query As String, x_control As Control)
    Dim rs As ADODB.Recordset
    
    On Error GoTo ERREUR
    
    Set rs = New ADODB.Recordset
    
    Set rs.ActiveConnection = CurrentProject.AccessConnection
    
    rs.CursorType = adOpenStatic
    rs.LockType = adLockReadOnly
    rs.CursorLocation = adUseClient
    
    rs.Open x_Query
    
    Set rs.ActiveConnection = Nothing
    
    Set x_control.Recordset = rs
    
    Set rs = Nothing
    
    On Error GoTo 0
    Exit Sub
    
    ERREUR:
    'add here your own error manager'
    End Sub
    

    【讨论】:

      【解决方案2】:

      我认为您的前 3 个项目已通过对您的另一个问题的回答得到解决:

      ms-access save query result in a string

      至于本题的第四项,将列表框的 Row Source Type 设置为“Value List”,并将字符串写入其 Row Source 属性。

      【讨论】:

      • 但请记住,可以分配给值列表的字符串的长度是有限制的。我忘记了不同版本的实际长度(我相信它比以前长得多),但如果您的列表将是任意长度,您可能希望使用回调函数。
      【解决方案3】:

      您可以将列表框的行源设置为您的查询。

      【讨论】:

        猜你喜欢
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        相关资源
        最近更新 更多