Mover carpeta

Quisiera saber si me puedes ayudar en lo siguiente: quiero con un botón en un formulario, mediante código mover la carpeta c:\salerno en la carpeta c:\documentos_compartidos\salerno
¿Es posible?
Respuesta
1
En un botón de tu formulario, pones el siguiente código:
Dim fs As New FileSystemObject
fs.MoveFolder "c:\salerno ", "c:\documentos_compartidos\salerno"
Set fs = Nothing
Debes añadir en las referencias del editor de VB una llamada a Microsoft Scripting Runtime.
Amigo, me sale error de compilación: no se ha definido el tipo definido por el usuario.
Y eso que añadí la referencia del editor de vb Microsoft Scriptig Runtime. ¿Qué sera?
Error en tu librería, parece.
También hay un comando llamado shell("ejecutable") desde el que puedes llamar al comando msdos que necesites para renombrar tus directorios.
Suerte

1 respuesta más de otro experto

Respuesta
1
base = "XCOPY " & origen & " " & destino
'Utiliza la función waitShell en vez de Shell para que espere a que acabe de hacer la copia para proseguir
WaitShell base, 0
La función waitshell es una API de windows que tienes que definir, coloca lo siguiente como un modulo, con el nombre que quieras.
Option Compare Database
Option Explicit
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &H5000 '&HFFFF
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Function WaitShell(AppName$, mode)
Dim hMod As Long, AppRoot As String
AppRoot = Left$(AppName$, InStr(AppName$ & " ", " "))
hMod = Shell(AppName$, mode)
If hMod <> 0 Then
WaitForTerm hMod
Else
MsgBox "No es pot engegar " & AppRoot
End If
End Function
Sub WaitForTerm(pid&)
Dim phnd&
phnd = OpenProcess(SYNCHRONIZE, 0, pid)
If phnd <> 0 Then
Call WaitForSingleObject(phnd, INFINITE)
Call CloseHandle(phnd)
End If
End Sub
Y ya esta, la funcion wait shell la puedes utilizar para cualquier comando dde DOS valido con la ventaja de que se espera a que acabe su ejecucion para seguir procesando instrcciones de access
Espero haberte ayudado y perdón por el retraso pero estaba de vacaciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas