Problemas con el MDE

Hola. ¡Al ataque de nuevo!
Siguiendo tus sabios consejos, creé un MDE al que empezaron a acceder mis usuarios. Llevo varías semanas con ello y empiezo a tener errores de esos "inexplicables"...
De repente parece que "pierde" en enlace evento-códigoasociado y empieza a decirme que la "expresión al hacer click no tiene un evento válido... " o algo
"asín".
La solución es fácil. Sustituyo el MDE por uno "fresco" y todo vuelve a funcionar.
He detectado que el MDE "crece" conforme se va usando, y eso me tiene un poco mosqueado... Supongo que creará tablas temporales o algo así, pero me gustaría que no se modificara... (¿estaré pidiendo un .exe compiladito?)
¿Qué demonios me está pasando Dr.? Alguna sugerencia...
De momento he quitado el MDE y he vuelto al MDB, y tengo otra posibilidad, que es copiar cada vez que accede el usuario un MDE fresquito en su disco duro local, (salvo que hacer esto supone mover 3 megas cada vez que abren la base)...
Un saludo (dos si son pequeños)...

1 respuesta

Respuesta
1
¿Un solo mde?.
Lo lógico sería un mde en cada puesto sólo con el código, los formularios, etc. accediendo a los datos ubicados en el servidor que pueden estar en mde o en mdb, indiferentemente. No unúnico mde al que van accediendo los usuarios.
Si lo has hecho exactamente así, entonces no sé qué es lo que puede causar el error :(.
Bueno. Me pillaste... El caso es que sí que es un MDE sólo. Creí que solucionaría algo metiendo un MDE. Iluso de mí, no pensaba que los MDE pudieran "crecer", al ir pre-compilado pensaba que abrirlo no produciría "temporales" en la base...
En fin, estoy con un proyecto en marcha que consiste en compilar un pequeño programa de Visual Basic que copie el MDE al local SÓLO SI HA SIDO MODIFICADO y lance la aplicación en local... El problema es que si cierro la instancia del .exe se cierra también el access, y como estoy pez en Visual, ando un poco perdido... ¿que tal vas tú? ¿Puedes ayudarme?
Dim mi_objeto, mi_archivo
Set mi_objeto = CreateObject("Scripting.FileSystemObject")
Set mi_origen = mi_objeto.getfile("\\red\archivo.mde")
If Not (mi_objeto.folderexists("c:\ruta")) Then
mi_objeto.createfolder ("C:\ruta")
End If
If mi_objeto.fileexists("c:\ruta\archivo.mde") Then
Set mi_archivo = mi_objeto.getfile("c:\ruta\archivo.mde")
If mi_archivo.datelastmodified <> mi_origen.datelastmodified Then
mi_objeto.copyfile "\\red\archivo.mde", "c:\ruta\archivo.mde"
End If
Else
mi_objeto.copyfile "\\red\archivo.mde", "c:\ruta\archivo.mde"
End If
Call Shell("C:\Archivos de programa\Microsoft Office\Office\MSACCESS.EXE c:\ruta\archivo.MDE /wrkgrp \\red\archivo_de_grupo.mda")
' aquí lanza una instancia de access y todo va bien...
Me.Close 'esto debería cerrar el programita exe pero quiero que DEJE ABIERTO EL ACCESS y sin embargo me lo cierra...
Ayúdame!
Apolillado tengo el VB de no usarlo; la última vez habrá sido hace un par de años y una cosa muy sencillita, para lanzar unos programas en Access.
Yo lo solucioné no cerrando la aplicación VB (ocupa muy poco en memoria), aunque en realidad su misión era hacer de menú y tampoco era necesario cerrarla.
Seguramente podrás abrir access sin usar Shell (Concha, se ejecuta un programa dentro de otro como dentro de una concha) usando un hipervínculo. No lo he hecho nunca por código, pero casi seguro que con el método followhyperlink lo consigues.
Finalizo la consulta por que no tengo más remedio. (Todoexpertos no me deja enviar una aclaración pasada una semana)...
El caso es que intento usar hyperlink.navigateto, pero me dice que indique el objeto al que aplicar este método... :(
En cuanto a followhyperlink, parece que es una opción sólo en VB para Aplicaciones, no para VB puro...
snif... sugerencias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas