Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/01/2010, 04:13
Avatar de Taribo007
Taribo007
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: Problema con access

Entonces, si tienes el nombre de la tabla, tienes el nombre del form, solo tienes que abrirlo.

Tienes algun campo clave en las tablas que se pueda usar para abrir el form por el registro en cuestion?? O se podria usar el propio dato buscado, ya que es unico??

Private Sub Comando0_Click()

Dim rst As Recordset
Dim Tabla As TableDef
Dim fld As Field
Dim textoBusq As String

Dim contador As Integer

Debug.Print "Coincidencias encontrada con el texto: " & textoBusq
contador = 0
textoBusq = InputBox("Introduce valor a buscar")
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
DoCmd.OpenForm Tabla.Name, , , fld.Name & "='" & textoBusq & "'"
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 Sub


Un saludo