** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - descomprimir varios archivos .rar a carpeta
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

descomprimir varios archivos .rar a carpeta

 Responder Responder
Autor
Mensaje
carlosd Ver desplegable
Habitual
Habitual


Unido: 18/Febrero/2023
Localización: cuba
Estado: Sin conexión
Puntos: 67
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita carlosd Cita  ResponderRespuesta Enlace directo a este mensaje Tema: descomprimir varios archivos .rar a carpeta
    Enviado: 31/Mayo/2024 a las 04:40
Un colaborador me ayudó con un código para el tema de  mi pregunta.
El objetivo es seleccionar varios comprimidos en .rar ubicados en una carpeta, y descomprimirlos en una carpeta definida y luego borrar los .rar, da un error que no he descifrado y el señor no me ha respondido nunca más.

Este es el código

Option Compare Database
Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = "D:\users\gonza\documentos\borrar\"
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All files", "*.rar"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function
Public Function Unrar(ByVal rarArchivePath As String, ByVal extractToFolder As String)
    Dim sh As Object
    Dim fSource As Object
    Dim fTarget As Object
 
    Set sh = CreateObject("Shell.Application")
 
    Set fSource = sh.NameSpace((rarArchivePath))
    Set fTarget = sh.NameSpace((extractToFolder))
 
    fTarget.CopyHere fSource.Items
 
End Function
Private Sub Comando5_Click()
Descripcion = buscaArchivo()
Call Unrar("" & Me.Descripcion & "", "D:\users\gonza\documentos\basespracticas\")
If MsgBox("¿Está seguro de eliminar el archivo comprimido original?", vbYesNo, "Luego no me eches la culpa, yo te avisé") = vbYes Then
Kill Me.Descripcion
End If
End Sub

el error

Error en el método 'NameSapace' de objeto 'IShellDispatch6'

en la línea

Set fSource = sh.NameSpace((rarArchivePath))
gracias de antemano


Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3878
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 31/Mayo/2024 a las 11:28
¿Y en qué línea da el error, qué mensaje de error es?

Un poquito de claridad ayudaría a que podamos ayudarte.

Un saludo.

Luis
El Búho es un pajarraco
Arriba
carlosd Ver desplegable
Habitual
Habitual


Unido: 18/Febrero/2023
Localización: cuba
Estado: Sin conexión
Puntos: 67
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita carlosd Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 31/Mayo/2024 a las 18:18
el error es acá

el error

Se ha producido el error '-2147467259' (8004005) en tiempo de ejecución
Error en el método 'NameSapace' de objeto 'IShellDispatch6'

el error lo da en esta línea

Set fSource = sh.NameSpace((rarArchivePath))




Editado por carlosd - 31/Mayo/2024 a las 18:19
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Junio/2024 a las 10:06
Eso método intenta crear una carpeta ... si ya existe te dará ese error.

Te diría que uses la línea de comandos propia de la aplicación de tratamiento de archivos rar que tengas en el equipo usando el Shell de Access.



Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
dokk Ver desplegable
Asiduo
Asiduo


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 201
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita dokk Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 03/Junio/2024 a las 10:30
¿Y si en lugar de hacer esos Set lo haces así?
sh.NameSpace(extractToFolder).CopyHere sh.NameSpace(rarArchivePath).Items

Albert Hostein
Aprendiendo cayendo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable