在ACCESS中使用VBA以使用CASE语句运行SQl

时间:2017-07-04 08:17:52

标签: sql ms-access access-vba

我正在使用VBA在Access的表格列中写入0/1。 如果两列[IsYTD?]和[SO Tarihi]中包含的日期之间的差异是< 365我想在[IsYTD?]中写1,而在另一种情况下写0。这是我目前的代码,但它似乎不起作用。你能救我吗?

   SQL3 = "UPDATE [1 - CURRENT RAW DATA SOURCE] SET [IsYTD?] = CASE " & _
    "WHEN ([IsYTD?]-[SO Tarihi])<365 THEN 1 " & _
    "ELSE 0 " & _
    "END"
    DoCmd.RunSQL SQL3

1 个答案:

答案 0 :(得分:1)

CASE WHEN在MS Access SQL中的语法无效。使用switchiif()

由于您只有2个案例,iif更容易编码

 SQL3 = "UPDATE [1 - CURRENT RAW DATA SOURCE] SET [IsYTD?] = iif(([IsYTD?]-[SO Tarihi])<365, 1,0)"