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 , 基础类