从预先存储的参数化访问查询填充组合框

Posted

技术标签:

【中文标题】从预先存储的参数化访问查询填充组合框【英文标题】:Populate Combobox from a pre-stored parametriced Access-Query 【发布时间】:2014-05-29 16:37:22 【问题描述】:

我正在使用 MS Access 2010 数据库。我需要一个组合框来显示 sql SELECT 语句的结果,但这次我的 sql 语句太长,无法分配给组合框的 RowSource 属性。

为了解决这个问题,我创建了一个访问查询并将其存储在访问数据库查询部分,名称类似于“myQuery”。它的 sql 代码类似,但比以下查询长得多:

PARAMETERS [myParameter] Long;  
SELECT Field1, Field2, Field3
FROM [myTable]
WHERE [myTable]![FieldN] = [myParameter]

如您所见,查询有一个参数。

创建查询后,我将 VB 代码更改如下:

Me.myCombo.RowSource = "myQuery" 'The name of the query I created before
Me.myCombobox.Requery            'Execute the query to populate the combobox

它工作正常,但在每次执行之前,MS-Access 都会显示一个弹出窗口,询问参数的值。

¿如何避免此弹出窗口并在每次需要新填充时为参数分配或绑定一个值?类似的东西

Me.myCombo.RowSource = "myQuery" 'The name of the query I created before
Me.myCombobox.RowSource.Parameters("[myParameter]") = Me.formField1.Value 
Me.myCombobox.Requery            'Execute the query to populate the combobox

有没有其他方法可以解决这个问题?

谢谢

【问题讨论】:

【参考方案1】:

由于您的参数基于表单中的字段,我只需将查询中的参数替换为对表单字段的直接引用。

SELECT Field1, Field2, Field3
FROM [myTable]
WHERE [myTable]![FieldN] = [Forms]![FormName]![formField1]

【讨论】:

以上是关于从预先存储的参数化访问查询填充组合框的主要内容,如果未能解决你的问题,请参考以下文章

数据访问层使用参数填充组合框

EXTJS:如何在组合框上自动完成查询后从数据存储中清除“查询”参数

访问查询/组合框

如何从数据库查询中填充组合框?

VB.NET 仅从一个字段访问填充组合框

使用带有 postgresql 表的 vba 填充组合框访问 2007