法一:如果已经连接数据源、表、有查询语句,单击右键,选择“字段刷新”(retrieve fields),确定。
法二:单击右键,选择“编辑”(edit)编辑该控件,通过编辑控件(此时再次单击右键,插入行或列)完成
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)'显示用户所单击的单元的文字、行和列的信息
Debug.Print DataGrid1.TextDataGrid1.RowDataGrid1.Col
End Sub
这是你的第二个问题。
张志晨
第一个问题:
你自己试下:
通过使用 Columns 集合和 Column 对象的属性和方法,可以在程序中添加、删除列。
要在运行时添加一列,可以使用 Add 方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。
Private Sub AddColumn()
'在最右边的位置添加一列。然后设置其 Visible、Width、
'Caption以及 Alignment 属性。DataField 属性则指定
' 该列将绑定到哪一个字段。
Dim c As Column
Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count)
With c
.Visible = True
.Width = 1000
.Caption = “我的新列”
.DataField = Adodc1.Recordset.Fields(“ProductName”).Name
.Alignment = dbgRight
End With
End Sub
可以使用方法来删除任意一列。请确保使用 ColIndex 参数来指定要删除的列。下面的代码将删除被单击的列。
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
DataGrid1.Columns.Remove ColIndex
End Sub
另外:
在VB6中,Datagrid控件应该是初学者最喜使用的控件之一,它对数据简单绑定却又往往束缚住手脚。正确的使用的Datagrid必须首先了解它的本质。
Datagrid的本质在于它从来就不是一个真正的网格控件。我们可以片面理解,一个真正的网格控件就是必须将数据脱离Recordset而读进本身的控件。如:Msflexgrid,Mshflexgrid,Spread这些都属于真实的网格控件,我们可以独立的设置这些控见的rows,cols。相反Datagrid,Listview则不属于网格控件。
了解完本质,则可以清楚的知道,因为Datagrid不能将数据读进自身,所以实际它是脱离不了Recordset,我们需要显示的数据效果,只能通过ADO控件来 *** 纵Recordset的表现形式来完成任务。
建议转学VS2011,学习Msflexgrid,Mshflexgrid控件知识。
列数是自动的,就是记录集的字段数'Ctrl+t找Microsoft DataGrid Control....
'菜单"工程"->"引用" 找 Microsoft ActiveX Data Object....
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\db1.mdbMode=ReadWritePersist Security Info=FalseJet OLEDB:Database Password=111"
SqlStr = "Select * From 某个表"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set DataGrid1.DataSource = rst '给DataGrid修改数据源
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)