以下是我的一段数据库载入程序,功能是在主程序显示前先出现“打开”对话框,让用户定位数据库文件的位置,如果选择的数据库文件不存在,则由程序提示出错并可重新选择,此程序运行时第一次可弹出“打开”对话框并选择一个不存在的文件,则会提示我自定义的错误提示并重新选择,但若再次选择错误文件并打开时则不能显示我定义的错误提示??只出现VB的系统错误提示??而我又不想用VB的错误提示!!是on error goto语句用错了吗??请高手指点迷津!!谢谢sub main()
'定位数据库位置
Dim CDopen As CommonDialog
Set CDopen = Form1.CD
CDopen.DialogTitle = "定位数据库位置"
CDopen.Filter = "数据库 (*.db)| *.db|"
CDopen.InitDir = App.Path
dd:
On Error Resume Next
CDopen.CancelError = True
CDopen.ShowOpen
If Err.Number = 32755 Then'若点击“取消”则退出
Set CDopen = Nothing
End '终止程序运行
Else
strDBpath = CDopen.FileName
On Error GoTo openerror
Dim conns As New ADODB.Connection
conns.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBpath
Set CDopen = Nothing
conns.Close
Form1.Show '显示出程序主窗体
Exit Sub
openerror:'若数据文件不存在则提示错误
MsgBox "数据库文件:" & CDopen.FileName & Chr(13) & Chr(13) & "找不到!", vbOKOnly + vbExclamation, "数据库错误"
GoTo dd'重新选择
End If
End Sub
'定位数据库位置
Dim CDopen As CommonDialog
Set CDopen = Form1.CD
CDopen.DialogTitle = "定位数据库位置"
CDopen.Filter = "数据库 (*.db)| *.db|"
CDopen.InitDir = App.Path
dd:
On Error Resume Next
CDopen.CancelError = True
CDopen.ShowOpen
If Err.Number = 32755 Then'若点击“取消”则退出
Set CDopen = Nothing
End '终止程序运行
Else
strDBpath = CDopen.FileName
On Error GoTo openerror
Dim conns As New ADODB.Connection
conns.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBpath
Set CDopen = Nothing
conns.Close
Form1.Show '显示出程序主窗体
Exit Sub
openerror:'若数据文件不存在则提示错误
MsgBox "数据库文件:" & CDopen.FileName & Chr(13) & Chr(13) & "找不到!", vbOKOnly + vbExclamation, "数据库错误"
GoTo dd'重新选择
End If
End Sub
Set CDopen = Nothing
conns.Close
Form1.Show '显示出程序主窗体
Exit Sub
'定位数据库位置
Dim CDopen As CommonDialog
Set CDopen = Form1.CD
CDopen.DialogTitle = "定位数据库位置"
CDopen.Filter = "数据库 (*.db)| *.db|"
CDopen.InitDir = App.Path
dd:
On Error Resume Next
CDopen.CancelError = True
CDopen.ShowOpen
If Err.Number = 32755 Then'若点击“取消”则退出
Set CDopen = Nothing
End '终止程序运行
Else
strDBpath = CDopen.FileName
Dim conns As New ADODB.Connection
conns.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBpath
Set CDopen = Nothing
conns.Close
If Err.Number <> 0 Then
Err.Clear
MsgBox "数据库文件:" & CDopen.FileName & Chr(13) & Chr(13) & "找不到!", vbOKOnly + vbExclamation, "数据库错误"
GoTo dd'重新选择
else
Form1.Show '显示出程序主窗体
End If
end if
End Sub
忽略异常,转到下一条语句
viena(维也纳nn-实心木头人) :使用On Error Resume Next是为了判断是否按下取消,如果修改我的程序啊??
在线等!!!
如果是On Error Resume Next的问题,为什么第一次可以显示错误提示,第二次就不行呢?
'定位数据库位置
Dim CDopen As CommonDialog
Set CDopen = Form1.CD
CDopen.DialogTitle = "定位数据库位置"
CDopen.Filter = "数据库 (*.db)| *.db|"
CDopen.InitDir = App.Path
dd:
On Error Resume Next
CDopen.CancelError = True
CDopen.ShowOpen
If Err.Number = 32755 Then'若点击“取消”则退出
Set CDopen = Nothing
End '终止程序运行
Else
strDBpath = CDopen.FileName
Dim conns As New ADODB.Connection
conns.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBpath
conns.Close
If Err.Number <> 0 Then
Err.Clear
MsgBox "数据库文件:" & CDopen.FileName & Chr(13) & Chr(13) & "找不到!", vbOKOnly + vbExclamation, "数据库错误"
GoTo dd'重新选择
else
Set CDopen = Nothing
Form1.Show '显示出程序主窗体
End If
end if
End Sub
tztz520(午夜逛街) :你的代码是死循环,不能正确显示错误消息????
viena(维也纳nn-实心木头人) :使用On Error Resume Next是为了判断是否按下取消,如果修改我的程序啊??
在线等!!!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
如果取消了,肯定没有路径返回,长度就是0 啊
Dim conns As New ADODB.Connection
Dim CDopen As CommonDialog
Set CDopen = Form1.CD
CDopen.DialogTitle = "定位数据库位置"
CDopen.Filter = "数据库 (*.db)| *.db|"
CDopen.InitDir = App.Path
CDopen.CancelError = True
On Error GoTo openerror
CDopen.ShowOpen
strDBpath = CDopen.FileName
conns.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBpath
Set CDopen = Nothing
conns.Close
Form1.Show '显示出程序主窗体 Exit Subopenerror: '若数据文件不存在则提示错误
If Err.Number = 32755 Then
Set CDopen = Nothing
End '终止程序运行
Else
MsgBox "数据库文件:" & CDopen.FileName & Chr(13) & Chr(13) & "找不到!", vbOKOnly + vbExclamation, "数据库错误"
main
End If
End Sub
就不用自己处理文件不存在的情况