错误处理

pegdw 2003-07-17 11:01:17
有一个text框、MSFlexGrid控件、CommandButton按钮。
在text输入查询年月,按BUTTON,如果条件有错则报错,上一次查询结果清除。
源代码如下:


Private Sub Command1_Click(Index As Integer)
'应收统计
Select Case Index
Case 0
' On Error GoTo MyErr
tempQuery = ""
Close
Open App.path & "\应收.ini" For Input As #1
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, sReadline ' Read line into variable.
tempQuery = tempQuery & sReadline & ","
Loop
Close #1
SQL = "SELECT 合同信息.客户名称, 合同单元信息.单元名称, 收费项目表.项目名称, 收费通知单清单信息.本月应收" & _
" FROM ((合同信息 INNER JOIN 合同单元信息 ON 合同信息.ID = 合同单元信息.合同ID) INNER JOIN 收费通知单信息 ON" & _
" 合同单元信息.ID = 收费通知单信息.合同单元ID) INNER JOIN (收费项目表 INNER JOIN 收费通知单清单信息" & _
" ON 收费项目表.ID = 收费通知单清单信息.收费项目ID) ON 收费通知单信息.ID = 收费通知单清单信息.收费通知ID" & _
" where 收费通知单信息.单据年月='" & txtDate.Text & "' and 收费通知单清单信息.收费项目ID in (" & tempQuery
SQL = Left(SQL, Len(SQL) - 1) & ") order by 合同信息.客户名称"
Set RS明细对帐单 = DB.OpenRecordset(SQL)
DisplayList 1

tempQuery = ""
Close
'应付统计
Open App.path & "\应付.ini" For Input As #1
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, sReadline ' Read line into variable.
tempQuery = tempQuery & sReadline & ","
Loop
Close #1
SQL = "SELECT 合同信息.客户名称, 合同单元信息.单元名称, 收费项目表.项目名称, 收费通知单清单信息.本月应收" & _
" FROM ((合同信息 INNER JOIN 合同单元信息 ON 合同信息.ID = 合同单元信息.合同ID) INNER JOIN 收费通知单信息 ON" & _
" 合同单元信息.ID = 收费通知单信息.合同单元ID) INNER JOIN (收费项目表 INNER JOIN 收费通知单清单信息" & _
" ON 收费项目表.ID = 收费通知单清单信息.收费项目ID) ON 收费通知单信息.ID = 收费通知单清单信息.收费通知ID" & _
" where 收费通知单信息.单据年月='" & txtDate.Text & "' and 收费通知单清单信息.收费项目ID in (" & tempQuery
SQL = Left(SQL, Len(SQL) - 1) & ") order by 合同信息.客户名称"
Set RS明细对帐单 = DB.OpenRecordset(SQL)
DisplayList 2
'MyErr:
' 'MsgBox Err.Number & Err.Description
' If Err.Number = 3075 Then
' Beep
' MsgBox "请选择收费项目! " vbOKOnly + vbCritical, "错误"
' ElseIf RS明细对帐单.RecordCount < 0 Then
' MsgBox "您输入的年月有误!", vbOKOnly+vbCritical, "错误"
' End If
Case 1
frm收费项目设置.Show 1
Case 2
frm收付汇总报表.Show 1
Case 3
Unload Me
End Select
End Sub
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
koalaNet 2003-11-13
  • 打赏
  • 举报
回复
up
pegdw 2003-11-13
  • 打赏
  • 举报
回复
342
rrqq 2003-07-18
  • 打赏
  • 举报
回复
实在太复杂,你可以通过对recordset.eof进行控制,而尽量不要用错误来铺捉,而且最好能写成几个函数,这样流程比较清晰一些

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