Denciso

Hombre, totalmente nuevo en Visual Basic aunque he programado bastante en VBA. El asunto es el siguiente: en un form tengo un textbox y un botón, necesito que al oprimir el botón, me abra una ventada de explorar (¿browsefolder?) Luego de que el usuario seleccione el folder me coloque la ruta seleccionada en el textbox, posteriormente necesito copiar la carpeta indicada con todo su contenido en un servidor, pero digamos que lo importante es lo primero.

2 Respuestas

Respuesta
1
Antes que nada, disculpa por la demora, pero he estado corto de tiempo estos días...
Lo que debes usar es un control llamado CommonDialog CONTROL que no esta en la barra de controles en forma predeterminada, haz lo siguiente:
Clic con el botón derecho en la barra de controles de formularios... componentes, en la lista que aparecerá seleccionas "Microsoft CommonDialog control 6.0".
Luego lo agregas al formulario como cualquier control, solo que no puedes asignarle un tamaño. Es un control que no se ve en tiempo de ejecución hasta que no se lo convoca para su uso.
Para usarlo como explorador de carpetas debes ejecutar la instrucción: CommonDialog1. ShowOpen
Esto abre la ventana que buscas.
Ahora bien, luego de la selección del archivo, puede suceder dos cosas, que se haya hecho clic en ACEPTAR o CANCECLAR.
Luego de hacer clic en ACEPTAR, en la propiedad del control llamada FILETITLE estará el nombre del archivo seleccionado, pero solo el nombre, no la ruta de acceso. Si quieres la ruta de acceso con el nombre incluido, usa la propiedad FILENAME. Hay muchas cosas más a tener en cuenta.
Por ejemplo, ve el siguiente código:
Private Sub Command1_Click()
CommonDialog1.ShowOpen
Form1.Caption = CommonDialog1.FileName
End Sub
Acá, se verá la ruta con el nombre del archivo como titulo del formulario, pero si se hace clic en CANCELAR, también se ejecutará la mimsa instrucción, para lo cual no es lo correcto.
Esto se corrige poniendo al principio una instrucción para capturar unn error (el que provoca el botón CANCELAR del la caja de dialogo), para que, al capturarlo, no se ejecuten las lineas que están inmediatamente después de "CommonDialog.ShowOpen".
la intrtuccion completa quedaria asi:
Private Sub Command1_Click()
CommonDialog1.CancelError = True
On Error GoTo ErrorCancelar
CommonDialog1.ShowOpen
Form1.Caption = CommonDialog1.FileName
ErrorCancelar:
If Err.Number = cdlCancel Then Exit Sub
End Sub
CdlCancel es el numero (creo que el 32536), de error que provoca el botón CANCELAR.
De esta forma, si el usuario hacec clic en CANCELAR para cerrar la ventana de exploración sin elegir ningún archivo, la captura de error hace que el programa se ejecute en la linea "if err.nunmber..." y no ejecutaría la linea "Form1.Caption..."
Espero que te sirva, de cualquier forma, este control también sirve para todas las ventanas del sistema que ves por ahí...
Prueba con
CommonDialog1. ShowPrinter
CommonDialog1. ShowColor
Ve la ayuda de VB que esta muy bien documentada para este control
Suerte !
Respuesta
1
Para eso requieres agregar un control llamado common dialog que te permite que el usuario seleccione directamente el directorio o carpeta y después tu puedes leer la ruta para que realices las operaciones que quieras, borrar archivos, copiar, crear etcétera, también es conveniente que agregues una referencia a microsoft scripting runtime para que manejes de forma cómoda los directorios.
e-mail: [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas