Access多条SQL语句可不可以同时执行?

2025-03-24 12:15:41
推荐回答(2个)
回答1:

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


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


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

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的选择查询

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的问题。

回答2:

Access中,如果你是独立的多条语句,是没有办法一起执行的
如果你是一条语句里面包含多个操作,还是可以的

Access本身就是一个非常小的数据库,不能和其他中、大型数据库比的