我现在要查询符合某一时间段的数据。具体要求是:我画了两个DTPicker控件,用来选择时间范围。然后单击按钮进行查询,把结果赋给MSFlexGrid控件。我想利用参数查询实现,但我以前没用过,请各位指教!谢谢。我参考一个实例,请看下面。思路是很明朗的,但具体到我的设计我还是有不懂的地方。
With objCmd
.CommandText = "SELECT * FROM 系统用户 WHERE 用户名 LIKE ? " & _
"AND 身份 LIKE ?"
.CommandType = adCmdText
End With Dim Parm As New Parameter '为command 对象创建参数
Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append P1
Set Parm = objCmd.CreateParameter("身份", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
objCmd("用户名") = "%" & txtUser & "%" '获得查询参数
objCmd("身份") = "%" & txtStatus & "%" Set objRs = objCmd.Execute() '执行查询,获得查询结果记录集===========================================================================================
问题:
1、SQL语句方面,用参数查询,我的SQL语句该怎么写?2、创建参数。实例中,用户名、身份 直接从 TextBox 里面获取,是一一对应关系。而我查询日期要比较两个DTPicker控件的
值,然后进行查询。那我这参数如何创建?
With objCmd
.CommandText = "SELECT * FROM 系统用户 WHERE 用户名 LIKE ? " & _
"AND 身份 LIKE ?"
.CommandType = adCmdText
End With Dim Parm As New Parameter '为command 对象创建参数
Set Parm = objCmd.CreateParameter("用户名", adVarChar, adParamInput, 10)
objCmd.Parameters.Append P1
Set Parm = objCmd.CreateParameter("身份", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
objCmd("用户名") = "%" & txtUser & "%" '获得查询参数
objCmd("身份") = "%" & txtStatus & "%" Set objRs = objCmd.Execute() '执行查询,获得查询结果记录集===========================================================================================
问题:
1、SQL语句方面,用参数查询,我的SQL语句该怎么写?2、创建参数。实例中,用户名、身份 直接从 TextBox 里面获取,是一一对应关系。而我查询日期要比较两个DTPicker控件的
值,然后进行查询。那我这参数如何创建?
VB有自己的方式~~
objCmd.CommandText = "SELECT ... WHERE '?'<=时间 AND 时间<='?'"
objCmd.CommandType = adCmdText Dim Parm As Parameter
Set Parm = objCmd.CreateParameter("开始时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("结束时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
objCmd("开始时间") = Format$(DTPick1.Value,"yyyy-mm-dd")
objCmd("结束时间") = Format$(DTPick1.Value,"yyyy-mm-dd")Set objRs = objCmd.Execute()
Dim objCmd As Command
Dim objRs As New Recordset
Dim i As IntegerDTPicker2.Value = DateSet objCn = New ConnectionobjCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\db1.mdb"
objCn.OpenSet objCmd = New Command
Set objCmd.ActiveConnection = objCnobjCmd.CommandText = "SELECT ... WHERE '?'<=时间 AND 时间<='?'"
objCmd.CommandType = adCmdTextDim Parm As Parameter
Set Parm = objCmd.CreateParameter("开始时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
Set Parm = objCmd.CreateParameter("结束时间", adVarChar, adParamInput, 10)
objCmd.Parameters.Append Parm
objCmd("开始时间") = Format$(DTPicker1.Value, "yyyy-mm-dd")
objCmd("结束时间") = Format$(DTPicker2.Value, "yyyy-mm-dd")Set objRs = objCmd.Execute()
objCmd.CommandText = "SELECT ... WHERE '' & DTPicker1.value & "' <=时间 AND 时间 <='" & DTPicker1.value & "'"