Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Ofimática (http://www.forosdelweb.com/f90/)
-   -   Como saber si un txt esta abierto desde una macros en excel? (http://www.forosdelweb.com/f90/como-saber-si-txt-esta-abierto-desde-macros-excel-411241/)

karla_gemi 21/07/2006 13:36

Como saber si un txt esta abierto desde una macros en excel?
 
Tengo un formulario con varios combobox todos se actualizan y llenan con la info de un txt. al abrir el formulario.
El txt tiene la info de los Rut, Razon Social/Apellido Paterno, Apellido Materno, Nombre y diversas claves.

Cada combobox tiene su propia información del txt y mi idea es que al seleccionar algun dato del combobox1 que contiene la info del rut, en los siguientes como combobox2 me aparezca el dato de la razon social, y asi sucesivamente hasta llegar a las claves que se llenan en unos textbox, les muestro la sintaxis del combobox1

Private Sub RUT_Click()
RUT.Value = UCase(RUT.Value)
If Len(Dir$("C:\Claves\Claves Clientes.txt")) Then
Open "C:\Claves\Claves Clientes.txt" For Input Access Read As 1
Do While Not EOF(1)
Input #1, RUTS, APP_RAZ, APM, NOMBRES, CLAVE, SII, CLAVE_TESORERIA, clave_afc
If RUT.Value = RUTS Then
Buscar.Razon.Text = APP_RAZ
Buscar.Materno.Text = APM
Buscar.Nombre.Text = NOMBRES
Textbox1.text = CLAVE
End If
Loop
Close #1
End If
End Sub

De esta manera me funciona bien, sin embargo cuando no se sabe el rut quiero que puedan buscar por el nombre o apellido materno o razon social, y al poner la misma sintaxis cambiando desde luego el resultado de los datos y eso... pues siempre me sale que el archivo ya esta abierto.

Por eso necesito saber de que manera puedo comprobar si el archivo se encuentra abierto, para poder cerrarlo y que cumpla con la busqueda que necesito.

La sintaxis es bastante ambigua pero no se mucho del tema, soy bastante nueva, y además tiene que funcionar en el VB de Excel.

Les explicare con más detalle por que uso combobox y no cuadros de texto.
La razon es simple por que quiero que al ingresar por ejemplo los primeros numeros o letras comienze a buscar si hay alguien con esos datos, es decir... por ejemplo
al teclear 15... el combobox me rellena con el primer rut que tiene que comienza con 155555541-1, y que al mismo tiempo me arroje de inmediato los datos a los demás combobox....
Por que uso combobox en los demás... por que la consulta no siempre será sabiendo el rut, puede que solo sepan el nombre, o la razon social, o el apellido materno... al darle la misma aplicación a todos puedo buscar por la info segun el dato que tenga...
Lo unico que me interesaria poner en textbox serian las claves, ya que es lo que ando buscando.
Al darle la misma atribución a todos los combobox procedo a abrir el archivo txt, con la misma sintaxis que te explique al comienzo.
Si es posible saber si el archivo esta abierto, de que manera le puedo dar la instrucción para que me compruebe que los datos que tecleo en el combobox estan en el txt...
Por eso pensaba en que asi como le doy la instrucción de revisar si existe o no el archivo txt... tal vez tambien se podia dar la instrucción para saber si el archivo estaba abierto o cerrado.
He cambiado la numeración de 1 a FreeFile y no hay mejoras siempre da el error 52 o 55.
Alguien tiene una sugerencia que no implique usar controles para confirmar la busqueda, o hacer una base de datos en access?
De antemano se agradece cualquier buena respuesta. :si:

desertor 23/07/2006 08:47

hjajajajjaja no caxo niuna compadre

3pies 24/07/2006 01:49

Aquí va una opción:
Código:

'Creamos la variable global llamada "fichero_abierto", que puede tomar valor verdadero (true) o falso (false)
Public fichero_abierto As Boolean

Inmediatamente después de abrir el fichero de texto, añades esta línea:
Código:

fichero_abierto = true
Cuando hayas acabado de trabajar con el fichero, y justo después de cerrarlo, le pones el valor a false:
Código:

fichero_abierto = false
Para que no te salga el mensaje de que el fichero ya está abierto, antes haces una comprobación del estado de la variable global:
Código:

if fichero_abierto = false then
    'Abres el fichero y trabajas con él, porque está cerrado
end if

Salu2

karla_gemi 25/07/2006 15:55

Gracias por la respuesta, es justo lo que necesitaba, solo que ahora me da otro problema... me manda error 52, y por el momento estoy casi igual que al principio :'(

3pies 26/07/2006 00:27

Si pudieras especificar un poco más...

Editado:
Mira lo que pone aquí respecto al error 52.


La zona horaria es GMT -6. Ahora son las 11:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.