• Domingo 22 de Diciembre de 2024, 21:29

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Brroz

Páginas: 1 ... 36 37 [38] 39 40 ... 43
926
Visual Basic 6.0 e inferiores / Re: iconos
« en: Lunes 8 de Septiembre de 2003, 09:58 »
Kaixo! Friju

En tiempo de diseño: selecciona el formulario, en la ventana de propiedades (F6), elige desde la propiedad 'Icon' el icono que desees pulsando el botón con '...' o escribe directamente la ruta y nombre de archivo.
En tiempo de Ejecución: Form1.Icon = LoadPicture("C:RutaArchivo.ico")

Suerte.

927
Visual Basic 6.0 e inferiores / Listbox del Microsoft Forms 2.0
« en: Lunes 8 de Septiembre de 2003, 09:02 »
Fíjate en este código. Usando la propiedad List conseguiras lo que buscas:

Private Sub Form_Load()
    With ListBox1
        .AddItem "Columna_0-Fila_0", ListBox1.ListCount
        .List(ListBox1.ListCount - 1, 1) = "Columna_1-Fila_0"
        .AddItem "Columna_0-Fila_1", ListBox1.ListCount
        .List(ListBox1.ListCount - 1, 1) = "Columna_1-Fila_1"
    End With
End Sub

Suerte.

928
Visual Basic 6.0 e inferiores / enviar correos
« en: Lunes 8 de Septiembre de 2003, 08:45 »
Prueba entonces con los CONTROLES MAPI MapiSession/MapiMessages a ver que tal te va. Lo de MailTo, realmente es una solución poco efectiva.

Suerte.

929
Visual Basic 6.0 e inferiores / Re: comparar campos memo
« en: Lunes 8 de Septiembre de 2003, 08:43 »
En la mayoría de los SQL, el carácter comodín es '%'... haciendo la concatenación con '*' buscas una cadena del tipo " Cadena en la que busco* ". La comparación funciona así:

%Cadena%  -> 'Cadena' contenida en el texto.

%Cadena     -> 'Cadena a la derecha del texto (que el valor del campo termine en 'Cadena').

Cadena%    -> Que el texto comience por 'Cadena'.

Podrías probar usando el comodín de esta forma para buscar al comienzo y al final del campo:

...Find "LEFT(CampoMemo, Int(Longitud campo / 2)) LIKE " & cadena_a_buscar1 & "%" AND RIGHT(CampoMemo, Int(Longitud campo / 2)) LIKE %" & cadena_a_buscar2

Suerte.

930
Hola Carlos.

Puedes utilizar el objeto Printer.

Básicamente tendrás que controlar las propiedades CurrentX y CurrentY para indicar las coordenadas en las que imprimir, Font, Orientation, etc, etc... Para imprimir usa el método Print, para incluir imágenes PaintPicture y cuando tengas el listado completo: EndDoc para que comience la impresión.

Suerte.

931
Visual Basic 6.0 e inferiores / Drag & Drop
« en: Lunes 8 de Septiembre de 2003, 08:28 »
Para cambiar el icono que se visualizar al iniciar el arrastre debes usar la propiedad 'DragIcon' del ListBox asignándole el icono que más te convenga. Por ejemplo, para cambiar de icono en tiempo de ejecución, añade un control ListImage al form e incluye iconos para representar la operación drag, otro para drop y otro para indicar que drop no está permitido. Fíjate en el ejemplo:

'Arrastre sobre el formulario
Private Sub Form1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
    If Source.Name <> "List1" Then Exit Sub
    Source.DragIcon = ImageList1.ListImages("CLAVE_ICONO_NODROP").Picture
End Sub

'Arrastre sobre el treeview
Private Sub TreeView1_DragOver(Source As Control, x As Single, y As Single, State As Integer)
    If Source.Name <> "List1" Then Exit Sub
    Dim nod1 As Node
    Set nod1 = TreeView1.HitTest(x, y)
    If nod1 Is Nothing Then
        Source.DragIcon = ImageList1.ListImages("CLAVE_ICONO_NODROP").Picture
        Exit Sub
    End If
    If nod1.Key = "Valor_Clave_comparación" Then
        ImageList1.ListImages("CLAVE_ICONO_NODROP").Picture
    Else
        ImageList1.ListImages("CLAVE_ICONO_DROP").Picture
    End If
    Set nod1 = Nothing
