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

1. 我对某字段的日期更新分两步的。首先将年份全部更新到系统年份。UPDATE
Policy SET
LatestDueDate=Year(Date())&'-'&Format(PolicyDate,'mm-dd');第二步是进一步更新, UPDATE Policy SET LatestDueDate= DateAdd('yyyy',1,LatestDueDate)
WHERE (((Month(Date())-Month(LatestDueDate)) > 6) and(PaymentMode='H')) 主要是我不会把这两条语句合并,所以就一步步来了。
我想知道可不可以在SQL中同时写这两条语句,然后ACCESS按顺序分条执行?我听说Oracle里用分号间隔每条语句,是会从上到下按顺序执行一遍的。access中可以吗?如果不可以,有没有其他方法可以做到?
因为我的日期更新其实是客户的缴费提醒。日期更新又分不同的缴费方式的,每种缴费方式里至少又分3种情况,这样的话,我就会有很多很多查询列表。崩溃啊!
2. access中的查询(SQL是update语句),每次一点击,就会弹出对话框询问是否更新不小心点了"是“的话,就会又执行一遍,把原本更新好的日期又弄乱了。有方法解决这个问题吗?
感谢!!

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

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-18
Access中,如果你是独立的多条语句,是没有办法一起执行的
如果你是一条语句里面包含多个操作,还是可以的

Access本身就是一个非常小的数据库,不能和其他中、大型数据库比的本回答被网友采纳
相似回答