Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Botón para buscar un archivo en una carpeta, copiarlo y en eescrit

880 views
Skip to first unread message

sebastico

unread,
Jan 12, 2010, 2:37:01 PM1/12/10
to
Hola Amigos
En Access 2003, tengo un formulario que muestra en un txtbox(txt1) códigos
que están almacenados en una Tabla (My Tabla). El formulario muestra los
datos de una consulta

En C:BD/A están almacenados los archivos que se muestren en el tex1. En el
formulario, necesito un botón que lea el código del archivo del txt1, que lo
busque en C:BD/A, lo copie y lo pegue o descargue en el escritorio.

Agradezco su ayuda.

kinito11

unread,
Jan 12, 2010, 3:20:01 PM1/12/10
to
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
hola, para buscar un archivo tienes la funcion Dir y para copiarlo y pegarlo
en otro sitio y renombrarlo si llegara el caso tiene la Apy CopyFile
--
Joaquín Ruiz Garcia


"sebastico" escribió:

sebastico

unread,
Jan 12, 2010, 6:40:01 PM1/12/10
to

Gracias Kinito11

He leído la ayuda de la función Dir y Apy CopyFile pero no encuentro como
hacer lo ahí indicado

El botón debe:
1. Inicio
2. Leer a la ruta indicada en el txt1
3. Buscar el archivo
4. Copiar el Archivo
5. Pegar el Archivo en el escritorio
6. Terminar

Este es un ejemplo de una ruta en el txt1 C:\BD\A\FR0021998RPT002.PDF

Me puedes orientar con el código que debe tener el botón.

Gracias de antemano

sebastico

unread,
Jan 12, 2010, 6:51:03 PM1/12/10
to
Hola Kinito11.

