我要根据输入的姓名或者编号查找某信息,我把代码贴出来,
Private Sub cmdFind_Click()
On Error Resume Next
frmvipfind.Show 1
Dim cndb As New ADODB.Connection
Dim strsql As New ADODB.Recordset
Dim i As Integer
Dim sql_Vip As String
If g_bool Then 'g_bool是全局变量,真时为查找
With frmvipfind
If .txtvip.Text <> "" And .txtname.Text <> "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID = '" & Trim(.txtvip.Text) & "/" & Trim(.txtname.Text) & "'"
ElseIf .txtname.Text = "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '" & Trim(.txtvip.Text) & "%'"
Else
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '%" & Trim(.txtname.Text) & "'"
End If End With
Unload frmvipfind
Else
Exit Sub
End If
cndb.Open CnString
strsql.CursorLocation = adUseClient
strsql.Open sql_Vip, cndb 'On Error Resume Next
FlxVip.Clear
FlxVip.FormatString = "Vip编号 |^ Vip名称 |^ 销 售 总 额|^ 打 折|^ 地 址 |^ 电 话 |^ 生日 "
With FlxVip
.Rows = 1
Do While Not strsql.EOF
i = .Rows
.Rows = i + 1
.TextMatrix(i, 0) = strsql("Vip_ID")
.TextMatrix(i, 1) = strsql("Vip_name")
.TextMatrix(i, 2) = strsql("vip_sum")
.TextMatrix(i, 3) = strsql("dz")
.TextMatrix(i, 4) = strsql("address")
.TextMatrix(i, 5) = strsql("phone")
.TextMatrix(i, 6) = strsql("birthday")
strsql.MoveNext
Loop
End With
'FlxVip.Refresh
strsql.Close
Set strsql = Nothing
cndb.Close
Set cndb = Nothing
End Sub
如果设置一个断点,那对sql_vip的判断就有起作用,就会在vsflexgrid控件中显示出数据,但没有设断点直接运行 ,那对sql_vip的判断好像无效的样子,无法显示出正确的数据,不知道这是什么原因?其中vip_id的格式为“数字/姓名”,谢谢各位了!
Private Sub cmdFind_Click()
On Error Resume Next
frmvipfind.Show 1
Dim cndb As New ADODB.Connection
Dim strsql As New ADODB.Recordset
Dim i As Integer
Dim sql_Vip As String
If g_bool Then 'g_bool是全局变量,真时为查找
With frmvipfind
If .txtvip.Text <> "" And .txtname.Text <> "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID = '" & Trim(.txtvip.Text) & "/" & Trim(.txtname.Text) & "'"
ElseIf .txtname.Text = "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '" & Trim(.txtvip.Text) & "%'"
Else
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '%" & Trim(.txtname.Text) & "'"
End If End With
Unload frmvipfind
Else
Exit Sub
End If
cndb.Open CnString
strsql.CursorLocation = adUseClient
strsql.Open sql_Vip, cndb 'On Error Resume Next
FlxVip.Clear
FlxVip.FormatString = "Vip编号 |^ Vip名称 |^ 销 售 总 额|^ 打 折|^ 地 址 |^ 电 话 |^ 生日 "
With FlxVip
.Rows = 1
Do While Not strsql.EOF
i = .Rows
.Rows = i + 1
.TextMatrix(i, 0) = strsql("Vip_ID")
.TextMatrix(i, 1) = strsql("Vip_name")
.TextMatrix(i, 2) = strsql("vip_sum")
.TextMatrix(i, 3) = strsql("dz")
.TextMatrix(i, 4) = strsql("address")
.TextMatrix(i, 5) = strsql("phone")
.TextMatrix(i, 6) = strsql("birthday")
strsql.MoveNext
Loop
End With
'FlxVip.Refresh
strsql.Close
Set strsql = Nothing
cndb.Close
Set cndb = Nothing
End Sub
如果设置一个断点,那对sql_vip的判断就有起作用,就会在vsflexgrid控件中显示出数据,但没有设断点直接运行 ,那对sql_vip的判断好像无效的样子,无法显示出正确的数据,不知道这是什么原因?其中vip_id的格式为“数字/姓名”,谢谢各位了!
On Error Resume Next
Dim cndb As New ADODB.Connection
Dim strsql As New ADODB.Recordset
Dim sVip as String
dim sName as string
Dim i As Integer
Dim sql_Vip As String
If g_bool Then 'g_bool是全局变量,真时为查找
frmvipfind.Show 1
Unload frmvipfind
sVip = frmvipfind.txtvip.text
sName = frmvipfind.txtname.text
If sVip <> "" And sName <> "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID = '" & Trim(sVip) & "/" & Trim(sName) & "'"
ElseIf .txtname.Text = "" Then
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '" & Trim(sVip) & "%'"
Else
sql_Vip = "Select Vip_ID,Vip_name,vip_sum,dz,Address,Phone,Birthday From VipInfo where Vip_ID like '%" & Trim(sName) & "'"
End If Else
Exit Sub
End If
cndb.Open CnString
strsql.CursorLocation = adUseClient
strsql.Open sql_Vip, cndb 'On Error Resume Next
FlxVip.Clear
FlxVip.FormatString = "Vip编号 |^ Vip名称 |^ 销 售 总 额|^ 打 折|^ 地 址 |^ 电 话 |^ 生日 "
With FlxVip
.Rows = 1
Do While Not strsql.EOF
i = .Rows
.Rows = i + 1
.TextMatrix(i, 0) = strsql("Vip_ID")
.TextMatrix(i, 1) = strsql("Vip_name")
.TextMatrix(i, 2) = strsql("vip_sum")
.TextMatrix(i, 3) = strsql("dz")
.TextMatrix(i, 4) = strsql("address")
.TextMatrix(i, 5) = strsql("phone")
.TextMatrix(i, 6) = strsql("birthday")
strsql.MoveNext
Loop
End With
'FlxVip.Refresh
strsql.Close
Set strsql = Nothing
cndb.Close
Set cndb = Nothing
End Sub
Form1.sVip = frmvipfind.txtvip.text
Form1.sName = frmvipfind.txtname.text关闭frmvipfind
Unload frmvipfind
public sName as stringfrmvipfind.Show 1在frmvipfind中处理
Form1.sVip = frmvipfind.txtvip.text
Form1.sName = frmvipfind.txtname.text关闭frmvipfind
Unload frmvipfind