BUSCAR LIBRO

20/05/2007 - 05:50 por Orfao | Informe spam
hOLA !
Necesito ayuda para a travez de codigo buscar en el disco la ubicacion de un
libro y luego abrirlo (si existe) o si no crearlo.
tambien me interesa saber como puedo mover un archico de una carpeta a otra
y por ultimo como seleccionar un libro de un combobox desplegable que me
muestre los libros existentes en un ruta especifia.

GRacias
Me alimento del conocimiento de todos
 

Leer las respuestas

#1 Héctor Miguel
20/05/2007 - 06:38 | Informe spam
hola, moises !

__ 1 __
... codigo buscar en el disco la ubicacion de un libro y luego abrirlo (si existe) o si no crearlo.


__ 2 __
... como puedo mover un archico de una carpeta a otra


__ 3 __
... como seleccionar un libro de un combobox desplegable que me muestre los libros existentes en un ruta especifia.



tus consultas no son [lo que dijeramos] un 'endulzame otra manzana' :))

a reserva de que la pregunta 3 no [me] queda muy 'clara' en cuanto a lo que 'realmente' estas solicitando:
- necesitas 'llenar' el combo con los nombres de libros existentes en una ruta especitica ?
- necesitas las instrucciones para abrir el archivo seleccionado desde un combobox ?
- algo que se te hubiera quedado 'en el tintero' -???-

para tus preguntas 1 y 2, te paso algunos tips al final del presente y...
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

1) si -nada mas- quieres comprobar si existe [o no] en alguna [o cada] unidad logica [C:, D:, E:, ...,] que este disponible...
prueba con el siguente ejemplo, copiando/pegando las lineas en un modulo de codigo general/normal]...
es una API que lee la estructura de archivos [unidad logica] lo que seria la tabla de alojamiento de archivos [FAT]
solo esta 'preparado' para buscar en unidades 'locales', si necesitas buscar en unidades 'desmontables/flash/...'
te incluyo los codigos aplicables para cada tipo de unidad ;)
-> ya despues tu decides la forma de llamar a la busqueda de archivos con algo +/- asi:

Dim Documento As String
Documento = Buscar_archivo(ActiveCell)
If Documento <> "" Then
Workbooks.Open Documento
Else
' aqui tus acciones para crearlo ??? '
End If

== en un modulo de codigo general/normal==Option Private Module
Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias "SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String) As Long
Function Buscar_archivo(ByVal Archivo As String)
Dim Disco As Object, Unidad As String: Buscar_archivo = ""
With CreateObject("Scripting.FileSystemObject")
For Each Disco In .Drives
If Disco.DriveType = 2 Then
Unidad = Disco.DriveLetter & ":\": Buscar_archivo = Buscar(Unidad, Archivo)
If Buscar_archivo <> "" Then Exit For
End If: Next: End With
End Function
' Tipos para Disco.DriveType _
0 = "Desconocido" _
1 = "Desmontable" _
2 = "Fijo" _
3 = "Unidad de red" _
4 = "CD-ROM" _
5 = "Disco RAM"
Function Buscar(Unidad As String, Archivo As String) As String
Dim Pos As Long, Tmp As Long, Reserva As String: On Error GoTo No_existe
Reserva = Space(260): Tmp = Busca_en_FAT(Unidad, Archivo, Reserva)
Pos = InStr(Reserva, vbNullChar)
If Not Pos Then Reserva = Left(Reserva, Pos - 1)
Buscar = Reserva: Exit Function
No_existe:
End Function

2) para 'mover/copiar' archivos de una ubicacion a otra, puedes usar al menos dos formas:

2-a) una instruccion =>Name "Origen" As "Destino"< -> "Origen" y "Destino" son [una cadena de texto que 'representa'] directorio/s + nombre_archivo + EXT[ension]

a) para renombrar un archivo [mismo directorio] ... los 'requisitos' son ...
(1) que "Origen" EXISTA [y este cerrado] y...
(2) que "Destino" NO EXISTA
[p.e.] Name "C:\Misma ruta\Archivo1.abc" As "C:\Misma ruta\Archivo2.xyz"

b) si "Origen" y "Destino" son 'diferentes'... la instruccion [practicamente] 'hara lo mismo que...'

2-b) una instruccion =>FileCopy "Origen", "Destino"< => en este caso, "Destino" sera INVARIABLEMENTE 'reemplazado' <= OJO

puedes consultar en la ayuda de vba el uso de 'FileCopy' y 'Name'

Preguntas similares