Error de Compilación 2007

33 views
Skip to first unread message

Ceac

unread,
Sep 10, 2008, 4:30:11 AM9/10/08
to

Hola,

Esta vez tengo un problema de compilación, el error textualmente dice asi:

"Error de compilación: Es necesaria una variable: no se puede asignar esta
expresión"

El compilador se detiene en la instrucción "DIR" de la siguiete fución:

Public Function getAppPath() As String
getAppPath = Left(CurrentDb.Name, Len(CurrentDb.Name) -
Len(Dir(CurrentDb.Name)))
End Function

Hace poco probe la aplicación en el Runtime 2007 y entregaba un error de
ejución asi que me aconsejaron mirar las referencias, faltaba una de nombre
Microsoft Windows common controls 2.60 SP4 en el equipo XP, Que es diferente
a el que trabajo en vista. Pues bien ya no encuentro la referencia en mi
equipo vista. ¿Será esa la razon del error en DIR?

Gracias por la ayuda.

--
Saludos !!!

César Augusto Cardona
masterpublico[ARROBA]gmail[PUNTO]com
Cali-Colombia

Ju@nK [MVP 2005/8]

unread,
Sep 10, 2008, 4:49:37 AM9/10/08
to
Al copiar y pegar me daba algun error, sin embargo borrando y volviendo a
escribir, funciona en 2007, aunque todo eso lo puedes suprimir y utilizar
CurDir, obtendrás el mismo resultado ;-)

--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/08
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com
**
"Ceac" <Ce...@discussions.microsoft.com> escribió en el mensaje
news:A9B45E20-9EFB-435A...@microsoft.com...

Ceac

unread,
Sep 10, 2008, 10:38:01 AM9/10/08
to
Gracias Ju@nk, Funciona bien. Pero no fuciono volviendolo a escribir sino
cambiandolo por CurDir. La cuestion es que lo tengo en algunos forms y otros
modulos ¿Tengo que cambiarlos en todos o solo en los que el compilador marque
error?

Gracias.
--
Saludos !!!

César Augusto Cardona
masterpublico[ARROBA]gmail[PUNTO]com
Cali-Colombia

Patxi Sanz

unread,
Sep 10, 2008, 12:27:17 PM9/10/08
to
Supongo que la función es la que usas en otros formularios y módulos. Al
modificarla, el resto de formularios y módulos usan la función modificada,
por lo que no entiendo eso de cambiarla en otros sitios ¿?

Por cierto, CurrentProject.Path devuelve la ruta donde se encuentra la base
de datos. CurDir devuelve la ruta actual o activa, que puede ser alterada si
usamos otras funciones del tipo ChDir, ChDrive, MkDir, ...

--
Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
http://es.geocities.com/patxisanz/index.html
Tudela (NA)

Ceac

unread,
Sep 10, 2008, 3:16:01 PM9/10/08
to

--
Saludos !!!

César Augusto Cardona
masterpublico[ARROBA]gmail[PUNTO]com
Cali-Colombia


"Patxi Sanz" escribió:

Ceac

unread,
Sep 10, 2008, 3:22:06 PM9/10/08
to
Hola Patxi Sanz,

Claro se podria enteder asi, pues no he hablado nada mas que de la función.
No me refiero a otras subrutinas o codigos independientes de la función donde
tengo DIR. por ejemplo tengo en otro form un codigo similar a este:

MkDir "C:\MG"

De alli mi pregunta ¿Si el cambio influye en los demas o solo donde el
compilador marca el DIR?

Gracias...
--
Saludos !!!

César Augusto Cardona
masterpublico[ARROBA]gmail[PUNTO]com
Cali-Colombia


"Patxi Sanz" escribió:

Patxi Sanz

unread,
Sep 11, 2008, 11:50:59 AM9/11/08
to
Cuando usas MkDir, creas una nueva carpeta, pero no se apunta a la nueva
carpeta. Sólo se apuntará a la nueva carpeta si cambias, ya sea con ChDir o
con ChDrive. Y, por supuesto, estos cambios se reflejarán en todo el
proyecto.

A ver si con un ejemplo me explico mejor. Supongamos que ejecutamos las
siguientes instrucciones en la Ventana Inmediato del VBA:

? CurDir
MkDir "Test"
? CurDir
ChDir "Test"
? CurDir

Verás que hasta que no hemos usado ChDir, no ha cambiado el directorio
actual. Pero, ¿las modificaciones se reflejan en los demás sitios del
projecto? Pues si en un formulario, colocamos un cuadro de texto y un botón
que al pulsarlo, refleje en el cuadro de texto el directorio actual
(CurDir), veremos que si vamos cambiando de carpeta en otras partes del
projecto (incluida la ventana Inmediato), esos cambios también se reflejan
en el formulario.

De ahí mi anterior opción: si necesitas saber en qué carpeta se encuentra la
base de datos, es preferible usar CurrentProject.Path, que no se ve alterado
por estas "cosillas".

Ceac

unread,
Sep 11, 2008, 6:48:00 PM9/11/08
to
Hola Patxi Sanz,

Ahora comprendo mejor lo que quieres decir. Interesante no sabia que
problemas existian con CurDir en el proyecto si ese es el caso entonces es
preferible usar CurrentProject.Path


Gracias Patxi por tus opotunos consejos...

--
Saludos !!!

César Augusto Cardona
masterpublico[ARROBA]gmail[PUNTO]com
Cali-Colombia


"Patxi Sanz" escribió:

> Cuando usas MkDir, creas una nueva carpeta, pero no se apunta a la nueva

Patxi Sanz

unread,
Sep 12, 2008, 10:40:53 AM9/12/08
to
De nada :-)
Reply all
Reply to author
Forward
0 new messages