Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在语句中连接日期_Vba_Vb6 - Fatal编程技术网

Vba 在语句中连接日期

Vba 在语句中连接日期,vba,vb6,Vba,Vb6,我需要将此语句与日期变量连接起来 Dia = Date "SELECT dia, amanha, tarde, noite FROM TB_teste where dia = " & dia & ", cnnMysql, adOpenForwardOnly, adLockReadOnly" 此语句用于mysql数据库 select * from tb_teste where dia like '2016-01-08' 这里出了什么问题?您可以使用Format()函数将

我需要将此语句与日期变量连接起来

Dia = Date

"SELECT dia, amanha, tarde, noite FROM TB_teste where dia = " & dia & ", cnnMysql, adOpenForwardOnly, adLockReadOnly"
此语句用于mysql数据库

 select * from tb_teste where dia like '2016-01-08'  

这里出了什么问题?

您可以使用
Format()
函数将日期转换为所需格式的字符串

stringDate = Format(Dia, "dd/mm/yyyy hh:mm")
然后,您可以在需要的地方连接
stringDate

,但不要这样做

忽略动态生成的SQL-to-SQL注入攻击(故意和无意)的漏洞,也会遇到这些特定于提供程序的值文字格式问题。只需使用参数查询即可

Set RS = New ADODB.Recordset
With RS
    .CursorLocation = adUseClient
    .CursorType = adOpenForwardOnly
    .LockType = adLockReadOnly
End With
With New ADODB.Command
    .CommandType = adCmdText
    .CommandText = "SELECT dia, amanha, tarde, noite FROM TB_teste " _
                 & "where dia = ?"
    .Name = "TestesQuery"
    .ActiveConnection = cnnMysql
    cnnMysql.TestesQuery Date, RS
End With
命名的
TestesQuery
将成为连接对象的扩展属性,并且可以这样执行。以这种方式调用的行返回查询期望最后一个参数是为接收行集而设置的记录集。其他参数是匿名查询参数,按照SQL字符串中的定义顺序处理


您可以以相同的方式按名称执行存储过程。

这似乎没问题。您是否收到错误消息或只是没有得到所需的结果或…?您是否尝试过:
Dia=“#”&Date&“#”
,或
Dia=CLng(Date)
。此sql是否不利于访问?VBA和您的数据库可能使用不同的日期格式。例如,如果希望将VBA日期传递给SQL Server,则应使用类似的so:Dia=格式(日期,“YYYY-MM-DD”)。不要忘记SQL语句希望日期用单引号分隔<代码>“&dia、cnnMysql、adOpenForwardOnly、adLockReadOnly