运行时下面事件中的两句提示,下标越界:(我在属性里把datagrid默认列数增加到4列,第一个查询不出现提示,第二次查询就会提示,主要还是datagrid 列数的原因.第二次查询时,涮新后datagrid又变回2列,有什么办法使datagrid 始终保持在4列.)Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Option Explicit
Private Sub Command1_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\tybm.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select kh,xx,xm,xbdm from ks where xbdm ='" + Text5.Text + "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
Set Text1.DataSource = Adodc1
Set Text2.DataSource = Adodc1
Set Text3.DataSource = Adodc1
Set Text4.DataSource = Adodc1
End SubPrivate Sub DataGrid1_Click()
On Error Resume Next
Text1.Move DataGrid1.Left + DataGrid1.Columns(0).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(0).Width, DataGrid1.RowHeight
Text2.Move DataGrid1.Left + DataGrid1.Columns(1).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(1).Width, DataGrid1.RowHeight
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Text1.DataField = Adodc1.Recordset.Fields.Item(0).Name
Text2.DataField = Adodc1.Recordset.Fields.Item(1).Name
Text3.DataField = Adodc1.Recordset.Fields.Item(2).Name
Text4.DataField = Adodc1.Recordset.Fields.Item(3).Name
Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
End Sub Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
If Not List1.Visible Then
List1.Visible = True
List1.Width = DataGrid1.Columns(3).Width
List1.Left = DataGrid1.Left + DataGrid1.Columns(3).Left
List1.Top = DataGrid1.RowTop(DataGrid1.Row) + DataGrid1.RowHeight
End If
End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Text1.Move DataGrid1.Left + DataGrid1.Columns(0).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(0).Width, DataGrid1.RowHeight
Text2.Move DataGrid1.Left + DataGrid1.Columns(1).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(1).Width, DataGrid1.RowHeight
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Text1.DataField = Adodc1.Recordset.Fields.Item(0).Name
Text2.DataField = Adodc1.Recordset.Fields.Item(1).Name
Text3.DataField = Adodc1.Recordset.Fields.Item(2).Name
Text4.DataField = Adodc1.Recordset.Fields.Item(3).Name
End Sub
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Option Explicit
Private Sub Command1_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\tybm.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select kh,xx,xm,xbdm from ks where xbdm ='" + Text5.Text + "'"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
Set Text1.DataSource = Adodc1
Set Text2.DataSource = Adodc1
Set Text3.DataSource = Adodc1
Set Text4.DataSource = Adodc1
End SubPrivate Sub DataGrid1_Click()
On Error Resume Next
Text1.Move DataGrid1.Left + DataGrid1.Columns(0).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(0).Width, DataGrid1.RowHeight
Text2.Move DataGrid1.Left + DataGrid1.Columns(1).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(1).Width, DataGrid1.RowHeight
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Text1.DataField = Adodc1.Recordset.Fields.Item(0).Name
Text2.DataField = Adodc1.Recordset.Fields.Item(1).Name
Text3.DataField = Adodc1.Recordset.Fields.Item(2).Name
Text4.DataField = Adodc1.Recordset.Fields.Item(3).Name
Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
End Sub Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
If Not List1.Visible Then
List1.Visible = True
List1.Width = DataGrid1.Columns(3).Width
List1.Left = DataGrid1.Left + DataGrid1.Columns(3).Left
List1.Top = DataGrid1.RowTop(DataGrid1.Row) + DataGrid1.RowHeight
End If
End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Text1.Move DataGrid1.Left + DataGrid1.Columns(0).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(0).Width, DataGrid1.RowHeight
Text2.Move DataGrid1.Left + DataGrid1.Columns(1).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(1).Width, DataGrid1.RowHeight
Text3.Move DataGrid1.Left + DataGrid1.Columns(2).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(2).Width, DataGrid1.RowHeight
Text4.Move DataGrid1.Left + DataGrid1.Columns(3).Left, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row), DataGrid1.Columns(3).Width, DataGrid1.RowHeight
Text1.DataField = Adodc1.Recordset.Fields.Item(0).Name
Text2.DataField = Adodc1.Recordset.Fields.Item(1).Name
Text3.DataField = Adodc1.Recordset.Fields.Item(2).Name
Text4.DataField = Adodc1.Recordset.Fields.Item(3).Name
End Sub
你可用鼠标右键点击设计窗口的DATAGRI1控件,出现菜单选编辑项,然后再鼠标右键点击设计窗口的DATAGRI1控件会出现另一菜单,选2次追加.然后选该菜单属性,会出现DATAGRID控件的属性页,主要对"列"属性设置的Column 0,Column 1,Column 2, Column 3的标题和数据字段进行设置,标题是你想显示的字段名称或别名,数据字段是你数据表中的实际名称.其它有布局及格式或许会有设置.