Access - Copiar PDF de carpeta de origen a destino al pulsar botón

 
Vista:

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Jaime (9 intervenciones) el 24/04/2017 15:18:49
Buenas,

Estoy trabajando en un base de datos y tengo una duda. Me gustaría pulsar un botón y abrir una ventana emergente que me permita seleccionar un archive PDF (sin importar el origen) y copiar dicho archivo a una ruta establecida por defecto.

Ejemplo:

1. Pulso botón "UPDATE" y se abre una ventana que me permite elegir un archivo PDF ubicado en mi equipo.
2. Se guarda una copia de este archivo en una carpeta de red.

Actualmente tengo un campo de mi tabla asociado a un cuadro de texto de un formulario. En este cuadro de texto se guarda la ruta del archivo PDF y con "FollowHyperlink" consigo acceder a él. Me gustaría no obligar a los usuarios a subir el archivo a la carpeta de red, sino que pudieran seleccionar el archivo dentro de su equipo y la base de datos se encargase de copiarlo en la carpeta predeterminada (ocultando todo este proceso al usuario final).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Norberto (753 intervenciones) el 24/04/2017 16:05:32
Hola.

Puedes usar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub UPDATE_Click()
    'Instalar Referencia Microsoft Office xx.x Object Library
    Const RutaPreestablecida = "D:\temp\" 'Poner la que proceda
 
    Dim Dlg As FileDialog, Doc As String, I As Integer
 
    Set Dlg = FileDialog(msoFileDialogFilePicker)
 
    With Dlg
        .Filters.Delete
        .Filters.Add "Documentos de Adobe Acrobat", "*.pdf"
        .FilterIndex = 2
        .AllowMultiSelect = False
        .ButtonName = "Seleccionar"
        .Title = "Seleccionar un archivo"
 
        If .Show Then
            Doc = .SelectedItems(1)
            I = InStrRev(Doc, "\")
            FileCopy .Doc, RutaPreestablecida & Mid(Doc, I) 'Si no existe la carpeta se producirá un error
        End If
    End With
 
    Set Dlg = Nothing
 
End Sub

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Jaime (9 intervenciones) el 25/04/2017 09:35:40
Buenas Norberto,

Me tira el siguiente error:

"Error de Compilación: No se encontró el método o el dato miembro"

1
FileCopy .Doc, RutaPreestablecida & Mid(Doc, I) 'Si no existe la carpeta se producirá un error

Me marca el error en el ".Doc"

Sabes a qué se debe?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Norberto (753 intervenciones) el 25/04/2017 10:32:38
Hola de nuevo y perdona por el error.

Sobra el punto delante del Doc.

1
FileCopy Doc, RutaPreestablecida & Mid(Doc, I) 'Si no existe la carpeta se producirá un error

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Jaime (9 intervenciones) el 25/04/2017 10:38:48
Gracias Norberto. Ya lo ví

Tengo otra pregunta. Actualmente recojo la ruta del archivo en un cuadro de texto de la siguiente forma:

1
2
3
4
5
6
7
8
9
10
Private Sub BotónRutaOrigen_Click()
Dim MiPath As String
'Recoge del módulo los parámetros con la función definida
'como DialogoComun y lo deja en la variable MiPath
'y MiPath se asigna finalmente al campo RutaPDF
    MiPath = DialogoComun(Me, "", "", "")
    If MiPath <> "" Then
        Me.RutaPDF = MiPath
    End If
End Sub

Cómo podría adaptarlo al código que me has pasado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Norberto (753 intervenciones) el 25/04/2017 11:37:16
Hola de nuevo.

Si la variable MiPath contine la ruta al archivo de origen, entre las lineas 8 y 9 añades
1
2
3
4
...
            I = InStrRev(MiPath, "\")
            FileCopy MiPath, RutaPreestablecida & Mid(MiPath, I)
...

y No te olvides de definir la variable I y cambiar RutaPreestablecida al valor que proceda.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Copiar PDF de carpeta de origen a destino al pulsar botón

Publicado por Jaime (9 intervenciones) el 25/04/2017 12:07:46
Muchas gracias Norberto. Funciona perfecto!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar