访问组合框值
Posted
技术标签:
【中文标题】访问组合框值【英文标题】:Access combobox value 【发布时间】:2011-04-08 09:52:29 【问题描述】:我有一个组合框和一个按钮,它使用从组合框获取的值运行查询,但它似乎没有得到正确的值。
我尝试过使用
[Forms]![Kooli otsing]![Combobox]
或
[Forms]![Kooli otsing]![Combobox].[Text]
查询不起作用,似乎它没有从组合框中获取值。因为它适用于普通的 TextBox。
我添加了解释图片!!!!
添加了 VBA 编辑器的图片
添加了错误图片并且没有评论自动完成
【问题讨论】:
组合框中有多少列?发布组合框的行源将有助于我们调试。 @mwolfe02 组合框中的 183 列..rowsource?你能告诉我那是什么吗? 183 必须是 rows 的数量(我希望如此)。我很好奇列的数量。我问的原因是组合框的常见做法是有一个隐藏的绑定列,该列与主键绑定(通常是自动编号代理)。除非您指定列,否则引用文本框会返回绑定(通常是隐藏)列,而不是您在屏幕上看到的数据。这通常会让新用户感到困惑。 @mwolfe02:哦……那我猜……只有 1 个? @mwolfe02:我在原始帖子上添加了解释图片 【参考方案1】:根据您在问题上发布的最新 cmets,您想使用:
[Forms]![Kooli otsing]![Combo19].Column(1)
原因如下。您说您的组合框有以下设置:
列数:2 绑定列:1 行源类型:表/查询 行源:SELECT [Haridusasutused].[ID], [Haridusasutused].[Nimetus] FROM Haridusasutused;
2 的列数告诉 Access 使用行源中的前两列(在这种情况下只有两列)。绑定列告诉访问组合框的默认值应该是行源的第一列。在这种情况下,这将是[Haridusasutused].[ID]
。 ID 列通常是自动编号字段。
您遇到问题的原因是 [Forms]![Kooli otsing]![Combo19]
从 ID 列(很可能是一个数字)而不是“Elva Gümnaasium”返回数据。通过添加 .Column(1)
,您告诉 Access 从行源的第二列(.Column
是从零开始的数组)中选择数据,即“Elva Gümnaasium”。
编辑:或者,您可以将绑定列从 1 更改为 2,然后不理会其余部分(即,您不需要 .Column(1)
部分全部)。
【讨论】:
好吧,我试过了,但自动完成功能甚至没有给我 Column(1) 选项......当我手动编写它时。我收到错误:找不到属性...我还在第一篇文章中添加了图片..检查它们:) @Jaanus:另一种选择是将第二列设置为绑定列(即,将绑定列从 1 更改为 2)。请参阅上面的编辑。【参考方案2】:这适用于我的应用程序:
[Forms]![Hour-registration]![mwkselect]
^form ^combobox
也许试试这个刷新:
Me.Requery
Me.Refresh
【讨论】:
我的语法和你的完全一样,但是我应该把 ME.Refresh 放在哪里? 组合框的属性 -> 在 onchange 事件后面放置一些代码并复制到行(重新查询/刷新) 现在我有 Private Sub Combo19_Change() ... Me.Refresh ... End Sub ... 你的意思是这样吗?这就是整个潜艇。顺便说一句还是不行 我在原始帖子中添加了解释图片 在我看来,在其中一个控件的编辑事件中刷新表单不是一个好主意,并且可能与这里的问题无关。【参考方案3】:您是否尝试过单步调试器并通过监视窗口搜索值?例如在按钮单击事件中设置断点,然后将 [Forms] 添加到监视窗口并查看它。
【讨论】:
我找到了调试器..不确定如何使用它..umm..我把断点放在 Private Sub Search_Click() 行..然后去程序..然后我按下按钮,它只是向我显示了这条线..我想我用错了......还有..当我有错误时,调试器不会帮助我吗?因为..我没有实际错误,它不只是从组合框中得到正确的值。 我在原始帖子中添加了解释图片【参考方案4】:你可以使用:
[Forms]![Form1]![Combo1].[Text]
【讨论】:
以上是关于访问组合框值的主要内容,如果未能解决你的问题,请参考以下文章
访问 VBA - 使用 VBA 的 SQL 语句使用文本框组合框值在表单上填充列表框 OR