如何在access中同时提交多条sql语句

如题所述

使用ACCESS查询对象是无法一次运行多个SQL语句的,但是通过ACCESS VBA代码可以实现一次运行多个SQL语句。下面是具体实现方案;

1)新建一个ACCESS窗体,窗体添加一个命令按钮;

2)编写按钮单击事件过程

1
2
3
4
5
6
7

Private Sub Command1_Click()
Dim strSql as string
strSQL="Update Policy SET LatestDueDate=Year(Date()) & '-' & Format(PolicyDate,'mm-dd')"
DoCmd.RunSql strSQL '运行第一个更新语句
strSQL="UPDATE Policy SET LatestDueDate= DateAdd('yyyy',1,LatestDueDate) WHERE (((Month(Date())-Month(LatestDueDate)) > 6) and(PaymentMode='H'))"
DoCmd.RunSql strSQL '运行第二个更新语句
End Sub

跟着点击该命令按钮就可以一次执行两条语句了。

*******不过这里必须指出楼主这种通过UPDATE更新来获取缴费提醒的办法绝对是一种非常糟糕的解决方案,其坏处除了你说的,我可以指出N多条!具体就不说了。******

其实要获取你要获取保单续期提醒日期,无需分两步只要一句SELECT语句就能搞定,完全没必要去更新数据表。

将下列SQL语句保存为一个名为“RenewAlertPolicies的选择查询

1
2

select PolicyNo,PolicyDate,DateAdd('yyyy',1,PolicyDueDate) as LatestDueDate
from Policy where DateDiff('m',PolicyDate, Date()) > 6 order by PolicyDate desc;

注意:上面“保单号”字段名是我虚构的,请替换为实际的保单号字段名。如果不想看太旧的保单,筛选可以用时间段来限制,例如...where DateDiff('m',PolicyDate, Date()) between 7 and 12 ....

当你要查看需要提示续保的保单列表时,简单地双击该查询就好了,你可以随要随查,非常方便,查询结果将会展示最新的情况,完全没必要去考虑如何更新LatestDueDate的问题。
温馨提示:答案为网友推荐,仅供参考
相似回答