运行时下面事件中的两句提示,下标越界:(我在属性里把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
               

解决方案 »

  1.   

    LZ:
    你可用鼠标右键点击设计窗口的DATAGRI1控件,出现菜单选编辑项,然后再鼠标右键点击设计窗口的DATAGRI1控件会出现另一菜单,选2次追加.然后选该菜单属性,会出现DATAGRID控件的属性页,主要对"列"属性设置的Column 0,Column 1,Column 2, Column 3的标题和数据字段进行设置,标题是你想显示的字段名称或别名,数据字段是你数据表中的实际名称.其它有布局及格式或许会有设置.