Access - No actualiza tabla a través del Form

 
Vista:

No actualiza tabla a través del Form

Publicado por Marcos Nicolas (53 intervenciones) el 27/09/2011 20:38:58
En un cuadro combinado tengo este código para llamar a un registro en el formulario. (este código lo crea el asistente).

Private Sub Nombre_AfterUpdate()
' Buscar el registro que coincida con el control.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[IdVendedor] = " & Str(Nz(Me![Nombre], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

En el mismo cuadro combinado en el evento al hacer doble click, tengo este código para agregar
un usuario que no esté en la lista. (aparece un form emergente "Agregar usuario")

Private Sub Nombre_DblClick(Cancel As Integer)
Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "AgregaUsuario"
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.GoToRecord , , acNewRec
Me.Nombre.Requery
Me.Nombre.SetFocus
End Sub

En el fomulario emergente "Agregar Usuario" se basa en la misma tabla del formulario ppal "Usuarios" y se completas dos campos, El Nombre del Usuario y una casilla de verificación
con el cual digo si está vigente o no.
Hay otros campos que no selecciono, porque se deberán completar en fornulario usuarios, una vez que llame al nombre del usuario en el cmbo "Nombre".

Luego en el evento al salir o al descargar del formulario emergente pongo form!Usuarios!.Refresh

Cuando selecciono el combo me aparece el nuevo usuario, pero al seleccionarlo me trae los registros
del primer registro de la tabla.
Esto me dice que no está actualizando la tabla. He intentado con DoCmd.RunCommand acCmdRefresh, pero no pasa nada.
La idea es la sgte.
1.- Hacer doble clik en el combo "nombre" del fom Usuarios, aparece el form emergente "Agregar Usuarios" y completo dos campos.
Cierro el formulario emergente, seleccionar el combo, aparece el nuevo usuario creado y al
seleccionarlo competar los campos restantes y que obviamente deben aparecer en blanco, pero no lo hace.

Lo expliqué detalladamente para que no quedaran dudas.

MN
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

No actualiza tabla a través del Form

Publicado por José (55 intervenciones) el 01/10/2011 01:44:25
Hola,
A ver si he comprendido bien.
El combo del formulario Usuarios se actualiza y como este combo está ligado a la misma tabla del formulario Usuarios el nuevo usuario fue añadido a la tabla, de otra forma no se actualizaría.
En cambio en la condición de búsqueda puede que tengas que corregir algo, aunque si funciona antes de agregar un nuevo usuario no veo por qué no funciona después
.De la expresión "rs.FindFirst "[IdVendedor] = " & Str(Nz(Me![Nombre], 0))" se deduce que IdVendedor es numérico Nz(Me![Nombre], 0) de aquí el 0 y no "". En cambio lo que tu transmites es un dato string.
Y pienso que la expresión debería de ser así:

rs.FindFirst "[IdVendedor] = " & Val(Nz(Me![Nombre], 0))

FindFirst busca el primer registro de un objeto Recordset de tipo Dynaset o instantánea que satisfaga los criterios especificados y convierte el registro en el registro actual (sólo en áreas de trabajo de Microsoft Access.
Compruebe siempre el valor de la propiedad NoMatch para determinar si la operación Find se ha realizado con éxito. Si la búsqueda se realiza correctamente, NoMatch es False. Si no se obtienen resultados, NoMatch es True y el registro actual queda sin definir. En ese caso, debe volver a colocar el puntero del registro actual en un registro válido.

Resumiendo: trata de corregir la expresión de busqueda y controla con NoMatch si se encontró el registro.
Un saludo
José
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