最终要达到的目的是:有一个Access表,其中有一个布尔型的字段,我想用grid控件将表中的某些数据显示出来.其中要求布尔值为0的字段所在的条目背景色为蓝色,其余的条目的背景色默认.(有其他能明显的显示两者差别的方法亦可)
而且还要实现这样的功能,双击某个条目时,可以使其布尔值改变,颜色也随之变化.数据库及时更新.
我在考虑用MSHFlexGrid控件还是用dataGrid控件,但我不知这两个控件的方法.听说MSHFlexGrid控件不支持数据更新而dataGrid控件不支持部分条目变色.郁闷了~~~~~~~~
请给出解决方案.
而且还要实现这样的功能,双击某个条目时,可以使其布尔值改变,颜色也随之变化.数据库及时更新.
我在考虑用MSHFlexGrid控件还是用dataGrid控件,但我不知这两个控件的方法.听说MSHFlexGrid控件不支持数据更新而dataGrid控件不支持部分条目变色.郁闷了~~~~~~~~
请给出解决方案.
解决方案 »
- 求教:vb+webbrowser打开excel转化的网页不能屏蔽右键和文本选中
- 在VB程序中删除Excel中的一个sheet,总是会报"是否永久删除"的Message,怎么去掉?
- 请问那里有vb的电子书可下呀!
- 急!请问有什么图像压缩控件啊
- 密码修改
- 终于通过毕业答辩,在此谢谢在这里支持过我的各位大哥!!!
- 怎样实现把桌面图标右排?怎样实现不重启(重齐也行)更换背景?
- 在vb中在excel表存入数据遇到的问题,求助高手
- 怎样编程实现音箱和耳麦间的转换
- 请教有关ADO编写SQL网络应用程序
- 1000分问题领分 Greaitm(夜草) 200/300/1000分
- 求助DATAREPORT绑定数据库的相对路径,在线等
但建议使用mshflexgrid控件,虽然代码多了几行,但这样控制灵活
现在关键问题是
Private Sub MSHFlexGrid1_Click()End Sub
这中间的代码怎么写可以实现数据的更新
只要让布尔值改变就可以了
& " '" & MSHFLEXGRID1.TextMatrix(MSHFLEXGRID1.ROW,MSHFLEXGRID1.COL) & "'" _
& " WHERE B = 'ID'"
& " '" & MSHFLEXGRID1.TextMatrix(MSHFLEXGRID1.ROW,MSHFLEXGRID1.COL) & "'" _
& " WHERE B = 'ID'"A B 是什么意思?
附:我是用MSHFlexGrid通过adodc和access数据库相连的.
///
用adodc太死,你可以自己寫連接,這樣你會輕鬆很多
Option ExplicitDim lngOldRow As LongPrivate Sub Form_Load()Dim i As Long
Dim j As Long
Dim k As Long
MSHFlexGrid1.Rows = 20: MSHFlexGrid1.Cols = 6
'For i = 1 To MSHFlexGrid1.Rows - 1
' MSHFlexGrid1.TextMatrix(i, 1) = "aaaa" & i
' Next
MSHFlexGrid1.SelectionMode = flexSelectionByRow
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\check.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select 金额,已达标志,摘要,单据号,借贷,日期 from ch_bank "
Adodc1.Refresh
Set MSHFlexGrid1.DataSource = Adodc1
MSHFlexGrid1.Refresh
Set DataGrid1.DataSource = Adodc1
DataGrid1.Refresh
' MSHFlexGrid1.CellBackColor = &O222222
'Dim i As Integer
'For i = 1 To MSHFlexGrid1.Rows - 1
' MSHFlexGrid1.Col = 2
' MSHFlexGrid1.Row = i
' If CCur(MSHFlexGrid1.Text) Mod (Text1.Text) Then
' MSHFlexGrid1.CellForeColor = vbRed
' End If
' Next i
''''' For i = 1 To MSHFlexGrid1.Rows - 1
'MSHFlexGrid1.Col = 6
''''' MSHFlexGrid1.Row = i
' If CCur(MSHFlexGrid1.Text) Mod (Text1.Text) Then
'If MSHFlexGrid1.Recordset("已达标志") Mod (True) Then
' For j = 1 To MSHFlexGrid1.Cols - 1
' MSHFlexGrid1.Col = j
' MSHFlexGrid1.CellBackColor = vbRed
'
' Next j
''''' MSHFlexGrid1.CellBackColor = vbRed
''''' End If
''''' Next i
For i = 1 To MSHFlexGrid1.Rows - 1
MSHFlexGrid1.Row = i
'MsgBox i
If Adodc1.Recordset("已达标志") = True Then
For j = 1 To MSHFlexGrid1.Cols - 1
MSHFlexGrid1.Col = j
MSHFlexGrid1.CellBackColor = vbRed
Next
End If
Adodc1.Recordset.MoveNext
Next
End Sub'Private Sub MSHFlexGrid1_Click()'MSHFlexGrid1.Redraw = False
'Dim i As Long, lngNewRow As Long
'
' lngNewRow = MSHFlexGrid1.Row
' MSHFlexGrid1.Row = lngOldRow
' For i = 1 To MSHFlexGrid1.Cols - 1
' MSHFlexGrid1.Col = i
' MSHFlexGrid1.CellBackColor = vbWhite
' Next
' MSHFlexGrid1.Row = lngNewRow
' For i = 1 To MSHFlexGrid1.Cols - 1
' MSHFlexGrid1.Col = i
' MSHFlexGrid1.CellBackColor = vbBlue
'
' Next
' MSHFlexGrid1.Redraw = True
'
' lngOldRow = lngNewRow'End Sub
''''''%%%%%%%%$$$$$$$$^^^^&&***************((((((((((((((((((((&&&&&&&&&&&%%%%%%%%%$$$$##########@@@@@@@@
'''''''''''''###############@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%^^^^^^^^^^^^^^^^&&&&&&&&&&&****
Private Sub MSHFlexGrid1_DblClick()
Dim myrowmyrow = MSHFlexGrid1.MouseRow
If myrow = 0 Then
MsgBox "过分了!点击标题栏有什么用?去点击框中的条目吧."
Exit Sub
End If
Adodc1.Recordset.MoveFirst
'MsgBox "@@@You right clicked row " & Myrow
Adodc1.Recordset.Move myrow - 1
'MsgBox Adodc1.Recordset("已达标志")
If Adodc1.Recordset("已达标志") = False Then
Adodc1.Recordset("已达标志") = True
ElseIf Adodc1.Recordset("已达标志") = True Then
Adodc1.Recordset("已达标志") = False
End If
'End If
MSHFlexGrid1.Refresh
Unload Me
test.Show
End Sub'Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
'单击鼠标右键提示选中的行
'Dim Myrow'If Button = 2 Then ' Myrow = MSHFlexGrid1.MouseRow
' MsgBox "You right clicked row #" & Myrow'End If'End Sub