当前位置:编程学习 > VB >>

DataGrid的初始化问题

DataGrid的初始化,怎么老提示下表越界呀!
谢谢!
   Adodc1.ConnectionString = PublicStr 
  Adodc1.RecordSource = "select tradecode,qty,billdate,price,tsum,fullname from tbS_detailed" 
  Adodc1.Refresh 

Set DataGrid1.DataSource = Adodc1 
  DataGrid1.Columns(0).Width = 12 * 25 * 5 
  DataGrid1.Columns(1).Width = 12 * 25 * 15 
  DataGrid1.Columns(2).Width = 12 * 25 * 3 
  DataGrid1.Columns(3).Width = 12 * 25 * 5   '执行到这里就提示下表越界了 
  DataGrid1.Columns(4).Width = 12 * 25 * 5 
  DataGrid1.Columns(5).Width = 12 * 25 * 5 

   
  '设置标题 
  DataGrid1.Columns(0).Caption = "产品型号" 
  DataGrid1.Columns(1).Caption = "初库存台份" 
  DataGrid1.Columns(2).Caption = "初库存成本" 
  DataGrid1.Columns(3).Caption = "入库台份" 
  DataGrid1.Columns(4).Caption = "入库总成本" 
  DataGrid1.Columns(5).Caption = "销售台份" 
--------------------编程问答-------------------- 你是加载了一个缺省的DataGrid控件,设计阶段,DataGrid控件界面仅有2列,出错处应是代码行及以下行. 
DataGrid1.Columns(2).Width = 12 * 25 * 3 
你需用鼠标右键点该控件,选编辑,然后鼠标右键点该控件,选追加(你需显示数据表的字段数-2)次,或按你6列-2次(即4次).此时DataGrid控件界面有6列与你代码中所调整列一致,就不会出现下标越界现象. 
--------------------编程问答--------------------
Private Sub Command1_Click()

  Dim i As Integer
  Const ColCount As Integer = 6

  Dim ColWidth() As Long
  Dim ColCaption() As String
  Dim ColFields() As String

  Adodc1.ConnectionString = PublicStr
  Adodc1.RecordSource = "select tradecode,qty,billdate,price,tsum,fullname from tbS_detailed"
  Adodc1.Refresh


  '很不明白,为何没有一个 Clear 的方法
  For i = DataGrid1.Columns.Count To 0 Step -1
    DataGrid1.Columns.Remove i
  Next

  ReDim ColWidth(5)
  ColWidth(0) = 12 * 25 * 5
  ColWidth(1) = 12 * 25 * 15
  ColWidth(2) = 12 * 25 * 3
  ColWidth(3) = 12 * 25 * 5
  ColWidth(4) = 12 * 25 * 5
  ColWidth(5) = 12 * 25 * 5
  
  ColCaption = Split("产品型号,初库存台份,初库存成本,入库台份,入库总成本,销售台份", ",")
  ColFields = Split("产品型号,初库存台份,初库存成本,入库台份,入库总成本,销售台份", ",")

  For i = 0 To ColCount - 1
    With DataGrid1.Columns.Add(i)
      .Width = ColWidth(i)
      .Caption = ColCaption(i)
      .DataField = ColFields(i)
    End With
  Next

  '这里根据字段的类型,设置个别字段的显示格式,例如数字的显示
   

  Set DataGrid1.DataSource = Adodc1

End Sub

  

--------------------编程问答-------------------- 用代码解决动态增加列数 
Dim i As Integer 
Dim c As Column 
For i = 1 To 4 
Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count) 
Next 
With c 
.Visible = True 
.Width = 1000 
.Alignment = dbgRight 
End With 
Adodc1.ConnectionString = PublicStr 
Adodc1.RecordSource = "select tradecode,qty,billdate,price,tsum,fullname from tbS_detailed" 
Adodc1.Refresh 
Set DataGrid1.DataSource = Adodc1 
DataGrid1.Columns(0).Width = 12 * 25 * 5 
DataGrid1.Columns(1).Width = 12 * 25 * 15 
DataGrid1.Columns(2).Width = 12 * 25 * 3 
DataGrid1.Columns(3).Width = 12 * 25 * 5 
DataGrid1.Columns(4).Width = 12 * 25 * 5 
DataGrid1.Columns(5).Width = 12 * 25 * 5 

'设置标题 
DataGrid1.Columns(0).Caption = "产品型号" 
DataGrid1.Columns(1).Caption = "初库存台份" 
DataGrid1.Columns(2).Caption = "初库存成本" 
DataGrid1.Columns(3).Caption = "入库台份" 
DataGrid1.Columns(4).Caption = "入库总成本" 
DataGrid1.Columns(5).Caption = "销售台份" 
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,