Private Sub mModylatency_Click()
Dim intCount As Integer
If flagEdit Then
gintMode = 2
If frmLatencyInquire.MSFlexGrid1.Rows > 1 Then
intCount = frmLatencyInquire.MSFlexGrid1.Rows
frmAddLatency.strSQL = "select * from latency_client where _ company_name='" & Trim(frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)) & "'"
'单步运行到此,错误提示是:下标越界。
frmAddLatency.Show
Else
Call mAddlatency_Click
End If
Else
MsgBox "??????òaDT??μ?????£?", vbOKOnly + vbExclamation, "?ˉ??"
frmAddLatency.strSQL = "select * from latency_client"
frmAddLatency.Show
frmAddLatency.ZOrder 0
End IfEnd Sub
注:frmLatencyInquire '有MSflexgrid控件的子窗体
mModylatency 'MDI窗体中下拉的窗体名
mAddlatency '添加信息的窗体名
gintMode '定义的布尔值, =2是修改,=1是添加
Dim intCount As Integer
If flagEdit Then
gintMode = 2
If frmLatencyInquire.MSFlexGrid1.Rows > 1 Then
intCount = frmLatencyInquire.MSFlexGrid1.Rows
frmAddLatency.strSQL = "select * from latency_client where _ company_name='" & Trim(frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)) & "'"
'单步运行到此,错误提示是:下标越界。
frmAddLatency.Show
Else
Call mAddlatency_Click
End If
Else
MsgBox "??????òaDT??μ?????£?", vbOKOnly + vbExclamation, "?ˉ??"
frmAddLatency.strSQL = "select * from latency_client"
frmAddLatency.Show
frmAddLatency.ZOrder 0
End IfEnd Sub
注:frmLatencyInquire '有MSflexgrid控件的子窗体
mModylatency 'MDI窗体中下拉的窗体名
mAddlatency '添加信息的窗体名
gintMode '定义的布尔值, =2是修改,=1是添加
怎样才能避免这一情况
with msflexgrid1 .FixedRows = 1
For i = 0 To 11
.ColAlignment(i) = 0
Next i
.FillStyle = flexFillRepeat
.Col = 0
.Row = 0
.RowSel = 1
.ColSel = .Cols - 1
.CellAlignment = 4 .Row = 1
end with
的问题
frmLatencyInquire.MSFlexGrid1.TextMatrix _(frmLatencyInquire.MSFlexGrid1.Rows, 1)取值时,就出现下标越界,建议查看一下数据库。
.Rows是在if语句中已经作过判断了的,后面的那个1就不一定存在 。
太难理解了
msgbox frmLatencyInquire.MSFlexGrid1.Rows
看这个值在出错的时候到底是多少。把它写在出错的语句前。