读书人

vb6.exe 中 发生未处理的win32错误请

发布时间: 2012-03-01 10:25:46 作者: rapoo

vb6.exe 中 发生未处理的win32异常,请问该如何处理?

VB code
Private Sub cmdExit_Click()    EndEnd SubPrivate Sub cmdOK_Click()    Dim ret As Long    ret = SetVTText("VT1", sDtStart.Value)    ret = SetVTText("VT2", sDtEnd.Value)    ret = SetVTText("VT3", cboPhoneNo.Text)    ret = SetVTText("VT4", txtSMS.Text)    EndEnd SubPrivate Sub Form_Load()    '初始化日期控件的时间值    sDtStart.Hour = Hour(Now)    sDtEnd.Hour = Hour(Now)    sDtStart.Minute = Minute(Now)    sDtEnd.Minute = Minute(Now)    sDtStart.Second = Second(Now)    sDtEnd.Second = Second(Now)        '为组合框cboPhoneNo绑定数据源    Dim con As New ADODB.Connection    Dim rst As New ADODB.Recordset    Dim sql As String    Dim conn As String        con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\SmsLog.mdb;Persist Security Info=False"    sql = "select distinct Phone from ReceiveLog"    rst.Open sql, con, adOpenKeyset, adLockOptimistic        cboPhoneNo.Clear    Do While Not rst.EOF        cboPhoneNo.AddItem (Trim(rst(0)))        rst.MoveNext    Loop        rst.Close    con.CloseEnd SubPrivate Sub Form_Unload(Cancel As Integer)    EndEnd Sub


[解决办法]
sDtStart.Value 改成cstr(sDtStart.Value) ,sDtend.Value 改成cstr(sDtStart.Value) 试试
[解决办法]
你要注意提供API的说明,什么样的参数才是合法的.

如果确定了是在输入了空值后出的错,那么就说明空值是不合法的.

这样的话需要在程序里先判断一下值是否为空,例如:

if cboPhoneNo.Text<>"" then
ret = SetVTText("VT3", cboPhoneNo.Text)
else
msgbox "cboPhoneNo不能为空!"
exit sub
end if

关键还是要知道API的参数的规则.

读书人网 >VB

热点推荐