Access - FindFirst

 
Vista:

FindFirst

Publicado por Tronic (28 intervenciones) el 29/05/2008 18:13:19
Hola Buenas, gracias de antemano.

Tengo la siguiente línea de código en un boton de un formulario en access.

rs.FindFirst "[IDexpediente] = " & Str(Nz([contar], 0))

Como puedo hacer referencia al campoidexpediente si es de otro formulario que se abrira a continuación.

He probado a poner fomrs![explorar]![idexpediente] y alguna otra cosa más que salió de mi imaginación pero no me funciona..

Gracias de nuevo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FindFirst

Publicado por Enrique (1299 intervenciones) el 29/05/2008 21:36:07
Hola Tronic:
FindFirst puede usarse de dos formas.

1-Abriendo un Recorset DAO para conectar con una Tabla o Consulta:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Nombre Tabla o Consulta")
rs.FindFirst "[IDexpediente] = ' " & Str(Nz([contar], 0)) & "'"
If Not rs.NoMatch Then
...........
End If

2-Haciendo referencia al RecordsetClone del otro Formulario, aunque no esté abierto:
Set rs = Forms!Formulario2.RecordsetClone
rs.FindFirst "[IDexpediente] = ' " & Str(Nz([contar], 0)) & "'"
If Not rs.NoMatch Then
..............
End If

Yo siempre prefiero conectar con una Tabla o Consulta, me parece más práctico pero tu elijes.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FindFirst

Publicado por Tronic (28 intervenciones) el 30/05/2008 10:52:23
Hola Enrique, gracias por tu respuesta.

No sé si es que no me explicado bien.

Tengo dos formularios:

1- Para explorar registros. Un formulario normal y corriente para consultrar todos los registros. Donde se pueden ver, modificar o eliminar todos los campos de cada registro.

2- Para buscar registros. Según el valor introducido en un cuadro de texto me busca los registros en una consulta y el formulario me los muestra todos continuos. En este formulario sólo me muestra el campo idexpediente y el descripcion de cada registro encontrado. Aquí no me deja modificar, ni eliminar... -
- Pero tengo un botón por cada registro que hace que se abra el formulario explorar y que se posicione en el registro que corresponda. (Esta es la parte que creo que hay que hacer con un findfirst).

He intentado hacerlo de las dos formas que me indicabas pero no he sido capaz.

No se si con estas "explicaciones" entenderas mejor lo que te quiero decir.

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FindFirst

Publicado por Enrique (1299 intervenciones) el 30/05/2008 19:11:18
Dices que el Formulario para buscar muestra de forma contínua los registros filtrados mediante un cuadro de Texto y que en cada registro hay un botón de comando, pués en ese caso creo que no es necesario usar FindFirst, puedes hacerlo abriendo el Formulario Explorar con parámetros para que se abra en el registro que coincida con el del Formulario para buscar, al pulsar el botón de comando de cada registro:

DoCmd.OpenForm "FormularioExplorar", acNormal, "", "[Consulta]![Idexpediente]='" & Me.Idexpediente & "'", acEdit, acNormal

[Consulta] es el nombre de la consulta Origen del Registro del Formulario Explorar y [idexpediente] un campo de dicha Consulta, mientras que Me.idexpediente será el Campo del Formulario para buscar.

Como sabras, hay que tener en cuenta si "Idexpediente" es de Texto o Numérico para ponerlo o no ponerlo entre comillas simples (en el ejemplo que te pongo, he supuesto que es de Texto). A ver si esto te sirve.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:FindFirst

Publicado por Tronic (28 intervenciones) el 30/05/2008 20:49:07
Hola Enrique.

Al final ya lo arregle, es que de la manera que me explicas arriba me abriría el formulario explorar y me mostraría sólo el registro que selecciono del formulario buscar, no?

Y yo lo que quería es que abriera el formulario explorar y se posicionara en el registro seleccionado.

Pero ya esta arreglado, de todas formas MUCHÍSIMAS GRACIAS!

Un saludo, te pego el contenido a continuación para que le eches un vistazo y me comentes, si puedes, lo he hecho de esta manera y me funciona correctamente. No se si habrá un forma mejor, pero bueno ya queda así.

Private Sub ficha_Click()
On Error GoTo Err_ficha_Click

Dim stDocName As String
Dim stLinkCriteria As String

contar = IDexpediente
stDocName = "ARCHIVOS"

DoCmd.OpenForm stDocName

' Buscar el registro que coincida con el control.

Dim rs As Object

Set rs = Form_ARCHIVOS.Recordset.Clone
rs.FindFirst "[IDexpediente] = " & Str(Nz(contar, 0))
If Not rs.EOF Then Form_ARCHIVOS.Bookmark = rs.Bookmark

Exit_ficha_Click:
Exit Sub

Err_ficha_Click:
MsgBox Err.Description
Resume Exit_ficha_Click

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar