Imprimir página | Cerrar ventana

descomprimir varios archivos .rar a carpeta

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86941
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: descomprimir varios archivos .rar a carpeta
Publicado por: carlosd
Asunto: descomprimir varios archivos .rar a carpeta
Fecha de publicación: 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





Respuestas:
Publicado por: lbauluz
Fecha de publicación: 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


Publicado por: carlosd
Fecha de publicación: 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))




Publicado por: Mihura
Fecha de publicación: 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.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: dokk
Fecha de publicación: 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



Imprimir página | Cerrar ventana