【问题标题】:Form ComboBox Acting As Table Column Header In Access 2007 Query表单组合框在 Access 2007 查询中充当表列标题
【发布时间】:2013-04-11 13:12:23
【问题描述】:

我有一个带有未绑定组合框的表单,其中包含表 dbo_orderheader 的所有列标题。我想要做的是使用组合框字段作为表列标题,而不是将其硬编码为特定的表列标题,这样用户可以从他们选择的列上的表单中动态搜索,而不是拥有一个巨大的列表每个表格列的搜索框数。

请任何人都可以帮助在访问查询中执行此操作吗?我正在使用 Access 2007。

谢谢。

See Picture Attached

【问题讨论】:

    标签: combobox ms-access-2007


    【解决方案1】:

    我很确定在静态查询设计中没有办法将表单引用作为列标题嵌入,但是您可以使用表单后面的代码来动态地 更新查询设计,然后打开查询,类似这样

    Private Sub btnOpenQuery_Click()
    Dim cdb As DAO.Database, qdf As DAO.QueryDef
    Const queryName = "flexQuery"
    
    Set cdb = CurrentDb
    DoCmd.Close acQuery, queryName, acSaveNo
    On Error Resume Next
    DoCmd.DeleteObject acQuery, queryName
    On Error GoTo 0
    Set qdf = cdb.CreateQueryDef(queryName, _
            "SELECT URN, StyleNo, [" & Me.Combo3.Value & "] " & _
            "FROM dbo_OrderHeader " & _
            "WHERE [" & Me.Combo3.Value & "]=""" & Me.Text5.Value & """" _
        )
    Set qdf = Nothing
    Set cdb = Nothing
    DoCmd.OpenQuery queryName, acViewNormal
    End Sub
    

    注意:此示例代码假设“动态”列是文本列,因此在构造 SQL 语句时,它会将 " 字符放在 Text5.Value 周围。必须增强此代码以处理其他列类型(例如,数字列没有引号,日期可能使用# 分隔符)。

    【讨论】:

    • @user2294977 很高兴听到您对 Stack Overflow 的第一个问题的回答令您满意。请记住,您可以accept 回复以表明您的问题已得到解决。
    猜你喜欢
    • 2010-09-09
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多