0

感谢在其他问题中获得的帮助和一些很好的教程,我可以创建我的访问数据库来保存我图书馆中的书籍,我现在有一个很好的表格(有几个子表格)可以将新书输入我的数据库。(这一切仅基于 access 2003)。

下一步是能够查询数据库并搜索书籍。

我正在考虑采用以下方法,但我不确定它是否可行和/或努力是否会令人望而却步。事实上,我已经有了自己的担忧和/或问号。

您能否分享您对我的方法的看法并最终解决我的一些担忧?(链接到解决我的任何问题的其他问题或资源非常好!)
提前感谢您的任何贡献!

第 1 点. 创建带有按钮的控件表单以执行不同类型的查询(按作者、按标题等);我还想为整个数据库提供一个“自由文本搜索”选项。此表单还将包括用于输入搜索条件的字段,例如,按作者搜索的作者等。这些字段应是具有自动完成功能的组合框,以便于用户进行搜索。
第 2 点。要执行的不同查询应在相应按钮的点击事件的vba代码中“硬编码”;这是因为我发现手动编写 SQL 查询更容易,尤其是当我需要从其他字段传递参数时;另外,当我可以将它们“存储”在我的代码中时,我认为不需要在数据库中单独地增加表单和存储查询。
第 3 点. 查询的最终结果(一个记录集?)然后将显示在一个表格中。无论执行的查询如何,我都会始终选择要输出的相同字段,因此应使用单个表单作为所有不同查询的输出。出于这个原因,我想要一个表单,这样我就可以一劳永逸地自定义它的外观和行为。如果可能,表格应为数据表类型(但这不是严格要求)。考虑到搜索条件的差异,我相信将查询结果存储在易失性表/记录集中是非常好的,并且在每次请求时都必须重新填充它们不是问题。

对第 1 点的关注。自由文本搜索真的可行吗?我怎么能这样做?
对第 2 点的担忧. 使用所有输入参数构建一个包含 SQL 查询的字符串很容易,但是如何运行查询呢?我在教程中的搜索让我感到困惑,我不知道该怎么做。如前所述,我不想单独存储查询,然后在查询集合中引用特定查询,而是执行和“SQL 字符串”。这是怎么做到的?以及如何将结果存储在变量中?Recordset 是存储临时表的正确变量类型吗?
对第 3 点的担忧. 如何创建“输出”表单?我应该将字段(在设计视图中)创建为未绑定还是将它们绑定到我的数据库中的表?以及如何使用变量中的数据填充表单?鉴于我的数据库中有多个多对多关系(如作者和书籍),数据表是否可行。如果我必须再次访问表单和子表单,鉴于“表格”在设计期间不存在而仅在“运行时”存在,我如何连接子表单和主表单?而且我也没有查询,因为如前所述,这些是不同的,并且在 vba 代码中是硬编码的。

PS关于信息,所有这些都是作为“爱好”完成的,并且通过这样做来学习新的东西(访问和vba)......

4

1 回答 1

0

Point 1. 创建一个带有按钮的控件表单来执行不同类型的查询(按作者、按标题等);我还想为整个数据库提供一个“自由文本搜索”选项。此表单还将包括用于输入搜索条件的字段,例如,按作者搜索的作者等。这些字段应是具有自动完成功能的组合框,以便于用户进行搜索。

您当然可以使用下拉菜单来填充表单。有一个向导。您不能使用下拉菜单在任何地方搜索,但有一个方便的搜索按钮,或者您可以连接并使用 InStr。

Point 2.要执行的不同查询要“硬编码”在对应按钮的on-click事件的vba代码中;这是因为我发现手动编写 SQL 查询更容易,尤其是当我需要从其他字段传递参数时;另外,当我可以将它们“存储”在我的代码中时,我认为不需要在数据库中单独地增加表单和存储查询。

当您开始制作 accdes/mdes 时,您将看到将查询排除在代码之外的意义

第 3 点。查询的最终结果(一个记录集?)然后应显示在一个表格中。我将始终选择要输出的相同字段,而不管执行的查询如何,因此应使用单个表单作为所有不同查询的输出。出于这个原因,我想要一个表单,这样我就可以一劳永逸地自定义它的外观和行为。如果可能,表格应为数据表类型(但这不是严格要求)。考虑到搜索条件的差异,我相信将查询结果存储在易失性表/记录集中是非常好的,并且在每次请求时都必须重新填充它们不是问题。

重新填充会导致膨胀。如果可以,请始终避免使用 MS Access 中的临时表。

于 2012-09-07T11:04:32.847 回答