End Sub

'Colocar sobre el treeview
Private Sub TreeView1_DragDrop(Source As Control, x As Single, y As Single)
    If Source.Name <> "List1" Then Exit Sub
    Dim nod1 As Node
    Set nod1 = TreeView1.HitTest(x, y)
    If nod1 Is Nothing Then Exit Sub
    If nod1.Key <> "Valor_Clave_comparación" Then TreeView1.Nodes.Add nod1.Key, tvwChild, , Source.List(Source.ListIndex)
    End If
    Set nod1 = Nothing
End Sub

A ver si esto te va bien.
Suerte.

932
Visual Basic 6.0 e inferiores / Re: retornar un recordset desde una clase
« en: Viernes 5 de Septiembre de 2003, 13:02 »
Creo que el problema lo tienes porque destruyes la referencia al objeto cConexion (set cn = Nothing) antes de tiempo. Si defines 'cn' a nivel de módulo y destruyes la referencia al objeto con el evento 'Terminate' de la clase en vez de al finalizar la función, tu problema debe quedar resuelto.

Suerte.

933
Visual Basic 6.0 e inferiores / Re: Drag & Drop
« en: Viernes 5 de Septiembre de 2003, 10:16 »
Hola SpeedCAD.

El ejemplo siguiente muestra cómo hacer una operación de arrastre de forma manual. El código por si solo no tiene mucho sentido, pero ya lo completarás tu adaptándolo a tus necesidades. Ahí va:

En un Form añado un ListBox y un TreeView a los que pongo la propiedad
DragMode y OLEDropMode , respectivamente, como manual.

********************************************
Option Explicit
Private indDrag As Boolean

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    On Error Resume Next
    If indDrag Then
        indDrag = False
        List1.Drag vbCancel
    End If
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If List1.ListIndex > -1 Then indDrag = True
End Sub

Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    On Error Resume Next
    indDrag = False
    List1.Drag vbCancel
End Sub

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Not indDrag Then Exit Sub
    If Button = 1 Then List1.Drag vbBeginDrag
End Sub

Private Sub TreeView1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
    If Source.Name <> "List1" Then Exit Sub
End Sub

Private Sub TreeView1_DragDrop(Source As Control, X As Single, Y As Single)
    If Source.Name <> "List1" Then Exit Sub
    TreeView1.Nodes.Add , , , Source.List(Source.ListIndex)
    List1.Drag vbEndDrag
    indDrag = False
End Sub

*********************************************

Ten encuenta detalles como definir el icono para el arrastre (propiedad DragIcon), controlar el arrastre sobre otros controles, ver sobre qué nodos permites colocar y cambiar de icono según se permita o no, etc.

Otra forma de realizar una operación de arrastrar/colocar es de forma automática.

Espero que todo esto te sea de utilidad.
Suerte.

934
Visual Basic 6.0 e inferiores / Re: enviar correos
« en: Viernes 5 de Septiembre de 2003, 09:38 »
Creo que entonces podrías usar los servicios de mensajería MAPI.

También existe otra forma de enviar correos de la que ahora mismo no recuerdo bien su uso. Era algo así como
'Shell "MailTo: Direccion@correo.es;Subject:xxxxx;Text:dasdasd "'. Le podía especificar Subject, text, etc. El inconveniente es que el correo no se envía de forma automática (por lo menos yo nunca fuí capaz), sino que se abre una pantalla del editor de correos que tengas configurado, eso sí, con los datos especificados en el 'MailTo'. Tal vez probando e investigando algo de esto consigas lo que buscas, sino... MAPI.

Desde luego lo ideal sería detectar el cliente de correo instalado en el pc y usar clases adecuadas a cada caso...

Chao.

