比如
Private Sub Command1_Click()
    msgbox me.name
End Sub这样可以返回该Form的名字
但是如何让过程里面返回这个过程的名字
如果只有一个地方,当然可以用Msgbox "Command1_Click"
可是我要使用在很多地方,一个一个加不切合实际,希望能够有me.name这样通用的语句

解决方案 »

  1.   

    设个全局变量nnn即使有你也得一个个加啊!
      

  2.   

    全局变量没有什么用的,我还是一个一个加啊
    我说说我为什么要这么做吧,可能可以用其他思路的
    我的工程在发布给用户前对出错的处理是这样的,在模块里面写一个过程,ErrRecord,参数只有一个,是String的,作用是将这个String以及Err对象的Number,Desc等记录在一个log文件里面
    而程序里面这么写
    private sub Command1_Click()
    On Error Goto errhandle
      ...
      exit sub
    errhandle:
      ErrRecord Me.Name
    end sub
    这样用户只要把log文件给我就可以知道哪些地方有错误而不影响用户的使用,但是现在仅仅可以得到出错的form或者class的名字,而并不能知道是哪个函数或者过程出错,这对Debug来说就非常累了,所以想能够记录下函数或者过程的名字,但是如果一个一个加,那工程就很浩大了。
      

  3.   

    没有你想要的不过可以这样
    Private Sub Command1_Click()
    msgbox command1_click
    End Sub
      

  4.   

    Private Sub Command1_Click()
    msgbox "command1_click"
    End Sub那就是每个地方都需要改了,总共大概有好几百个地方呢
      

  5.   

    慢慢改吧,一个小时,就能改完。
    为什么不
    ErrRecord Err.Description
    ErrRecord err.Number
    单记录过程名能看出什么啊?
      

  6.   

    慢慢改吧,一个小时,就能改完。
    为什么不
    ErrRecord Err.Description
    ErrRecord err.Number
    单记录过程名能看出什么啊?Err.Description和err.Number都在ErrRecord里面记录了,没有作为参数传递,因为多工程都是有效的
    之所以不一一改,一来觉得太无聊了,二来觉得这样的话,以后要再改点什么再一个一个改 ,这样太累了,我希望对这个过程的参数都有一致的源码,只要替换就可以了
      

  7.   

    楼主真的有意思
    我想如果就单单这样:Msgbox "所有的过程与函数"
    怕是很难的,至少我到现在也没有看过别人这样用过
    但不管怎么说,我也希望你能找到解决问题的真正办法
    期待你的佳音……
      

  8.   

    关键是要能够得到一个跟踪错误的好的方法,能够在不是Debug的状态下准确的知道是哪里出错了,似乎VB没有提供很好的方法
    err对象有一个Source属性,不过只返回出错的工程的名字,这有什么用啊
      

  9.   

    我在实际工作中用的就是DEBUG。PRINT,在写代码中判断正误的时候以后就用一次,这样一旦出错,在立即窗口就能看见哪儿出错了,这也是刚工作时前辈教给我的好习惯。
      

  10.   

    楼上的,这是在开发过程中Debug的方法,可是我需要的是发布给用户以后跟踪错误的方法,是Exe啊,怎么作debug.pring,哪里有什么立即窗口,更何况,我需要的是用统一的源码尽量精确的返回出错的位置,关键是这个问题。
      

  11.   

    查查app的三个属性和方法LogPath、LogMode、LogEvent
    也许对你有帮助
      

  12.   

    我是用自己写的Add-in,然后点一下菜单,就自动插入错误处理,当然也包括当前模块名以及函数名