将 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] 是指包含搜索条件的表单上的控件名称。