VB中根据几个输入框的输入内容在数据库中进行筛选并显示
VB中根据几个输入框的输入内容在数据库中进行筛选并显示在DataGrid中以前没学过、从网上找代码自学写出的下面代码、一直报错、大神给解决一下啊!DimCNAsNewAD...
VB中根据几个输入框的输入内容在数据库中进行筛选并显示在DataGrid中
以前没学过、从网上找代码自学写出的下面代码、一直报错、大神给解决一下啊!
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Sql As String
Private Sub Form_Load()
Dim Sql As String
CN.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\data\data.mdb;"
Sql = "select * from 人才库"
Rs.CursorLocation = adUseClient
Rs.Open Sql, CN, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowArrows = False
DataGrid1.AllowDelete = False
Set DataGrid1.DataSource = Rs
DataGrid1.AllowUpdate = True
Adodc1.ConnectionString = CN
Adodc1.RecordSource = "select * from 人才库"
Adodc1.Refresh
Set Text1.DataSource = Adodc1
Set Text2.DataSource = Adodc1
Set Text3.DataSource = Adodc1
Set Text4.DataSource = Adodc1
Set Text5.DataSource = Adodc1
Text1.DataField = Adodc1.Recordset.Fields(1).Name
Text2.DataField = Adodc1.Recordset.Fields(9).Name
Text3.DataField = Adodc1.Recordset.Fields(13).Name
Text4.DataField = Adodc1.Recordset.Fields(14).Name
Text5.DataField = Adodc1.Recordset.Fields(7).Name
End Sub
Private Sub Command1_Click()
If Trim(Text1) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 性别=" & Val(Trim(Text1))
Adodc1.Refresh
If Trim(Text2) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 文化程度=" & Val(Trim(Text2))
Adodc1.Refresh
If Trim(Text3) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 英语水平=" & Val(Trim(Text3))
Adodc1.Refresh
If Trim(Text4) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 计算机水平=" & Val(Trim(Text4))
Adodc1.Refresh
If Trim(Text5) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 工作时间>=" & Val(Trim(Text5))
Adodc1.Refresh
End Sub
图片是界面设计
如果我的代码都错的话直接给我全代码也行、谢啦 展开
以前没学过、从网上找代码自学写出的下面代码、一直报错、大神给解决一下啊!
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Sql As String
Private Sub Form_Load()
Dim Sql As String
CN.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\data\data.mdb;"
Sql = "select * from 人才库"
Rs.CursorLocation = adUseClient
Rs.Open Sql, CN, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowArrows = False
DataGrid1.AllowDelete = False
Set DataGrid1.DataSource = Rs
DataGrid1.AllowUpdate = True
Adodc1.ConnectionString = CN
Adodc1.RecordSource = "select * from 人才库"
Adodc1.Refresh
Set Text1.DataSource = Adodc1
Set Text2.DataSource = Adodc1
Set Text3.DataSource = Adodc1
Set Text4.DataSource = Adodc1
Set Text5.DataSource = Adodc1
Text1.DataField = Adodc1.Recordset.Fields(1).Name
Text2.DataField = Adodc1.Recordset.Fields(9).Name
Text3.DataField = Adodc1.Recordset.Fields(13).Name
Text4.DataField = Adodc1.Recordset.Fields(14).Name
Text5.DataField = Adodc1.Recordset.Fields(7).Name
End Sub
Private Sub Command1_Click()
If Trim(Text1) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 性别=" & Val(Trim(Text1))
Adodc1.Refresh
If Trim(Text2) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 文化程度=" & Val(Trim(Text2))
Adodc1.Refresh
If Trim(Text3) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 英语水平=" & Val(Trim(Text3))
Adodc1.Refresh
If Trim(Text4) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 计算机水平=" & Val(Trim(Text4))
Adodc1.Refresh
If Trim(Text5) <> "" Then _
Adodc1.RecordSource = "select * from 人才库 where 工作时间>=" & Val(Trim(Text5))
Adodc1.Refresh
End Sub
图片是界面设计
如果我的代码都错的话直接给我全代码也行、谢啦 展开
1个回答
展开全部
你这个提示什么错误啊?
最关键的是,你这个都是独立的if语句
存在以下问题:
1、你文本全部有内容的时 只能最后一个文本text5 满足筛选条件
2、你的文本框和adodc1绑定形式连接,可能会导致 改文本内容的话同时改变数据库内容
3、如果你要用adodc1控件的话 完全没有必要用 adodb 类的引用!就是浪费资源
直接这么说了吧!没有改写的价值!
重新写一个吧!
最关键的是,你这个都是独立的if语句
存在以下问题:
1、你文本全部有内容的时 只能最后一个文本text5 满足筛选条件
2、你的文本框和adodc1绑定形式连接,可能会导致 改文本内容的话同时改变数据库内容
3、如果你要用adodc1控件的话 完全没有必要用 adodb 类的引用!就是浪费资源
直接这么说了吧!没有改写的价值!
重新写一个吧!
更多追问追答
追问
嗯嗯、全是独立的代码凑出来的、可是现在要用按照我的界面设计筛选该怎么写代码呢?可以指教一下吗?
追答
我这没有对应的数据库所以简单改写一下你的代码!参考一下吧!
Dim CN As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Sql As String
Private Sub Form_Load()
Dim Sql As String
CN.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\data\data.mdb;"
Sql = "select * from 人才库"
Rs.CursorLocation = adUseClient
Rs.Open Sql, CN, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = Rs
Text1.text=rs.fields(0)
Text2.text=rs.fields(1)
Text3.text=rs.fields(2)
Text4.text=rs.fields(3)
Text5.text=rs.fields(4)
end sub
Private Sub Command1_Click()
Sql = "select * from 人才库 "
If Trim(Text1) "" Then
if instr(sql ,"where")=0 then
Sql =Sql +" where 性别=" & Val(Trim(Text1))
else
Sql =Sql +" and 性别=" & Val(Trim(Text1))
endif
endif
If Trim(Text2) "" Then
if instr(sql ,"where")=0 then
Sql =Sql +" where 文化程度=" & Val(Trim(Text2))
else
Sql =Sql +" and 文化程度=" & Val(Trim(Text2))
endif
endif
If Trim(Text3) "" Then
if instr(sql ,"where")=0 then
Sql =Sql +" where 英语水平=" & Val(Trim(Text3))
else
Sql =Sql +" and 英语水平=" & Val(Trim(Text3))
endif
endif
If Trim(Text4) "" Then
if instr(sql ,"where")=0 then
Sql =Sql +" where 计算机水平=" & Val(Trim(Text4))
else
Sql =Sql +" and 计算机水平=" & Val(Trim(Text4))
endif
endif
If Trim(Text5) "" Then
If Trim(Text4) "" Then
if instr(sql ,"where")=0 then
Sql =Sql +" where 工作时间>=" & Val(Trim(Text5))
else
Sql =Sql +" and 工作时间>=" & Val(Trim(Text5))
endif
endif
Rs.Open Sql, CN, adOpenKeyset, adLockPessimistic
Set DataGrid1.DataSource = Rs
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询