我在Excel工作簿中有一个宏,它通过单击Sheet3中的按钮将Sheet1中的日期更新为SQL。 Sheet3还在更新过程中将单元格用作参数。
目前,宏放在一个模块中,我的SQL语句如下:
sSQLUpd = "update [table1].[dbo].[Plan] set [Plan_QTY] = " & Plan & "_
where [MacID] = " & Mac & " and [ModelID] = " & Mdl & " and [Date] = " & dt & "_
and DATEPART(year,[Date])= " & Sheets("Sheet3").Cells(3, 3).Value & "_
and DATEPART(month,[Date])= " & Sheets("Sheet3").Cells(3, 6).Value & ""
conn.Execute sSQLUpd
但是当我测试代码时,我的错误处理程序中的“下标超出范围”。
SQL结构很好,因为我通过替换部分来测试它:
DATEPART(year,[Date])= " & Sheets("Sheet3").Cells(3, 3).Value & "
和
DATEPART(month,[Date])= " & Sheets("Sheet3").Cells(3, 6).Value & "
有实际数字,数据可以通过。
因此可以安全地假设引用Sheet3中的单元格的代码存在问题。也许它放在模块中时不想玩得好?
我甚至尝试了不同的变化:
DATEPART(year,[Date])= " & Sheets("Sheet3").range("C3").Value & "
没有骰子......
我可以做些什么来修改它?
答案 0 :(得分:0)
DATEPART(year,[Date])= " & Sheet3.Cells(3, 3).Value & "
它始终是与我紧密相连的简单东西。 :P