935
Visual Basic 6.0 e inferiores / Codigo para Busqueda rapida dentro de ComBox
« en: Viernes 5 de Septiembre de 2003, 08:57 »
Prueba a ver si te vale esto:

Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
    On Error Resume Next
    If KeyCode < 32 Or KeyCode = 35 Or KeyCode = 36 Or KeyCode = 46 Then Exit Sub
    Dim int1 As Integer
    int1 = Len(Combo1.Text)
    Dim int2 As Integer, strW As String
    For int2 = 0 To Combo1.ListCount - 1
        strW = Combo1.List(int2)
        If UCase(Left(strW, int1)) = UCase(Combo1.Text) Then
            Combo1.ListIndex = int2
            Combo1.SelStart = int1
            Combo1.SelLength = Len(Combo1.Text) - int1
            Exit For
        End If
    Next int2
End Sub

Suerte.

936
Visual Basic 6.0 e inferiores / Re: wallace
« en: Viernes 5 de Septiembre de 2003, 08:37 »
Hola wallace.
Si no entiendo mal, tú problema es que quieres eliminar un registro/s de un grupo que identifican a un usuario... Puedes utilizar la/s correspondiente/s sentencia/s SQL (sql/400, por supuesto).

Si quieres eliminar todos los registros del usuario 4038 y el campo es CARÁCTER:
DELETE From Tabla1 WHERE LEFT(CampoX, 4) = '4038'

Si quieres eliminar todos los registros del usuario 4038 y el campo es NUMÉRICO:
DELETE From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038'

Si quieres eliminar el último de los registros y SABES CÚAL ES EL MAYOR nº DE FOLIO (con campos numéricos):
DELETE From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038' AND RIGHT(DIGITS(CampoX), 3) = '006'

