如何通过选择combo控件中的某一内容,动态刷新datagrid中与这一内容相匹配的数据?求救各位大虾,快半个月没有进展了!!!急啊
如何通过选择combo控件中显示的字段,在datagrid中显示与选中字段相匹配的所有数据
现在我的combo控件均能正常显示,只是不能按上述再datagrid中进行更新显示,我的代码不能完成,如下
combo控件名为comdata
Dim sel As jljlmk 'jljlmk是类
Dim se As ADODB.Recordset
Private Sub Form_Load()
Set cn = New ADODB.Connection
Set cm = New ADODB.Recordset
'///调用类模块,查询数据库工资号字段等于登陆窗体工资号文本
'//连接列表框comdata与数据库
Dim cd As String
Set sel = New jljlmk
cd = "select * from gz_data where LTrim(工资号)='" & frmLogin.txtUserName & "'"
Set se = sel.jlj(cd)
se.MoveFirst
While Not se.EOF
comdata.AddItem se!月份
se.MoveNext
Wend
comdata.ListIndex = 0
'//建立表连接,对数据库表数据进行查询
cn.ConnectionString = " Provider = Microsoft.jet.oledb.4.0;" & _
"data source=" & App.Path & "\gz_data.mdb;" & _
cn.Open
cm.CursorLocation = adUseClient
'//查询gz_data表中(LTrim(工资号)是去除工资号前的空格)工资号=登陆界面中工资号文本框的输入值
'//和查询窗体中月份=表中(CStr(月份)是将表中月份的日期型转换为字符型)月份的值
cm.Open "select * from gz_data where LTrim(工资号)='" & frmLogin.txtUserName & "' and CStr(月份)='" & selectForm.comdata.Text & "' ", cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = cm
如何通过选择combo控件中显示的字段,在datagrid中显示与选中字段相匹配的所有数据
现在我的combo控件均能正常显示,只是不能按上述再datagrid中进行更新显示,我的代码不能完成,如下
combo控件名为comdata
Dim sel As jljlmk 'jljlmk是类
Dim se As ADODB.Recordset
Private Sub Form_Load()
Set cn = New ADODB.Connection
Set cm = New ADODB.Recordset
'///调用类模块,查询数据库工资号字段等于登陆窗体工资号文本
'//连接列表框comdata与数据库
Dim cd As String
Set sel = New jljlmk
cd = "select * from gz_data where LTrim(工资号)='" & frmLogin.txtUserName & "'"
Set se = sel.jlj(cd)
se.MoveFirst
While Not se.EOF
comdata.AddItem se!月份
se.MoveNext
Wend
comdata.ListIndex = 0
'//建立表连接,对数据库表数据进行查询
cn.ConnectionString = " Provider = Microsoft.jet.oledb.4.0;" & _
"data source=" & App.Path & "\gz_data.mdb;" & _
cn.Open
cm.CursorLocation = adUseClient
'//查询gz_data表中(LTrim(工资号)是去除工资号前的空格)工资号=登陆界面中工资号文本框的输入值
'//和查询窗体中月份=表中(CStr(月份)是将表中月份的日期型转换为字符型)月份的值
cm.Open "select * from gz_data where LTrim(工资号)='" & frmLogin.txtUserName & "' and CStr(月份)='" & selectForm.comdata.Text & "' ", cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = cm
解决方案 »
- inputlen,inBufferCount,inBufferSize,还RTHreshold怎么区分了,谢谢大家告一下,谢谢了
- 我怎樣才可以把VB程式移植到OFFICE VBA
- !!!!!动态域名求解
- vb报表打印的问题,请指点一下!
- DataGrid的问题
- 用OLE怎么显示图片啊
- 请教:被除数/除数=商的问题,商是循环小数,商要计算到小数点后面900位,出现循环为止,怎么实现啊!!!
- 求教:图书馆管理系统的设计书及原码
- 如何使用VB修改目录的时间?
- 怎样设置报表的大小,如A4纸的一半和横向两张A4纸那么大的报表(用activereport2)?
- 很简单的KeyPress问题,各种大虾请指点!!!
- 寻求稳定有效的系统托盘控件
改为 月份="'#"& selectForm.comdata.Text & "#' ",
日期型数据查找要用#yyyy-mm-dd#格式或者其它夹在##间格式
If se.State Then se.Close
sql = "要查询显示的数据源"
se.Open sql, conn, adOpenKeyset, adLockPessimistic
End Sub
set datagrid的数据源为se就可以了
2.连接数据库的代码一个工程连接一次就行了,没必要每查询一次都连接.
3.你连接的数据库是什么,如果是ACCESS,日期要用#号括起来,而不应该用单引号.
4.还有就是你查询完之后,要清空内存,以免内存泄漏,要 SET XX = NOTHING
rs.open "select * from tb where 列='" & Combo1.Text & "'", cn, 3, 3
Set MSHFlexGrid1.DataSource = rs
rs.Close
End Sub
rs.open "select * from tb where 列='" & Combo1.Text & "'", cn, 3, 3
Set MSHFlexGrid1.DataSource = rs
rs.Close
End Sub
窗体代码
Option Explicit
Dim strSql As String
Private Sub Combo1_Click()
If Rs.State = adStateOpen Then Rs.Close
strSql = "select * from " & Combo1.Text
con.CursorLocation = adUseClient
Rs.Open strSql, con, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = Rs
End SubPrivate Sub Form_Load()
Combo1.AddItem "Department"
Combo1.AddItem "Employee"
Combo1.AddItem "Operator"
Combo1.AddItem "AccountType"
Combo1.AddItem "Customer"
Combo1.AddItem "TransactionsOfAccount"
Combo1.AddItem "TransactionOfCheckBook"
Combo1.AddItem "TransactionOfATMCard" Call connectionSQLServer//为模块代码中的过程
End Sub附模块代码
Public strServerName As String
Public strOperator As String
Public LoginSucceeded As Boolean
Public con As Connection
Public Rs As Recordset
Public com As CommandPublic Sub getSQLServerName()
If GetSetting("OnlineBankingDB", "SQL Server Name", "ServerName") = "" Then
strServerName = InputBox("请输入数据库服务器名称")
SaveSetting "OnlineBankingDB", "SQL Server Name", "ServerName", strServerName
Else
strServerName = GetSetting("OnlineBankingDB", "SQL Server Name", "ServerName")
End If
End SubPublic Sub connectionSQLServer()
Set con = New Connection
Set Rs = New Recordset
Set com = New Command
On Error GoTo errorhandler
Call getSQLServerName
Set con = New Connection
With con
.Provider = "sqloledb"
.ConnectionString = "user id=sa;" & _
"password=810614;" & _
"data source=" & strServerName & _
";initial catalog=OnlineBankingDB"
.Open
End With
com.ActiveConnection = con
Exit Sub
errorhandler:
MsgBox Err.Number & Err.Source & Err.Description
End Sub