根据多个值转到记录

时间:2015-05-20 19:04:19

标签: ms-access

我一直在寻找这个问题的答案,但到目前为止一直无法这样做,所以我想我可以向大家伸出援助之手。

我是MS Access的新手,他的任务是创建一个数据输入程序,允许我们将数据输入到链接的sql表中。我已正确链接所有子表单并正确存储数据,但我希望最终用户能够根据两个值进行记录,这样他们就无需点击20k +这些表中的记录。我已经看到你可以使用组合框去哪里录制,但我见过的所有例子都只使用一个值来提取记录。我的表按年份链接,然后每年都有一个唯一的ID。我理想的做法是有两个文本框,一个文本框,用户将进入记录年,另一个文本框将包含recordID,以及一个按钮,按下时将调出相应的记录。那可能吗?我认为确实如此。我将继续继续做自己的研究,但如果这里的任何人能够帮助我朝着正确的方向前进,我会非常感激。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我自己从未这样做过,所以我有点想尝试一下。

我们需要的一切:

VBA的2个表格,1个查询和1个(技术上3)行。

"搜索" /父表单。我创建了一个空白表单并将其命名为 Form4 。 我添加了2个文本框,2个标签和一个按钮。

  1. txtSearch1 - 文本框1
  2. txtSearch2 - 文本框2
  3. 然后我创建了一个查询,按照这两个文本框中的内容过滤记录。我没有你所做的相同的表/架构,所以请跟我说明名称/数据类型。

    我的设置:

    1. 表:tblEmployee
    2. 字段:ID,EmployeeNumber,Names
    3. 我要过滤的字段:ID,EmployeeNumber
    4. 查询:(主要是为了展示我们如何过滤)

      SELECT tbl_Employee.ID,
       tbl_Employee.EmployeeNumber, 
      tbl_Employee.FirstName, 
      tbl_Employee.LastName
      FROM tbl_Employee
      WHERE (((tbl_Employee.ID) Like "*" & [Forms]![Form4]![txtSearch2] & "*") 
      AND ((tbl_Employee.EmployeeNumber) Like "*" & [Forms]![Form4]![txtSearch1] & "*"));
      

      搜索非常灵活,因为它们使用通配符。你可以删除这些,但我认为越多的信息就越好。

      因此,我们现在有一个包含2个文本框的表单,用于缩小查询结果范围。

      下一步,创建另一个要插入 Form4 的表单,以查看我们的搜索结果。

      创建空白表单(我将其命名为 Form5, hooray)。右键单击表单的左上角,然后选择"属性"。

      格式标签上:默认视图:数据表

      数据标签上:记录来源:Query5(或您的查询名称)                  记录集类型:动态集

      返回表格。在设计视图中,在顶部和右侧的访问工具栏中,添加现有字段"。从查询中添加您想要的任何字段。

      关闭 Form5

      在设计视图中打开 Form4 。将 Form5 拖到 Form4 上。保存它。

      在Form4上,右键单击我们添加的Button,如果没有,则添加它。 转到属性,事件 - > OnClick - > (单击三个小...)。 双击代码生成器。输入Me.Form5.Requery。 (或Me.YourFormNameHere.Requery)。

      运行Form4并测试您的过滤功能。