Combobox 表单组合框在Access 2007查询中充当表列标题

Combobox 表单组合框在Access 2007查询中充当表列标题,combobox,ms-access-2007,Combobox,Ms Access 2007,我有一个带有未绑定组合框的表单,其中包含表dbo_orderheader的所有列标题。我想做的是使用combobox字段作为表列标题,而不是将其硬编码为特定的表列标题,这样用户就可以从所选列的表单中动态搜索,而不是为每个表列创建一个庞大的搜索框列表 在access查询中,任何人都可以提供帮助吗?我正在使用Access 2007 谢谢 我很确定,在静态查询设计中没有办法将表单引用嵌入列标题,但您可以使用表单后面的代码动态更新查询设计,然后打开查询,类似这样 Private Sub btnOpenQ

我有一个带有未绑定组合框的表单,其中包含表dbo_orderheader的所有列标题。我想做的是使用combobox字段作为表列标题,而不是将其硬编码为特定的表列标题,这样用户就可以从所选列的表单中动态搜索,而不是为每个表列创建一个庞大的搜索框列表

在access查询中,任何人都可以提供帮助吗?我正在使用Access 2007

谢谢


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

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

注意:此示例代码假定“dynamic”列是文本列,因此在构造SQL语句时,它会在
Text5.Value
周围放置
字符。必须增强此代码以处理其他列类型(例如,数字列不带引号,日期分隔符可能为
).

@user2294977我很高兴听到您的第一个堆栈溢出问题得到了满意的回答。请记住,您可以提供一个答案来表明您的问题已得到解决。