Dudas con OpenForm en Access
Tengo un problemilla al abrir un formulario pasándole un argumento. Lo que quiero es que se me habrá dicho formulario exactamente por el registro que le estoy pasando.
Hasta ahora se me abre el formulario que quiero pero por el primer registro no por el deseado.
Adjunto código:
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, acNormal , , 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
Hasta ahora se me abre el formulario que quiero pero por el primer registro no por el deseado.
Adjunto código:
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, acNormal , , 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
1 Respuesta
Respuesta de santiagomf
1