clave de red

11/03/2009 - 18:51 por Fredy Rojas A. | Informe spam
buenos dias..
tengo la siguiente situacion:
una aplicacion en excel cuando abre ncesita copiar un archivo que esta en
red.. al tratar de conectarse a z:/ sale error .. claro ! porque la conexion
requiere de una contrasena.. la cual en excel no se ha definido ( no se donde
debe definirse), lo que hago entonces es abrir el explorador y conectarme el
disco z:/ ( en el explorador me piede la clave) de ahi vuelvo a ejecutar el
archivo y como la clave ya fue dada en el explorador.. ahi si funciona la
copia del archivo que esta en red...

como puedo evitar este error .. es decir como le doy la clave de red por VBA
este es el codigo que estoy utilizando

sub copiar
ARCHIVOFUENTE = "z:\GEOLOGIA\INYECCIONES\BASE DE DATOS\Base de datos1.mdb"
archivoDESTINO = "C:\Temp\Base de datos1.mdb"

FileCopy ARCHIVOFUENTE, archivoDESTINO
end sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/03/2009 - 06:00 | Informe spam
hola, Fredy !

una aplicacion en excel cuando abre ncesita copiar un archivo que esta en red.
al tratar de conectarse a z:/ sale error... porque la conexion requiere de una contrasena.
la cual en excel no se ha definido (no se donde debe definirse)
lo que hago... es abrir el explorador y conectarme el disco z:/ (en el explorador me piede la clave)
... vuelvo a ejecutar el archivo y... si funciona la copia del archivo que esta en red...
como puedo evitar este error .. es decir como le doy la clave de red por VBA este es el codigo que estoy utilizando
sub copiar
ARCHIVOFUENTE = "z:\GEOLOGIA\INYECCIONES\BASE DE DATOS\Base de datos1.mdb"
archivoDESTINO = "C:\Temp\Base de datos1.mdb"
FileCopy ARCHIVOFUENTE, archivoDESTINO
end sub



una (posible) alternativa es usando el metodo "sendkeys", que tiene la (des)ventaja de que:
al combinarse con instrucciones "en secuencia" el metodo se ejecutaria solamente:
a) al terminarse la ejecucion de todas las instrucciones en el procedimiento que lo contiene...
b) en el momento en que "salta" algun dialogo que demande la interaccion con el usario

proablemente habria que dar un tiempo "de espera", segun lo que tarde en mostrarse el dialogo que pide la contrasena
y ajustar la secuencia de teclas (p.e.) si la solicitud de contrasena tiene algun boton al que debiera moverse el foco)
(y tampoco es lo mas confiable que se podria usar) -???-

asumiendo que al mostrarse el dialgo puedes "pulsar" simplemente la clave y el {enter} -???-
prueba con la siguiente instruccion ANTES de la instrucion "FileCopy ..." de tu macro:

application.sendkeys "aqui tu clave~"

el signo ~ representa el {enter} del teclado, o puedes cambiar a:
application.sendkeys "aqui tu clave{enter}"

o puedes simular "pulsar" la tecla {tab} y un espacio (p.e. poner el foco en algun boton y "clicarlo" con la barra espaciadora)
application.sendkeys "aqui tu clae{tab} "

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 fredy
12/03/2009 - 16:39 | Informe spam
Hola Hector Miguel gracias por atender mi inquietud...

informacion adicional:
en la aplicacion, durante la solicitud de conexion al disco z:/ no sale
ningun cuadro de dialogo..para utilizar el metodo "sendkeys"; quisiera
entonces hacer la conexion de red al disco z:/ desde excel escribiendo en el
codigo vba el usuario y la clave como puedo hacer esto sin requerir el cuadro
de dialogo de conexiones de red??

muchas gracias

Fredy Rojas

Héctor Miguel" wrote:

hola, Fredy !

> una aplicacion en excel cuando abre ncesita copiar un archivo que esta en red.
> al tratar de conectarse a z:/ sale error... porque la conexion requiere de una contrasena.
> la cual en excel no se ha definido (no se donde debe definirse)
> lo que hago... es abrir el explorador y conectarme el disco z:/ (en el explorador me piede la clave)
> ... vuelvo a ejecutar el archivo y... si funciona la copia del archivo que esta en red...
> como puedo evitar este error .. es decir como le doy la clave de red por VBA este es el codigo que estoy utilizando
> sub copiar
> ARCHIVOFUENTE = "z:\GEOLOGIA\INYECCIONES\BASE DE DATOS\Base de datos1.mdb"
> archivoDESTINO = "C:\Temp\Base de datos1.mdb"
> FileCopy ARCHIVOFUENTE, archivoDESTINO
> end sub

una (posible) alternativa es usando el metodo "sendkeys", que tiene la (des)ventaja de que:
al combinarse con instrucciones "en secuencia" el metodo se ejecutaria solamente:
a) al terminarse la ejecucion de todas las instrucciones en el procedimiento que lo contiene...
b) en el momento en que "salta" algun dialogo que demande la interaccion con el usario

proablemente habria que dar un tiempo "de espera", segun lo que tarde en mostrarse el dialogo que pide la contrasena
y ajustar la secuencia de teclas (p.e.) si la solicitud de contrasena tiene algun boton al que debiera moverse el foco)
(y tampoco es lo mas confiable que se podria usar) -???-

asumiendo que al mostrarse el dialgo puedes "pulsar" simplemente la clave y el {enter} -???-
prueba con la siguiente instruccion ANTES de la instrucion "FileCopy ..." de tu macro:

application.sendkeys "aqui tu clave~"

el signo ~ representa el {enter} del teclado, o puedes cambiar a:
application.sendkeys "aqui tu clave{enter}"

o puedes simular "pulsar" la tecla {tab} y un espacio (p.e. poner el foco en algun boton y "clicarlo" con la barra espaciadora)
application.sendkeys "aqui tu clae{tab} "

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
15/03/2009 - 02:26 | Informe spam
hola, fredy !

informacion adicional:
en la aplicacion, durante la solicitud de conexion al disco z:/ no sale ningun cuadro de dialogo.
para utilizar el metodo "sendkeys"; quisiera entonces hacer la conexion de red al disco z:/ desde excel
escribiendo en el codigo vba el usuario y la clave como puedo hacer esto sin requerir el cuadro de dialogo de conexiones de red?



(me temo que) este tema pasa a ser de sistema operativo, y poco (o nada ?) "que ver" con excel -?-
(probablemente) haciendo algunas llamadas a las API's de windows, revisa esta informacion:

Visual Basic Network Services
WNetAddConnection2: Transparently Connect to Network Shares
http://vbnet.mvps.org/code/network/...ction2.htm

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida