Hola Eduardo...he leido (En realidad he echado un vistazo rapido a este entrega...a ver si me lo leo con calma) y me han surgido algunas dudas.
La primera, no es una duda, sí quizá una matizacion sobre Enum. Creo que se debería poner en el escrito que este tipo de estructura no está disponible en VBA de Access 97.
Sobre la declaración Static. Apenas lo he utilizado de ahi que me hayan surgido algunas dudas. No son preguntas, mas que nada aclaraciones que yo mismo me he tenido que resolver ahora sobre la marcha por que tenia mis dudas.
(A) Tengo un Módulo de clase «Clase1» con un procedimiento Static HolaMundo y dentro de este procedimiento tengo declara una variable Dim N As Long
Si por necesidades yo instancio en un mismo programa (En un formulario, por ejemplo) varias veces el módulo de clase ...por cada nueva instancia del módulo de clase...¿Se crea un espacio independiente para las variables declaradas dentro de ese procedimiento, en este caso N?¿Se mezclan los valores de «N» al ser instanciada la clase dos veces siultaneamente?
Ya he visto que efectivamente por cada instancia abierta del modulo de clase, se crean espacios independientes de almacenamiento de la variable «N».
Es que como dudaba...mejor probar. ;-)
=============================
El ejemplo que acabo de hacer es crear un modulo de clase llamado Clase1 con
este simple codigo:
Option Explicit
Static Sub HOLAMUNDO()
Dim N As Long
N = N + 1
MsgBox N
End Sub
Luego en un formulario normal he puesto este código:
Dim contador As Long
Dim Miclase1 As Clase1
Dim Miclase2 As Clase1
Set Miclase1 = New Clase1
Set Miclase2 = New Clase1
For contador = 1 To 3
Miclase1.HOLAMUNDO
Miclase2.HOLAMUNDO
Next
En efecto...he observado que la variable N es «independiente» entre ambas clases (No se mezcla), pero sin ambargo, como bien decías, ya en en cada instancia concreta a la clase, el valor se va incrementado por el hecho de haber declarado el procedimiento «HolaMundo» como Static.
Ya te digo, que tenia mis dudas...y mejor probar que quedarme con la duda. Y me he permitido la licencia de escribirlo aqui....por si a alguien tambien le surgía dicha duda.
Otra cosilla...
(B) Declaracion dentro de un módulo estandar, de un procedimiento Static. Dentro de este procedimiento Static declaro Dim Mivariable
Entiendo que en este caso Mivariable, una vez que por primera entre en ese procedimiento, la variable ya no se destruirá hasta que cierre la aplicacion...¿Corecto? (Es que en este caso, entro en el modulo, corro el procedimiento, pero en contra de lo que pasaba con el modulo de clase, yo el modulo standar no puedo destruile (Por emplear alguna palabra)
En fin..una vez gracias por hacernos trabajar y aclarar conceptos... :-))
Editado por buho