Access - Error en recordset

 
Vista:

Error en recordset

Publicado por zanga (26 intervenciones) el 23/05/2006 19:25:26
Hola, he escrito este código a base de buscar por este foro:

RecordSource = "SELECT * FROM Persona WHERE (((Persona.Nombre) Like [Forms]![pruebaCita]![newNombre]) AND ((Persona.Apellidos) Like [Forms]![pruebaCita]![newApellido]));"
Set rst = CurrentDb.OpenRecordset(RecordSource)
Me.Persona.ControlSource = "ID_Persona"
Me.Nombre.ControlSource = "Nombre"
Me.Apellidos.ControlSource = "Apellidos"
rst.Close: Set rst = Nothing
Me.Requery

Lo que debería hacer es hacer esa consulta y guardar los valores en los campos persona, nombre y apellidos del formulario, pero me da el error 3061: "Pocos parámetros. Se esperaban 2" en la línea del openrecordset. ¿ Que hago mal??

Gracias de antemano y salu2!
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:Error en recordset

Publicado por Enrique (1299 intervenciones) el 23/05/2006 20:21:50
Zanga:
Como parece ser que este código lo tienes en el propio formulario "PruebaCita", no es necesario que escribas Form!PruebaCita...... bastaría con poner Me.newNombre o Me.newApellido o incluso directamente sin el Me, además el AND no lo puedes poner como tu lo estás haciendo, necesitas las correspondientes comillas dobles y simples de apertura y cierre y enlazando con el signo &, ya que son dos criterios los q
Prueba así a ver si te vá, sin tanta "basura" de paréntesis.

RecordSource = "SELECT * FROM Persona WHERE Nombre Like '" & newNombre & "' AND Apellidos Like'" & newApellido & "'"

(copia y pega sin cambiar nada), salvo que el formulario sea otro que tengas abierto, en cuyo caso si tendrás que indicarlo antes de los new.....

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:Error en recordset

Publicado por zanga (26 intervenciones) el 23/05/2006 21:03:48
Así no me funciona, tiene toda la pinta de elegirme el registro vacío porque en el box Me.Persona = "ID_Persona" aparece (Autonumérico) y nombre y apellidos en blanco.
Quizá el problema sea porque en este mismo evento justo antes de ese código es donde inserto la persona en la tabla, no lo se. Muestro el código completo:

Private Sub newPersona_Click()
Dim tabla As DAO.Recordset

If (newNombre = Null Or newApellidos = Null) Then
newNombre.SetFocus
Else
Set tabla = CurrentDb.OpenRecordset("Persona", dbOpenDynaset)
tabla.AddNew
tabla.Fields("Apellidos").Value = Me.newApellidos
tabla.Fields("Nombre").Value = Me.newNombre
tabla.Update
Me.Requery
End If

'RecordSource = "SELECT * FROM Persona WHERE (((Persona.Nombre) Like [Forms]![pruebaCita]![newNombre]) AND ((Persona.Apellidos) Like [Forms]![pruebaCita]![newApellido]));"
RecordSource = "SELECT * FROM Persona WHERE Nombre Like '" & newNombre & "' AND Apellidos Like'" & newApellido & "'"
Set rst = CurrentDb.OpenRecordset(RecordSource)
Me.Persona.ControlSource = "ID_Persona"
Me.Nombre.ControlSource = "Nombre"
Me.Apellidos.ControlSource = "Apellidos"
rst.Close: Set rst = Nothing
Me.Requery
End Sub

Seguire trasteando. Gracias de todas formas
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:Error en recordset

Publicado por Enrique (1299 intervenciones) el 24/05/2006 11:50:03
Pués si, lo mejor que puedes hacer es seguir trasteando, pero de entrada hay un par de cosillas que deberías cambiar.

En la parte del principio del Evento, en lugar de hacerlo de esta forma:
tabla.Fields("Apellidos").Value = Me.newApellidos
tabla.Fields("Nombre").Value = Me.newNombre
Prueba mejor de esta otra:
tabla!Apellidos = Me.newApellidos
tabla!Nombre = Me.newNombre

Luego veo que tratas de abrir el Recordset rst pero sin haberlo definido antes con Dim rst As DAO.Recordset, después le asignas el valor del RecordSource pero luego no lo usas sino que estableces los Origenes del Control de los campos y por último cierras el rst, como digo, sin haber servido para nada abrirlo. ¿Seguro que sabes lo que estás haciendo ?, supongo que llevarás tu idea pero creeme que no vas bien encaminado.

Un saludo
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