Evaluar una expresión que crea un objeto.... cómo?

30/06/2003 - 11:34 por RonnyLab | Informe spam
Que tal, ñuseros:

Los calores del verano afectan a mi mente, y llevo dándole vueltas a esta
cuestión todo el fín de semana sin resultados positivos, a ver si alguien
tuvo el mismo problema con mejores resultados que yo.

La cuestión es que quiero crear un objeto definido por un módulo de clase
Access, pero la clase de este objeto es variable. Para ello se me ocurrieron
dos alternativas:

1. Mediante la función Eval: Set miObjTmp = eval("New " & cNbClase), pero
esta y otras alternativas con eval que he probado me da el error "Microsoft
Access no puede encontrar el nombre 'New' que introdujo en la expresión."

2. Mediante la función CreateObject: Set miObjTmp = Createobject(cNbClase),
pero esta alternativa me dice que "El componente ActiveX no puede crear el
objeto".

Me suena que existe otra función de evaluación, pero no recuerdo el nombre,
he estado buscando en la ayuda sin éxito.

Cualquier sugerencia es acogida de muy buen grado.

Un saludo y gracias.

Preguntas similare

Leer las respuestas

#1 marjan
30/06/2003 - 13:05 | Informe spam
Perdona mi ignorancia... ¿cuando y como declaras la variable objeto?

Saludos,
marjan

"RonnyLab" escribió en el mensaje
news:bdp023$c0n$
Mostrar la cita
ocurrieron
Mostrar la cita
"Microsoft
Mostrar la cita
nombre,
Mostrar la cita
#2 marjan
30/06/2003 - 16:26 | Informe spam
...pues mientras no viene Chea...

... aunque no acabo de entender lo que quieres (y tampoco creo que te
sirva...) ¿has mirado la colección Modules ? y si puedes referenciar el
objeto desde allí.

Saludos,
marjan

"RonnyLab" escribió en el mensaje
news:bdpb60$j2q$
Mostrar la cita
texto
Mostrar la cita
crear
Mostrar la cita
#3 Juan M Afan
30/06/2003 - 19:43 | Informe spam
Hola,

no estoy muy seguro de si es lo que preguntas, pero dices
que aquí

Set miObjeto2.uctTxt = Eval("Me." & Me.Texto0.Value)

es donde te falla el código (efectivamente, falla por lo
que tú comentas). Si mi suposición es correcta el valor de
Texto0 contendrá el nombre de otro cuadro de texto, ¿no?.
Si fuera así, creo que lo que te serviría sería este otro
tipo de asignación:

Set miObjeto2.uctTxt = Me.Controls(Me.Texto0.Value)

A ver si es eso.

Saludos,
happy


Mostrar la cita
commandbutton
Mostrar la cita
la asignación
Mostrar la cita
Me.Texto0.Value) '(*)
Mostrar la cita
devolver cadenas de texto
Mostrar la cita
en una sóla línea
Mostrar la cita
clases, poder
Mostrar la cita
variable objeto?
Mostrar la cita
mensaje
Mostrar la cita
data.net...
Mostrar la cita
dándole vueltas a
Mostrar la cita
positivos, a ver si
Mostrar la cita
por un módulo de
Mostrar la cita
Para ello se me
Mostrar la cita
("New " & cNbClase),
Mostrar la cita
da el error
Mostrar la cita
introdujo en la
Mostrar la cita
ActiveX no puede crear
Mostrar la cita
no recuerdo el
Mostrar la cita
#4 RonnyLab
30/06/2003 - 20:02 | Informe spam
Es correcto Juan y muchas gracias

Pero el objeto es que en Texto0.Value figure cualquier típo de módulo de
clase que tenga mi proyecto access por ejemplo cClientes.

Un saludo
"Juan M Afan" escribió en el mensaje
news:006b01c33f2f$2fbb4240$
Hola,

no estoy muy seguro de si es lo que preguntas, pero dices
que aquí

Set miObjeto2.uctTxt = Eval("Me." & Me.Texto0.Value)

es donde te falla el código (efectivamente, falla por lo
que tú comentas). Si mi suposición es correcta el valor de
Texto0 contendrá el nombre de otro cuadro de texto, ¿no?.
Si fuera así, creo que lo que te serviría sería este otro
tipo de asignación:

Set miObjeto2.uctTxt = Me.Controls(Me.Texto0.Value)

A ver si es eso.

Saludos,
happy


Mostrar la cita
commandbutton
Mostrar la cita
la asignación
Mostrar la cita
Me.Texto0.Value) '(*)
Mostrar la cita
devolver cadenas de texto
Mostrar la cita
en una sóla línea
Mostrar la cita
clases, poder
Mostrar la cita
variable objeto?
Mostrar la cita
mensaje
Mostrar la cita
data.net...
Mostrar la cita
dándole vueltas a
Mostrar la cita
positivos, a ver si
Mostrar la cita
por un módulo de
Mostrar la cita
Para ello se me
Mostrar la cita
("New " & cNbClase),
Mostrar la cita
da el error
Mostrar la cita
introdujo en la
Mostrar la cita
ActiveX no puede crear
Mostrar la cita
no recuerdo el
Mostrar la cita
#5 RonnyLab
01/07/2003 - 00:34 | Informe spam
Que tal, Juan.

La verdad es que estoy flipando con lo que os estoy quebrando la cabeza
jjejejejejejej, y el mérito es doble con el calor que hace

La solución que propones es correcta, soluciona el problema pero me gustaría
ir un poco más allá, el tema es que imaginate que para actualizar a un
cliente bastara con enviarle un módulo de clase y actualizar un registro en
una tabla con el nombre de ese módulo de clase a lo mejor con ese
ejemplo me explico un poco mejor.

Creo que el problema de todo esto es encontrar una función similar a Eval,
sé que existe, porque un día, hace muuuuuucho tiempo me pareció verla en la
ayuda o por Internet, no recuerdo, pero ahora no la encuentro o estaba
soñando aquel día

Sigo navegando en la ayuda y en Internet a ver si lo localizo... si lo
encuentro lo postearé en las News..

De todos modos, y lo digo de corazón, muchísimas gracias por vuestra
paciencia.
Ads by Google
Search Busqueda sugerida