Buscar un registro en Recordset para modificarlo
Tengo una tabla para registrar los comerciales. A cada comercial le quiero asignar un cliente, es decir que cada comercial, a su vez figure en la Tabla_Clientes. He creado un código para que al crear un comercial, cree automáticamente el correspondiente cliente, y funciona correctamente.
Ahora quiero crear un código, para que al actualizar los datos de un comercial, los actualice automáticamente en la Tabla_Clientes, pero no me funciona bien, ya que al intentar buscar el registro correspondiente en la Tabla_Clientes, el la línea:
rstTabla_Clientes.FindFirst "Referencia = " & Id_Cliente
Me da error:
"Se ha producido el error '424' en tiempo de ejecución: Se requiere un objeto"
"Referencia" es el campo clave de la tabla de clientes, he verificado que la variable Id_Cliente tomo correctamente el valor correspondiente.
No se como solucionarlo, ¿Alguna idea?
Dim Nombre_Comercial As String Dim Fecha_alta As Date Dim Captura_Cliente As String Dim Direccion As String Dim Codigo_postal As String Dim Poblacion As String Dim Provincia As String Dim Email As String Dim Web As String Dim Telefono As String Dim Contactos As String Dim Id_Cliente As Integer 'Toma de valores Nombre_Comercial = Nz(Forms![Formulario Comerciales]![Nombre]) Fecha_alta = Forms![Formulario Comerciales]![Fecha alta] Direccion = Nz(Forms![Formulario Comerciales]![Direccion]) Codigo_postal = Nz(Forms![Formulario Comerciales]![Codigo postal]) Poblacion = Nz(Forms![Formulario Comerciales]![Población]) Provincia = Nz(Forms![Formulario Comerciales]![Provincia_Facturas]) Email = Nz(Forms![Formulario Comerciales]![E-mail]) Web = Nz(Forms![Formulario Comerciales]![Web]) Telefono = Nz(Forms![Formulario Comerciales]![Telefono]) CIF = Nz(Forms![Formulario Comerciales]![CIF]) DoCmd.SetWarnings False If SysCmd(acSysCmdGetObjectState, acForm, "Tabla_Clientes") <> 0 Then ' The object is open. IsObjectLoaded = True DoCmd.Close acForm, "Tabla_Clientes", acSaveYes Else ' The object is not open. IsObjectLoaded = False End If If IsNull(Forms![Formulario Comerciales]![Cliente_Asociado]) Then Set dbsBase = CurrentDb Dim rstTabla As DAO.Recordset Set rstTabla = dbsBase.OpenRecordset("Tabla_Clientes") rstTabla.AddNew rstTabla![Nombre Comercial] = Nombre_Comercial rstTabla![Fecha alta] = Fecha_alta rstTabla![CIF] = CIF rstTabla![Direccion pedidos] = Direccion rstTabla![Codigo postal pedidos] = Codigo_postal rstTabla![Población pedidos] = Poblacion rstTabla![Provincia_Pedidos] = Provincia rstTabla![Telefono] = Telefono rstTabla![E-mail] = Email rstTabla![Web] = Web rstTabla.Update 'Abrimos el Formulario "Tabla_Clientes" DoCmd.OpenForm "Tabla_Clientes" DoCmd.GoToRecord acDataForm, "Tabla_Clientes", acLast 'Tomamos el valor de Referencia (autonumerico) Id_Cliente = Forms![Tabla_Clientes]![Referencia] 'Introducimos el valor de Id_Cliente en la tabla Comerciales Forms![Formulario Comerciales]![Cliente_Asociado].Enabled = True Forms![Formulario Comerciales]![Cliente_Asociado] = Id_Cliente Forms![Formulario Comerciales]![Cliente_Asociado].Enabled = False Else Id_Cliente = Forms![Formulario Comerciales]![Cliente_Asociado] Set dbsBase = CurrentDb Set rstTabla = dbsBase.OpenRecordset("Tabla_Clientes") rstTabla_Clientes.FindFirst "Referencia = " & Id_Cliente rstTabla.Edit rstTabla![Nombre Comercial] = Nombre_Comercial rstTabla![Fecha alta] = Fecha_alta rstTabla![CIF] = CIF rstTabla![Direccion pedidos] = Direccion rstTabla![Codigo postal pedidos] = Codigo_postal rstTabla![Población pedidos] = Poblacion rstTabla![Provincia_Pedidos] = Provincia rstTabla![Telefono] = Telefono rstTabla![E-mail] = Email rstTabla![Web] = Web rstTabla.Update End If DoCmd. RunCommand acCmdSaveRecord