Sql 从vba中的表填充列表框

Sql 从vba中的表填充列表框,sql,winforms,ms-access,vba,ms-access-2003,Sql,Winforms,Ms Access,Vba,Ms Access 2003,我正在为员工数据库开发一个vba表单,其中有一个userid的搜索条件,具有userid的员工姓名应该显示在来自单个表的列表框控件中 我需要根据充当搜索框的文本框中的值(例如:userid),使用表中的值填充列表框 请帮我怎么做你的问题很难回答,因为它取决于一些事情,比如搜索字段的数据类型等。所以这个答案在某些方面是模糊的 首先,您需要创建带有搜索条件的列表框,这些搜索条件将在表单上查找搜索值并进行相应过滤 您可以通过设置listbox的RowSource属性来实现这一点。下面是一个列表框的示例

我正在为员工数据库开发一个vba表单,其中有一个userid的搜索条件,具有userid的员工姓名应该显示在来自单个表的列表框控件中

我需要根据充当搜索框的文本框中的值(例如:userid),使用表中的值填充列表框


请帮我怎么做你的问题很难回答,因为它取决于一些事情,比如搜索字段的数据类型等。所以这个答案在某些方面是模糊的

首先,您需要创建带有搜索条件的列表框,这些搜索条件将在表单上查找搜索值并进行相应过滤

您可以通过设置listbox的RowSource属性来实现这一点。下面是一个列表框的示例rowsource,该列表框在表单上查找文本框的筛选值

SELECT tblAgencies.AgencyID, tblAgencies.OrganizationName
FROM tblAgencies
WHERE (((tblAgencies.OrganizationName) 
          Like "*" & nz([Forms]![frmMainMenu2]![txtSearchAgencies],"") & "*"))
ORDER BY tblAgencies.OrganizationName;
关键部分是像。。。线路。关于它有几件事……请注意,查询在表单中查找一些条件。你可以在[表格]中看到这一点![frmMainMenu2]![txtSearchAgencies]查询的一部分。所以在frmMainMenu2上有一个搜索文本框,叫做txtSearchAgencies

还要注意,我使用NZ函数来确保查看该文本框时至少返回一个空字符串。最后请注意,is在两端使用了带有通配符的Like运算符,以便用户可以键入部分字符串

最后…在搜索框旁边放一个命令按钮以执行筛选/搜索。它所要做的就是像这样重新查询列表框

Me.lst.Requery

您还可以尝试在OnChange事件中重新查询,该事件将在输入时进行过滤。但是如果您的查询速度慢,这可能无法正常工作


Seth

假设您有一个表TABLE1,其中包含userid、employee字段。 您应该创建一个具有组合框(名为boxid)和文本框(名为EdtEmployee)的表单。 定义combobox的rowsource值,如

SELECT table1.userid FROM table1 WHERE employee like EdtEmployee & "*"; 
然后像这样定义文本框的lostfocus事件

Private Sub EdtEmployee_LostFocus()
 BoxId.Requery
End Sub
我希望,这对你有用

我同意迈克的看法。
我只想使用AfterUpdate事件,而不是neber使用的LostFocus。

从标签上看,这是关于访问的-这正确吗?Access的哪个版本?什么样的后端?Access 2003和Access tables是后端请参见:我很可能会为rowsource分配硬连线的OrganizationName值。如果您必须重新查询,为什么不使用更干净的RowSource属性(即,没有控件引用)并在重新查询的同一事件中重新分配它呢?David,我不理解您的问题……您能解释一下吗。赛斯