Si quieres eliminar el último de los registros y NO SABES CÚAL ES EL MAYOR nº DE FOLIO (con campos numéricos):
'Primero obten en un recordset los registros ordenados del usuario:
Set rs1 = cmd1.Execute("SELECT From Tabla1 WHERE LEFT(DIGITS(CampoX), 4) = '4038' ORDER BY CampoX
'Posiciónate en el último registro (si los hubiera, claro):
rs1.MoveLast
'Ahora elima el registro:
cmd1.Execute "DELETE FROM Tabla1 WHERE CampoX =" & rs1.Fields("CampoX").Value

Espero que con estos ejemplos arregles. Suerte.

937
Visual Basic 6.0 e inferiores / Re: enviar correos
« en: Viernes 5 de Septiembre de 2003, 08:17 »
Si tienes instalado Outlook/Exchange, puedes incluir una referencia a la biblioteca de tipos correspondientes (o crear los objetos mediante CreateObject).
También podrías utilizar los servicios MAPI fácilmente usando los controles MapiSession/MapiMessages.

En este mismo foro, creo que podrás encontrar varios ejemplos de cómo implementar la mensajería.

Suerte.

938
Visual Basic 6.0 e inferiores / error en FTP
« en: Viernes 5 de Septiembre de 2003, 08:09 »
Hola Bea. ¿Las imágenes no tendrán el atributo de sólo lectura, verdad?

Mira a ver si es eso.

Suerte.

939
Visual Basic 6.0 e inferiores / Re: cambio de fila
« en: Jueves 4 de Septiembre de 2003, 11:21 »
Hombre... así sin saber más, podría ser un problema de DUPLICIDAD de CLAVES.

Suerte.

940
Visual Basic 6.0 e inferiores / Re: version demo
« en: Jueves 4 de Septiembre de 2003, 10:12 »
Podrías utilizar algo tal que así:

Para el ejemplo, crea un formulario y añádele dos 'CommandButton', uno para crear la clave en el registro y otro para comprobarla. Luego añade este código al form.

********************************************************************************
Option Explicit
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const REG_SZ = 1
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const NUMERO_DESPISTE = 32 'Por ejemplo
Private Const DIAS_PLAZO = 30 'También por ejemplo
Private Sub Command1_Click()
    RegistrarClaveSetup ValorClaveSetup()
End Sub
Private Sub Command2_Click()
    ChkClaveSetup
End Sub
Private Function ValorClaveSetup() As Long
    ValorClaveSetup = (Year(Now) + NUMERO_DESPISTE) * 10000& _
    + (Month(Now) + NUMERO_DESPISTE) * 100& + Day(Now) + NUMERO_DESPISTE
End Function
Private Sub RegistrarClaveSetup(ByVal Clave As String)
    Dim lngRc As Long, lngResult As Long
    lngRc = RegOpenKey(HKEY_LOCAL_MACHINE, "Software", lngResult)
    lngRc = RegCloseKey(lngResult)
    lngRc = RegCreateKey(lngResult, "SoftwareDeBea", lngResult)
    lngRc = RegCreateKey(lngResult, "AplicacionDeBea", lngResult)
    lngRc = RegSetValue(lngResult, "", REG_SZ, Clave, 0)
End Sub
Private Sub ChkClaveSetup()
    Dim strClave As String
    Dim intDia As Integer, intMes As Integer, intAnho As Integer
    strClave = RecuperarClaveSetup
    If Len(strClave) <> 8 Then
        MsgBox "Clave no válida"
        Exit Sub
    End If
    intAnho = Val(Left(strClave, 4)) - NUMERO_DESPISTE
    intMes = Val(Mid(strClave, 5, 2)) - NUMERO_DESPISTE
    intDia = Val(Right(strClave, 2)) - NUMERO_DESPISTE
    If DateDiff("d", Now, intDia & "/" & intMes & "/" & intAnho) <= DIAS_PLAZO Then
        MsgBox "Dentro del plazo"
    Else
        MsgBox "Plazo expirado"
    End If
End Sub
Private Function RecuperarClaveSetup() As String
    Dim lngRc As Long, lngResult As Long, strValor As String
    lngRc = RegOpenKey(HKEY_LOCAL_MACHINE, "Software", lngResult)
    lngRc = RegCloseKey(lngResult)
    lngRc = RegOpenKey(lngResult, "SoftwareDeBea", lngResult)
    strValor = String(255, 0)
    lngRc = RegQueryValue(lngResult, "AplicacionDeBea", strValor, 255)
    lngRc = RegCloseKey(lngResult)
    RecuperarClaveSetup = Left(strValor, InStr(1, strValor, Chr(0)) - 1)
End Function
********************************************************************************

Bueno, el ejemplo básicamente recupera la fecha actual y la pone como
aaaammdd tras sumarle un número (NUMERO_DESPISTE) a cada parte para que el valor en el registro no parezca una fecha (te podrías currar otro camuflage...). Escribes el valor camuflado en el registro en 'HKEY_LOCAL_MACHINE/SOFTWARE/SOFTWAREDEBEA/APLICACIONDEBEA'. Luego cuando quieras recuperas ese valor y le restas el número para convertirlo otra vez a fecha. Utilizas 'DateDiff' para conocer los días que han pasado.

Esto así a grandes rasgos... Examina el código y adáptalo a tus necesidades. También te tengo que decir que este método es un poco ingenuo y tal vez relativamente fácil de crackear, pero puede ser efectivo. Un consejo es que cambies los nombres de variables, funciones, métodos, etc., para que no parezca que son lo que son...

Suerte.

941
Visual Basic 6.0 e inferiores / Re: compara archivos o usar campos binarios
« en: Jueves 4 de Septiembre de 2003, 08:18 »
Hola agfed.

El error que te da 'LineInput' se debe a que lo escribí mal (disculpas), debería ser
'Line Input'.

Aunque trabajes con archivos binarios el código debe de funcionar igual, si quisieras podrías abrirlos en modo binario (Open "Archivo" For Binary Access) y realizar la comparación de modo parecido utilizando el método 'Get' en lugar de 'Line Input'.

Suerte.

942
Visual Basic 6.0 e inferiores / Re: comparar campos memo
« en: Jueves 4 de Septiembre de 2003, 08:12 »
Hola agfed.
Creo que el método find debería funcionar sin problemas con cualquier tipo de datos que tengan los campos, incluso con campos memo, que a todos los efectos son campos de texto de longitud variable. Otra cosa distinta es acertar con el valor por el que quieres realizar la búsqueda, es decir, no es lo mismo buscar por una palabra que por un texto de gran tamaño, donde signos de puntuación, tildes, mayúsculas/minúsculas, pueden hacer que no encuentres un registro coincidente. Para evitar en la medida de lo posible esto, podrías usar un filtro de este estilo:

Recordset1.Find "UCASE(CampoMemo) LIKE(UCASE('%Cadena a buscar en el campo%'))

Suerte.

943
Visual Basic 6.0 e inferiores / Re: Reducir tamaño de fotos
« en: Miércoles 3 de Septiembre de 2003, 14:04 »
Para reducir el tamaño de una imagen puedes utilizar el api 'StretchBlt'.

Imagina un formulario con dos PictureBox: Picture1 con la imagen origen y Picture2 en donde dibujaremos la copia reducida. Ahora copiaríamos por ejemplo a una imagen de 60x60 (en pixels ojo)

'A nivel de módulo.
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

'Por ejemplo al cargar el form

Private Sub Form_Load

Dim lngRc As Long
lngRc = StretchBlt(Picture2.hdc, 0, 0, 60, 60, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, &HCC0020)

End Sub

A ver si con esto te vas arreglando... de todas formas no considero completa mi respuesta, ya que lo que hace esta api es copiar (SRCCOPY = &HCC0020) el mapa de bits a un DC según el tamaño y coordenadas que le especifiques. Ahora la cuestión es guardar el mapa de bits. Supongo que abrá que crear un DC compatible o un mapa de bits, o algo así y aplicarle 'Strechblt', ya que si intentas utilizar 'SavePicture' con Picture2, te llevarás una desagradable sorpresa.

En fin...espero que esto te sirva de ayuda. Suerte.

944
Visual Basic 6.0 e inferiores / Re: comparar campos memo
« en: Miércoles 3 de Septiembre de 2003, 09:11 »
Hombre, ahora que caigo, ya sé que es lo quieres hacer... Lo sé por tu anterior tema 'compara archivos o usar campos binarios': quieres comparar dos tablas de una base de datos para saber si contienen los mismos datos.

Vale, te diré que bien podías haberlo especificado respondiendo al tema anterior. Te di una solución para comparar 'Archivos', como tu decías, si no era eso lo que necesitabas, podrías haberlo dicho y no dejar el tema abierto. En fin...

Podrías usar una sentencias SQL para comparar las dos tablas, o código que las recorriera buscando diferencias, pero como no tengo ganas de escribir tanto, pues mi recomendación es que exportes las tablas a archivos de texto y que uses el código que te escribí en el tema anterior.
Ale.

Chao.

945
Visual Basic 6.0 e inferiores / Re: comparar campos memo
« en: Miércoles 3 de Septiembre de 2003, 08:50 »
¿Podrías especificar un poco mejor que es lo que necesitas?

- Comparar dos campos memo de dos tablas distintas.

- Comparar dos campos memo en la misma tabla.

- Seleccionar registros por el valor de uno o varios campos memo.

- Seleccionar registros por el valor de uno o varios campos memo que contengan una serie a buscar.

En todo caso trata el campo memo como si fuera un campo tipo texto.
Puedes asignarlo a una variable de tipo string con la limitación de 2^31 caracteres para cadenas de longitud variable y de 2^16 para cadenas de longitud fija.

Suerte.

946
Visual Basic 6.0 e inferiores / NECESITO AYUDA SOBRE EL CONTROL ADO
« en: Miércoles 3 de Septiembre de 2003, 08:34 »
En tiempo de diseño, si pulsas con el botón derecho del ratón sobre el control y eliges propiedades, te aparecerá un formulario.

Desde la pestaña 'General' :
Defines la conexión. Tienes tres formas distintas (realmente vienen a ser dos): Puedes usar un origen de datos ODBC ya  existente o crear uno nuevo, generar una cadena de conexión para usar un proveedor OleDb o usar un archivo datalink (*.UDL) que te hayas creado previamente (lo cual viene a ser lo mismo que lo anterior pero usando un archivo que podrás modificar a posteriori sin necesidad de volver a compilar el programa). Para generar una cadena de conexión, básicamente sigue los pasos del asistente: eliges el proveedor OleDb (en tu caso Microsoft Jet) y en la pestaña 'Conexión', en origen de datos, introduce la ruta y nombre de la base de datos.
Para crear un archivo datalink, pulsa con el botón derecho del ratón sobre el escritorio y elige 'Nuevo...' , 'Microsoft DataLink', te aparecerá un formulario similar al que te aparecería generando la cadena de conexión desde las propiedades del control.

Desde la pestaña 'Origen del registro':
Pues eso, eliges el origen para los datos que gestionará el control. Si quieres enlazar el control con una tabla, elige un comando 'adCmdTable' y selecciona la tabla que deseas. Si usas una sentencia SQL, entonces selecciona un comando 'adCmdUnknow'.

Con esto básicamente tienes el control data conectado a la base de datos.

Para conectar a un datagrid, lo seleccionas, te vas a la ventana de propiedades (F6) y eliges para la propiedad 'DataSource' el control data. Pulsa con el botón derecho sobre el datagrid y selecciona 'RecuperarCampos' (en tiempo de ejecución usa el método 'Rebind').

Para enlazar textbox a los campos, pues haces lo mismo que con el datagrid y en la propiedad 'DataField' eliges el campo que te interesa.

Con esto básicamente creo que podrás comenzar a funcionar.

Suerte.

947
VBA / Macro que se ejecuta al cambiar una celda o en segundo plano
« en: Martes 2 de Septiembre de 2003, 11:55 »
Prueba programando el evento change de la hoja. Así de sencillo.

Suerte.

948
Visual Basic 6.0 e inferiores / Borrar carpetas del servidor
« en: Martes 2 de Septiembre de 2003, 10:52 »
Efectivamente, disculpas, tienes razón... se me olvidaba que estas utilizando un control iNet. La solución que te daba sería válida siempre que pudieras tener acceso a esa carpeta como recurso compartido, asignándola a una letra de unidad, o refiriéndose a la ruta directamente (ServidorRuta).

De otra forma, como muy bien indicas abría que utilizar el comando FTP 'dir' y/o los comandos 'ls' o 'mls' para mostrar el contenido de uno o varios directorios respectivamente.

Suerte.

949
Visual Basic 6.0 e inferiores / Re: Borrar carpetas del servidor
« en: Martes 2 de Septiembre de 2003, 09:43 »
En tu ejemplo incluyes esta línea:

gobjFTP.Execute , "RMDIR " & ruta

La vía de acceso que debes especificar es 'ruta'.

A ver si ahora... Chao.

950
Visual Basic 6.0 e inferiores / Re: Borrar carpetas del servidor
« en: Martes 2 de Septiembre de 2003, 08:50 »
Podrías hacer algo de este estilo:

Private Sub BorrarFilesRtvDires(Byval ViaDeAcceso As String, Directorios() As String)

Dim strDir as String
strDir = Dir(ViaDeAcceso)
Dim lng1 As Long
Do Until strDir = ""
If (GetAttr(ViaDeAcceso & strDir) And vbDirectory) = vbDirectory Then
lng1 = lng1 + 1
ReDim Preserve Directorios(lng1)
Directorios(lng1) = strDir
Else
Kill ViaDeAcceso & strDir
End If
Dir
Loop

End Sub

Esta sub borraría los archivos del directorio que le especifiques y devolvería como elementos de la matriz 'Directorios' las carpetas que contenga (fíjate que es un argumento 'ByRef'
). Empleándolo recursivamente, podrías eliminar todos los archivos y carpetas. ¡Úsalo con tiento!

Suerte.

Páginas: 1 ... 36 37 [38] 39 40 ... 43