自动化 Access 2007 查询(更改一个条件)

自动化 Access 2007 查询(更改一个条件)

因此,我有 6 个查询,我想在每个月末运行它们一次。(我对 SQL 了解一点,但它们只是使用 Access 的设计视图构建的)。因此,在接下来的几天里,也许我会运行 5 月份的 6 个查询,因为 5 月刚刚结束。我只想要刚刚结束的月份的数据,因此查询将条件设置为月份名称(例如,5 月)。现在,每个月更改所有这些并不会花费大量时间,但是有没有办法自动执行此操作?目前,它们都设置为 4 月,我想在几天后运行它们时将它们全部更改为 5 月。每个月,我只想输入月份(也许在表单的文本框中或其他地方,如果您知道更好的方法)一次并让它更改所有 6 个查询,而不必手动打开所有 6 个查询,滚动到右侧字段并更改条件。

注意事项(关于 VBA):我使用过 Excel VBA,所以我了解 VBA 的基础知识,但我真的不知道 Access 的具体内容(除了看过几次代码)。而且,其他对 Access VBA 一无所知的人也会使用它。所以,我想我找到了一个类似的问题/答案可以在 VBA 中完成此操作,但我宁愿用其他方法。如果稍后需要稍微重新设计查询(可能是由完全不了解 Access VBA 的人设计),那么如果可能的话,最好有一个不涉及 VBA 的解决方案。

答案1

有一个简单的方法可以让查询在运行时询问月份:在查询中,将 [输入月份] 放在现在有月份名称的相同位置。

在此处输入图片描述

查询运行时,将出现一个对话框来输入月份。您可以在方括号中输入任何文本 - 不必是“月份”;这只是定义对话框要显示的内容。这种技术称为“参数查询”。

在此处输入图片描述

只需一步即可运行所有 6 个查询,需要 VBA 代码 - 但代码非常简单。您的最终用户不需要了解任何有关 VBA 的知识 - 他们只需打开表单并单击按钮即可。

创建一个表单,在上面放置一个按钮。在该按钮的属性列表中,选择“事件”选项卡,然后选择“单击时”事件。单击“单击时”事件的“...”按钮。

在此处输入图片描述

这将打开 VBA 代码窗口,光标位于正确的位置 - Private Sub Command0_Click - 其中 Command0 是按钮的名称。输入代码,如下所示...

在此处输入图片描述

用正确的名称替换查询,并根据需要重复该代码行。打开表单并单击按钮将立即运行所有查询。

下一步

最后的改进是输入一次参数,然后让它自动应用于所有查询。这需要几个步骤。

在 VBA 代码窗口中,创建代码“模块”。右键单击窗口的项目窗格,然后选择插入/模块:

在此处输入图片描述

在新模块中,添加以下代码:

在此处输入图片描述

gstrMonth 是一个全局变量字符串,用于保存月份名称。函数 GetMonth 将用于查询以检索该值。

现在将 Form1 代码更改为:

在此处输入图片描述

子程序“AskForMonth”显示一个对话框,让用户输入月份名称。该输入被分配给 gstrMonth 变量。

在此处输入图片描述

在 Command0(按钮)代码中,我们在运行查询之前添加 AskForMonth。再次,对每个具有正确查询名称的查询重复“DoCmd”行。

最后一步是将查询中的参数替换为对函数“GetMonth”的调用。将查询条件中的 [Enter Month] 替换为“GetMonth()”。

在此处输入图片描述

我希望这可以鼓励您使用 VBA 的一些功能来自动执行您的 Access 任务!

相关内容