将 SQL 查询的结果输出到文本框中
Outputting the result of an SQL query into a text box
我正在创建一个表单,当用户输入姓名时,该表单会显示从两个 table 中获取的个人信息。我希望将字段输出到它们自己的文本框中。我的代码类似于下面的代码。
当我 运行 代码时,它会在文本框中显示文字查询 "SELECT name etc..."。我看到 Dlookup 适用于文本框,但据我所知,它不适用于多个 table。任何建议将不胜感激!
PS我是VBA/access新手
Dim SQL, SearchInput As String
SQL = "SELECT name" & _
"FROM tablename INNER JOIN othertablename ON tablename.name = othertablename.name" & _
"WHERE tablename.name LIKE ""*" & SearchInput & "*""
Me.txtbox = SQL
我很确定这是重复的,但回答比寻找其他帖子要快。
您需要声明一个记录集并将 select 语句返回的数据分配给它。这将为您留下与数组非常相似的东西。之后,您只需将数组元素与列的位置对齐即可。 IE。 rs(0)=上面 select 语句中的名称。
Dim rs As Recordset
Dim SQL As String, SearchInput As String
SQL = "SELECT name " & _
"FROM tablename INNER JOIN othertablename ON tablename.name = othertablename.name " & _
"WHERE tablename.name LIKE ""*" & SearchInput & "*""
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
Me.txtBox = rs(0)
应该可以。
由于您一般不熟悉 MS Access 和 VBA,我将提出一个完全避免 VBA 的解决方案。
在您当前的代码中,我假设 SearchInput
从您表单上的另一个控件获取其值。
我建议使用以下 SQL:
创建一个新的已保存查询(称为 MyQuery
)
select table2.name from table1 inner join table2 on table1.name = table2.name
然后,在文本框的控件源中,使用带有以下参数的 DLookup
表达式:
=dlookup("[name]", "MyQuery", "table1.name like '*" & [SearchInput] & "*'")
此处,[SearchInput]
是指包含搜索条件的表单上的控件名称。
我正在创建一个表单,当用户输入姓名时,该表单会显示从两个 table 中获取的个人信息。我希望将字段输出到它们自己的文本框中。我的代码类似于下面的代码。
当我 运行 代码时,它会在文本框中显示文字查询 "SELECT name etc..."。我看到 Dlookup 适用于文本框,但据我所知,它不适用于多个 table。任何建议将不胜感激!
PS我是VBA/access新手
Dim SQL, SearchInput As String
SQL = "SELECT name" & _
"FROM tablename INNER JOIN othertablename ON tablename.name = othertablename.name" & _
"WHERE tablename.name LIKE ""*" & SearchInput & "*""
Me.txtbox = SQL
我很确定这是重复的,但回答比寻找其他帖子要快。
您需要声明一个记录集并将 select 语句返回的数据分配给它。这将为您留下与数组非常相似的东西。之后,您只需将数组元素与列的位置对齐即可。 IE。 rs(0)=上面 select 语句中的名称。
Dim rs As Recordset
Dim SQL As String, SearchInput As String
SQL = "SELECT name " & _
"FROM tablename INNER JOIN othertablename ON tablename.name = othertablename.name " & _
"WHERE tablename.name LIKE ""*" & SearchInput & "*""
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
Me.txtBox = rs(0)
应该可以。
由于您一般不熟悉 MS Access 和 VBA,我将提出一个完全避免 VBA 的解决方案。
在您当前的代码中,我假设 SearchInput
从您表单上的另一个控件获取其值。
我建议使用以下 SQL:
创建一个新的已保存查询(称为MyQuery
)
select table2.name from table1 inner join table2 on table1.name = table2.name
然后,在文本框的控件源中,使用带有以下参数的 DLookup
表达式:
=dlookup("[name]", "MyQuery", "table1.name like '*" & [SearchInput] & "*'")
此处,[SearchInput]
是指包含搜索条件的表单上的控件名称。