Palabras clave: buscar, encontrar, todo
Autor: Xavi Lloberas / Mayo 2006
Objetivo:
Buscando la forma de realizar una busqueda en todas las tablas de la base de datos, me cree esta función.
Es probable que ya exista, pero me produjo una especial satisfacción ver que funcionaba.
Function busquedatotal(textoBusq As String)
' Atencion: Se debe activar la referencia Microsoft DAO 3.x Object Library
Dim rst As Recordset
Dim Tabla As TableDef
Dim fld As Field
Dim contador As Integer
Debug.Print "Coincidencias encontrada con el texto: " & textoBusq
contador = 0
For Each Tabla In CurrentDb.TableDefs
If Left(Tabla.Name, 4) <> "MSys" Then
Set rst = CurrentDb.OpenRecordset("SELECT * FROM [" & Tabla.Name & "];")
rst.MoveFirst
Do Until rst.EOF
For Each fld In rst.Fields
If InStr(1, fld.Value, textoBusq, vbTextCompare) Then
Debug.Print " En tabla: " & Tabla.Name
Debug.Print " Campo:" & fld.Name
Debug.Print " Posicion:" & rst.AbsolutePosition + 1
Debug.Print " Cadena entera: " & rst(fld.Name)
contador = contador + 1
End If
Next
rst.MoveNext
Loop
End If
Next
If contador = 0 Then
Debug.Print "No se encontraron coincidencias"
Else
Debug.Print "Total coincidencias: " & contador
End If
End Function