VB操作ACCESS数据库的有关问题,麻烦大家帮忙看看
VB操作ACCESS数据库的问题,麻烦大家帮忙看看Set getrsp cnn.Execute(SELECT * FROM gpsdata where cisu
VB操作ACCESS数据库的问题,麻烦大家帮忙看看
Set getrsp = cnn.Execute("SELECT * FROM gpsdata where cisu ='" & cisu & "' and Datediff(d,startdate,'" & tmpdate & " ') = 0 ORDER BY 时间")
数据库中startdate字段位DATE型,tmpdate定义的也为DATE型,断点运行时值为"2012-10-19"也是对的,怎么SQL还是查询不到呢?
[解决办法]查一下access中有没有datediff函数
[解决办法]先在access里面操练SQL语句,跟MS-SQL还是有点差别的,这个跟VB无关。
[解决办法]需要理解的是,VB 中的日期类型实际上是作为 Double 类型存储的。(当你在界面上读取时,VB 会因为它是日期类型,自动转换出日期字符串。)而 SQL 命令,实际上是以字符串形式传送到数据库引擎的。但你将日期变量拼接到字符串时,它会直接接入数值。你将 SQL 语句打印出来就看到了。
对于日期字符串,如果是 Access 数据库,需要加 # 号括起来,以表示运算时应转为日期数值。如果是 SQL 数据库,则用单引号。
另外 Datediff() = 0 可以直接用两日期相等的表达式。
Set getrsp = cnn.Execute("SELECT * FROM gpsdata where cisu ='" & cisu & "' and startdate = #" & Format(tmpdate, "yyyy-mm-dd") & "# ORDER BY 时间")
[解决办法]sql语句的问题,也就是 说类型转换的问题。顶of123