用代码调试的时候没问题,但编绎后执行exe文件报这个错误,为什么,真搞不懂了,找不到问题所在,请哪位高兄帮帮忙

解决方案 »

  1.   

    设置vb编译选项:
    设置“选项”->"通用"->"错误捕获"为“发生错误时中断”,然后用CTRL+F5快速编译一下。看能否发现问题所在。
      

  2.   

    设置过了,情况还是一样。而且这个错误我用on error goto也捕捉不到它.
      

  3.   

    出错的地方就这段程序,但我不觉得这里会有错.  
              If g_IfInCombox(Trim(Me.cmbDetail.Text), Me.cmbDetail) = 1 Then
                    strGoodsID = Left(Trim(Me.cmbDetail.Text), InStr(Trim(Me.cmbDetail.Text), "|") - 1)
                    strSQL = "select isnull(ER_fvarRowsName,''),isnull(ER_fvarRowsModel,''),isnull(ER_fvarUnit,'') from RowsInfo where ER_fvarRowsCode='" & strGoodsID & "'"
                    Set rstSQL = g_Conn.Execute(strSQL)
                    If Not rstSQL.EOF Then
                        For i = 0 To 2
                            Me.txtDetail(i + 2).Text = rstSQL.Fields(i)
                        Next
                        If Me.txtDetail(8).Enabled = True Then Me.txtDetail(8).SetFocus
                    End If
                Else
                        MsgBox "该物料编号:" & Trim(Me.cmbDetail.Text) & "不存在,请检查!", vbCritical + vbOKOnly, "系统提示"
                        If Me.cmbDetail.Enabled = True Then Me.cmbDetail.SetFocus
                End If
      

  4.   

    '修改一下如下两处。
    If Me.txtDetail(8).Enabled = True Then 
       if Me.txtDetail(8).Visible then
              Me.txtDetail(8).SetFocus
       end if
    endifIf Me.cmbDetail.Enabled = True Then 
       Me.cmbDetail.Visible then
            Me.cmbDetail.SetFocus
       end if
    endif
      

  5.   

    我这两个控件肯定的visible属性肯定是true的
      

  6.   

    还有这一句:strGoodsID = Left(Trim(Me.cmbDetail.Text), InStr(Trim(Me.cmbDetail.Text), "|") - 1)如果 Me.cmbDetail.Text 中不包含“|”字符,那么也会报那样的错;
      

  7.   

    不会是"|"字符的原因,因为只有满足了条件g_IfInCombox(Trim(Me.cmbDetail.Text), Me.cmbDetail) = 1后才会去执行,而满足这个条件后就肯定有"|"字符,而且这种情况exe执行是没问题的,所以肯定不会这个原因,现在只是在不满足这个条件时会出现这个错误,而且报完这个错误后程序还会继续执行下一句:MsgBox "该物料编号:" & Trim(Me.cmbDetail.Text) & "不存在,请检查!", vbCritical + vbOKOnly, "系统提示",这个对话框出现完确认后程序就关闭。有点怪吧,本来正常来说一旦出现了没捕捉的错误的话,程序不会继续执行而会立即关闭才对。