Obtener nombre de función en ejecución |
Responder |
Autor | |
simbad
Nuevo Unido: 10/Mayo/2006 Localización: España Estado: Sin conexión Puntos: 27 |
Tema: Obtener nombre de función en ejecución Enviado: 29/Abril/2019 a las 22:58 |
Hola:
Quiero hacer estadísticas con las funciones que más uso en mis aplicaciones de Access. La idea es que mediante un procedimiento o función quede registrado en una tabla el nombre del procedimiento o de la función que ha sido llamada y un contador de llamadas. Lo que pasa es que no consigo obtener el nombre del procedimiento o función que se está ejecutando en tiempo real. Desconozco si existe algún método al estilo de 'Me.Name' de los formularios. En la pila de llamadas aparecen todos los procedimientos y funciones recorridas. Y en la ventana de inmediato los nombres de las funciones también aparecen. ¿Cómo puedo capturarlos?. Gracias.
|
|
deneg_nhj
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 03/Septiembre/2012 Localización: Mexico Estado: Sin conexión Puntos: 112 |
Enviado: 30/Abril/2019 a las 01:49 |
'-- Registrar las llamadas que tiene una Subrutina Sub sbabc_HaceAlgo() sbRegUso "abc_HaceAlgo" '-- Aquí va tu rutina tu rutina A = A + A .. .. etc.. end sub sub sbRegUso (pmt_nomRutina as string ) '-- En la tabla xTablaLog, tendrás el registro del uso Currentdb "Insert into xTablaLog(Campo_NomRutina, Fecha) values '" & pmt_nomRutina & ", now() ") en sub La he escrito de memoria, así que solo corrige, Saludos! deneg |
|
Especializado en Microsoft Access, SQL SERVER y Excel
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14720 |
Enviado: 30/Abril/2019 a las 13:20 |
Desde Access no es posible acceder al nombre del procedimiento. No existe un (me lo invento) ActiveProcedure.Name
Esa "carencia" hace que lo que pidas sea laborioso de implementar... salvo si utilizas MZ-Tools que te permite hacer eso con un solo clic (previa configuración en la biblioteca de código) Un saludo
|
|
javier.mil
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 10/Agosto/2005 Localización: España Estado: Sin conexión Puntos: 4812 |
Enviado: 30/Abril/2019 a las 14:02 |
Buenas Creo que la soluciones que te dieron son las simple, perooooo si quieres probar y modificar el siguiente código estaría bien que luego nos digas como lo has hecho En principio si se podria pero añadiendo la Referencia o Libreria Microsoft Visual Basic for Applications Extensibility 5.3 , Sub XecEsFuncionIncreible() ' REFERENCIA Microsoft Visual Basic for Applications Extensibility 5.3 Dim KodModulo As CodeModule Dim lngOption As Long Dim lngKod As Long Dim strAd2 As String Set KodModulo = Application.VBE.ActiveCodePane.CodeModule For lngKod = 1 To KodModulo.CountOfDeclarationLines If InStr(1, KodModulo.Lines(lngKod, 1), "Option Explicit", vbTextCompare) = 0 Then lngOption = lngOption + 1 End If Next lngKod lngOption = KodModulo.CountOfDeclarationLines - lngOption For lngKod = 1 To KodModulo.CountOfLines strAd2 = KodModulo.Lines(lngKod + lngOption, 1) If VBA.Left(strAd2, 3) = "Sub" Then strAd2 = Mid(strAd2, 5, Len(strAd2) - 6) GoTo Exit_Local End If Next Exit_Local: MsgBox strAd2 Set KodModulo = Nothing End Sub |
|
simbad
Nuevo Unido: 10/Mayo/2006 Localización: España Estado: Sin conexión Puntos: 27 |
Enviado: 30/Abril/2019 a las 16:15 |
Gracias.
Probaré y os comentaré resultados. Editado por simbad - 30/Abril/2019 a las 16:18 |
|
simbad
Nuevo Unido: 10/Mayo/2006 Localización: España Estado: Sin conexión Puntos: 27 |
Enviado: 20/Junio/2019 a las 01:19 |
Gracias por la ayuda.
Al final me decanto por la solución de deneg_nhj. en cada función y procedimiento incluyo código que llama al procedimiento que archiva el nombre en una tabla. Con el tiempo la tabla se va llenando y puedo saber qué código es el más usado. Gracias.
Editado por simbad - 20/Junio/2019 a las 01:21 |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |