
一个关于vb on Error GOTO 的问题请教大家。
AdoRs.Open"select*fromuser_info",Cnn,adOpenKeysetOnErrorGoToerror_1:IfAdoRs.RecordCou...
AdoRs.Open "select * from user_info", Cnn, adOpenKeyset
On Error GoTo error_1:
If AdoRs.RecordCount > 0 Then
Me.txtUserName.Clear
Do While AdoRs.EOF = False
Me.txtUserName.AddItem (AdoRs.Fields("user_name"))
AdoRs.MoveNext
Loop
AdoRs.Close
End If
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
这是我的一个读取数据的代码,如果出现错误我就提示,可是现在我的数据能够读出来,可是为什么程序还会出现提示呢?
on ERROR go to 不是只有出现错误的时候才跳转吗?
可是我的程序没有出现错误啊,为什么也去执行了?
大家帮助。谢谢 展开
On Error GoTo error_1:
If AdoRs.RecordCount > 0 Then
Me.txtUserName.Clear
Do While AdoRs.EOF = False
Me.txtUserName.AddItem (AdoRs.Fields("user_name"))
AdoRs.MoveNext
Loop
AdoRs.Close
End If
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
这是我的一个读取数据的代码,如果出现错误我就提示,可是现在我的数据能够读出来,可是为什么程序还会出现提示呢?
on ERROR go to 不是只有出现错误的时候才跳转吗?
可是我的程序没有出现错误啊,为什么也去执行了?
大家帮助。谢谢 展开
4个回答
2013-08-13
展开全部
错误处理在VB中较常见的应用.
VB错误处理,一般放在整个模块最后或者函数的最后.在发生错误时,利用goto 标签名 这样的语句来进行跳转.这其实是一个过程程序设计里常用的语法形式.做这个之前,你心里得对程序有一个大概了解.
错误处理标签及语句必须放在SUB过程及函数过程里.但VB是逐条执行语句的,所以,如果你没有特殊标记,它会把你写的代码全部执行完.这就是你的程序出现错误的原因.
怎么处理呢?在VB中,有一个退出过程与函数的方法.那就是exit sub或者exit function在你的错误标签前面,紧挨着标签,也就是错误标签的前一行,加上结束过程或者结束函数的语句告诉VB我的函数或者过程已经完成.
明白了吗?
VB错误处理,一般放在整个模块最后或者函数的最后.在发生错误时,利用goto 标签名 这样的语句来进行跳转.这其实是一个过程程序设计里常用的语法形式.做这个之前,你心里得对程序有一个大概了解.
错误处理标签及语句必须放在SUB过程及函数过程里.但VB是逐条执行语句的,所以,如果你没有特殊标记,它会把你写的代码全部执行完.这就是你的程序出现错误的原因.
怎么处理呢?在VB中,有一个退出过程与函数的方法.那就是exit sub或者exit function在你的错误标签前面,紧挨着标签,也就是错误标签的前一行,加上结束过程或者结束函数的语句告诉VB我的函数或者过程已经完成.
明白了吗?

2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐于2018-05-01
展开全部
把程序第二行 On Error GoTo error_1 后边那个冒号去掉,
在第十行End If和error_1之间加一句Exit Sub 就行了。
AdoRs.Open "select * from user_info", Cnn, adOpenKeyset
On Error GoTo error_1
If AdoRs.RecordCount > 0 Then
Me.txtUserName.Clear
Do While AdoRs.EOF = False
Me.txtUserName.AddItem (AdoRs.Fields("user_name"))
AdoRs.MoveNext
Loop
AdoRs.Close
End If
Exit Sub
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
在第十行End If和error_1之间加一句Exit Sub 就行了。
AdoRs.Open "select * from user_info", Cnn, adOpenKeyset
On Error GoTo error_1
If AdoRs.RecordCount > 0 Then
Me.txtUserName.Clear
Do While AdoRs.EOF = False
Me.txtUserName.AddItem (AdoRs.Fields("user_name"))
AdoRs.MoveNext
Loop
AdoRs.Close
End If
Exit Sub
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-13
展开全部
on error goto 语句的确是可以跳到指定位置执行需要代码,但是如果程序没错,而跳转语句在该代码段后面是也会被执行的,因为你在error_1之前没先跳出这段代码.修改方法:在error_1和End If之间加一句Exit Sub即可.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-13
展开全部
您好,您也许可以使用以下方法进行修改,即增加两行代码:
...
goto nexta:
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
nexta:
...
goto nexta:
error_1:
MsgBox ("请检查你的数据库是否已经正常启动!")
nexta:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询