vb6、vbA返回错误行号的系统变量Erl

来源:互联网 发布:iphone自动读书软件 编辑:程序博客网 时间:2024/06/05 05:26

access 导出表结构 ,我下载了 一位网友的程序 修改时 发现 老是 3720 错误,于是查询 解决方法,没想到 发现了 VB6 VBA 返回错误行号 的 系统变量Erl,在某些情况下 非常有用,当然下面的程序,是在没有发现Erl前写的,网友可以参考,使用Erl 更简单, 你也可以 直接 resume。感谢各位网友。

==============

vb6并不提倡使用Erl所以它是隐藏的且VB6MSDN中无说明。

你写了N年程序大概也不会有几个挂行号的吧(除非你写GWBASIC)。

access 导出表结构 ,我下载了 一位网友的程序 修改是 发现

            '添加Excel工作表
            If qdfLoop.Type = 0 Then '如果是选择查询
                Set objSheet = objBook.Worksheets.Add
                objSheet.Name = sSheetName
                lngRow = 2
                i = 0
                With objSheet
                    .range("A1") = sTableName
                    .range("A1").Font.FontStyle = "Bold"
                    .Hyperlinks.Add Anchor:=.cells(1, 2), address:="", SubAddress:="查询说明书目录!A1", TextToDisplay:="返回目录"
                    .range("A2") = "序号"
                    .range("B2") = "字段名称"
                    .range("C2") = "数据类型"
                    .range("D2") = "标题"
                    .range("E2") = "描述"
                    .range("F2") = "允许零长度"
                    .range("G2") = "缺省值"
                    .range("H2") = "必需"
                    
                    
                    For Each fld In qdfLoop.Fields
                        lngRow = lngRow + 1
                        i = i + 1
                        .cells(lngRow, 1) = i '序号
                        .cells(lngRow, 2) = fld.Name '字段名称
                        .cells(lngRow, 3) = GetQryFieldType(fld.Type) '字段类型
                        
                        n = 1
1                       .cells(lngRow, 4) = fld.Properties("Caption").Value

                        n = 2
2                       .cells(lngRow, 5) = fld.Properties("Description").Value


                        n = 3
3                       .cells(lngRow, 6) = fld.Properties("AllowZeroLength").Value

                        n = 4
4                        .cells(lngRow, 7) = fld.Properties("DefaultValue").Value
                        
                        n = 5
5                        .cells(lngRow, 8) = fld.Properties("Required").Value
                        
                        n = 6
6                        .cells(lngRow, 9) = fld.Properties("Size").Value
                        
                        n = 7
                        
                    Next fld
                End With

ErrorHandler:
    If Err.Number = 3270 Then

        Select Case n
        Case 1
            objSheet.cells(lngRow, 4) = ""
        Case 2
            objSheet.cells(lngRow, 5) = ""
        Case 3
            objSheet.cells(lngRow, 6) = ""
        Case 4
            objSheet.cells(lngRow, 7) = ""
        Case 5
            objSheet.cells(lngRow, 8) = ""
        Case 6
            objSheet.cells(lngRow, 9) = ""
            
        Case Else
            MsgBox "未处理的 找不到属性,请查看错误处理!"
            
        End Select