Gracias [por tu atenta respuesta.
He leído la ayuda pero no he podido incluir la función Dir y Apy CopyFile en
el código del botón (OnClick).

Según mi algoritmo el Botón debe:
1. Inicio
2. Leer el archivo desplegado en txt1 que tiene la Ruta
3, Ir a la Carpeta que tiene los archivos
4. Copiar al Archivo.
5. Pegar el archivo en el Escritorio
6. Salir.

Un ejemplo de la Ruta que muestra txt1 es:C:\BD\A\FR0021998RPT002.PDF

Me puedes orientar con el código.

Agradezco la ayuda

kinito11

unread,
Jan 13, 2010, 11:21:01 AM1/13/10
to
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
hola , aqui te dejo este codigo que acabo de hacer para que encuentres un
archivo y lo peges en el escritorio , solo tendras que cambiar las rutas y
poner las tuyas y con la apy de copyfile , el codigo en un boton y la apy en
la declaracion de varibles


Private Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA"
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long


On Error GoTo error
Dim retval As Long, pru1 As String, pru2 As String
Dim Nfso As Object 'Nuevo sistema de archivos de objetos
Dim Cpta As Object 'Carpeta
Dim Arvos As Object 'Archivos
Dim Arvo As Object 'Archivo
Dim RutaArvos As String
RutaArvos = "C:\BD\A" 'ruta de la carpeta de archivos
Set Nfso = CreateObject("Scripting.FileSystemObject")
Set Cpta = Nfso.getFolder(RutaArvos)
Set Arvos = Cpta.Files 'listado de los archivos
For Each Arvo In Arvos
If Me.txtnombrecontrol = Left(Arvo.Name, InStr(Arvo.Name, ".") - 1) Then '
aqui trabajo con las funciones left y instr para quitar la extension del
archivo
Debug.Print Arvo.Name
pru1 = Arvo
pru2 = "C:\Users\kinito\Desktop\" & Arvo.Name 'esta es la ruta de mi
escritorio cambiar por la tuya
retval = CopyFile(pru1, pru2, 1)
End If

Next
Set Arvos = Nothing
Set Cpta = Nothing
Set Nfso = Nothing

Sal:
Exit Sub
error:
MsgBox Err.Description
Resume Sal

sebastico

unread,
Jan 13, 2010, 1:45:01 PM1/13/10
to

Hola Kinito

He tratado de copiar el código que envías en el evento OnClick de mi botón,
sin embargo, las primeras lineas del código (indicadas abajo) se colorean de
rojo y muestra:
Compile error: Expected: end of statement

Private Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA"
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long

¿Cómo puedo arreglar este error de Compilación?

Muchas gracias

kinito11

unread,
Jan 13, 2010, 1:51:01 PM1/13/10
to
hola, eso es la Apy y no va con el codigo va debajo de
Option Compare Database
Option Explicit

Private Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA"
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long

Private Sub Comando2_Click()
el codigo (pero no la Apy)
End Sub

kinito11

unread,
Jan 13, 2010, 2:01:02 PM1/13/10
to
hola,

Option Compare Database
Option Explicit
Private Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA"
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long

Private Sub Comando5_Click()

End Sub

--
Joaquín Ruiz Garcia


"kinito11" escribió:

sebastico

unread,
Jan 14, 2010, 12:10:01 PM1/14/10
to
Hola kinito11

Finalmente he colocado el código, no da errores de compilación, sin embargo,
cuando doy click al botón se muestra un mensaje que dice: Path not Found.
Esto sin lugar a dudas es error de mi cosecha,

He copiado las dos rutas desde el explorador para evitar errores, pero, por
las dudas las incluyo en caso de que estén mal indicadas

RutaArvos = "C:\AB\A\Docs" 'ruta de la carpeta de archivos, en la Carpeta
Docs están los archivos

pru2 = "C:\Desktop\" & Arvo.Name 'esta es la ruta de mi escritorio

Por otra parten, revisando la Carpeta Docs, los archivos pdf no muestran la
extensión .pdf, he eliminado esta extensión de los archivos en la txtRuta
pero sigue mostrando Path not Found.

No se que he hecho mal. Me puedes orientar.

Salu2

kinito11

unread,
Jan 14, 2010, 2:12:01 PM1/14/10
to
hola, sin poder ejecutar el codigo paso a paso y ver donde esta el error es
muy dificil, pero creo que falta una barra\
RutaArvos = "C:\AB\A\Docs\" 'ruta de la carpeta de archivos, en la Carpeta

sebastico

unread,
Jan 16, 2010, 7:41:01 AM1/16/10
to

Hola

Al no poder arreglar l problema de la Ruta, seguyi investigando y ahra
tenf=go este otro codigo que pero tambien me da error conla ruta.

Private Sub txtf_Click()
Dim strDeskTop As String
'get path location to desktop
strDeskTop = CreateObject("Shell.Application").Namespace(&H10&).self.Path
FileCopy "c:\AB\A\Docs\" & Me.Docs, strDeskTop & "\" & Me.Docs
End Sub

En este caso Docs es el txtbox que tiene el archivo con la extensión .pdf

A pesar de que he copiado la ruta con el explorador al dar click al botón
VBA muestra este mensaje:

Run Time Error 76 Path not found.

¿Hay alguna herramienta o programa para probar el código para verificar que
funciona? He visto un programa que se llama Raptor, pero, no veo como
adaptarle los códigos de vba.

Sal2

kinito11

unread,
Jan 16, 2010, 9:21:01 AM1/16/10
to
hola , Path not Found, significa que no encuentra la ruta , alguna ruta no
estas poniendo bien , pon un punto de interrucion y ejecuta el proceso paso a
paso , de esta manera podras encontrar el error.

sebastico

unread,
Jan 16, 2010, 11:18:01 AM1/16/10
to

Gracias kinito 11.
Tengo Access 2003 en inglés. ¿Cómo pongo punto de interrupción?
Sal2

kinito11

unread,
Jan 16, 2010, 12:21:01 PM1/16/10
to
hola, abres tu editor de vba y donde tienes la primera linea de codigo del
boton F9 o en el menu Depuracion altenar punto de interrupcion , se pondra un
punto marron en la izquierda , luego vas a access y le das al boton , en ese
momento se pondra en amarillo la linea donde esta el punto de interrupcion y
con la tecla F5 vas ejecutando el proceseso paso a paso o linea a linea,
cuando lleges al for Each ejecutas una linea mas y luego pones el cursor del
raton en la variable Arvo y debes visualizar toda la ruta y veras si es
correcta o no , aqui te dejo una imagen para que te hagas una idea.
http://img694.imageshack.us/img694/7262/nuevo1t.jpg

sebastico

unread,
Jan 16, 2010, 8:17:01 PM1/16/10
to

Hola Kinito

He hecho varias veces lo indicado:
1. Abro Access,
2. Abro el formulario
3. Pongo el formularo en Diseño
4. Doy click al boton
5.Abro las propiedades del boton
6. Abro el Código
7. Coloco puntero en primera linea de codigo
8. Doy click a F9 y linea se colorea de marrón y aparece un punto a la
izquierda de la linea de código, pero fuera de la pantalla de escribir.
9. Abro el formulario en View, doy click al botón descargar.
10. Por acción anterior la linea de código toma color amarillo.
11. Al presionar F5 se muestra de inmediato:Path not Found , que me impide
seguir probando el código.

Como estoy aprendiendo a programar no tengo idea de lo que pasa.

De nuevo muchas gracias pro tu amabilidad.

kinito11

unread,
Jan 17, 2010, 4:29:01 AM1/17/10
to
hola, tienes que quitar el control de errores para poder seguir son estas
lineas las comentas .
On Error GoTo error
0 new messages