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


