主要时完成这么个功能:    我在用户档案的新怎窗口里面,有个comGMJX连接数据库的“产品管理表”运行时combo的LIST里面添加机型,根据所选择的机型,在下面的“基本配置”和“单价”两个text中显示相应的配置和单价。可运行的时候出现了个错误,提示“运行时错误,下标越界”代码如下:Private Sub comGMJX_Click()
SQL1 = "select * from 产品管理表 "
Call OpenConn
rs.Open SQL1, cn, 1, 1
iIndex = 0
Do While Not rs.EOF
    Me.comGMJX.AddItem rs.Fields(2)
    ReDim Preserve sBaseSet(iIndex)
    ReDim Preserve xBaseSet(iIndex)
    sBaseSet(iIndex) = rs.Fields(3).Value
    xBaseSet(iIndex) = rs.Fields(4).Value
    iIndex = iIndex + 1
    rs.MoveNext
LoopMe.txtJBPZ.Text = sBaseSet(comGMJX.ListIndex)
Me.txtDJ.Text = xBaseSet(comGMJX.ListIndex)
Call CloseConn
调试时Me.txtJBPZ.Text = sBaseSet(comGMJX.ListIndex) 这一句出错

解决方案 »

  1.   

    comGMJX.ListIndex的值是sBaseSet的数组上限加1 ,所以越界
      

  2.   

    可以简单的把iIndex初始值置为1。
    或者Me.txtJBPZ.Text = sBaseSet(comGMJX.ListIndex - 1 ) 
      

  3.   

    Me.txtJBPZ.Text   =   sBaseSet(comGMJX.ListIndex) 
    Me.txtDJ.Text   =   xBaseSet(comGMJX.ListIndex) 
    不是这样写的
    上面2句用一个代替comGMJX.ListIndex=0  '这里设置后要自动激活comGMJX_Click同时为了更新数据显示,你肯定还有这个:
    Private Sub comGMJX_Click()
        Me.txtJBPZ.Text = sBaseSet(comGMJX.ListIndex)
        Me.txtDJ.Text = xBaseSet(comGMJX.ListIndex)
    End Sub