Access多条SQL语句可不可以同时执行?
1.我对某字段的日期更新分两步的。首先将年份全部更新到系统年份。UPDATEPolicySETLatestDueDate=Year(Date())&'-'&Format(...
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语句),每次一点击,就会弹出对话框询问是否更新不小心点了"是“的话,就会又执行一遍,把原本更新好的日期又弄乱了。有方法解决这个问题吗?
感谢!! 展开
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语句),每次一点击,就会弹出对话框询问是否更新不小心点了"是“的话,就会又执行一遍,把原本更新好的日期又弄乱了。有方法解决这个问题吗?
感谢!! 展开
2个回答
展开全部
使用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的问题。
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询