Access: el combo no actualiza el registro
Tengo un formulario sobre una tabla en la que quiero actualizar el campo Fecha de baja, Tipo de Baja, Observaciones y Apto para donación, de los registros existentes, siempre y cuando el registro no tenga datos previos en esos campos. Y no consigo que el combo "tipoBaja" refleje los datos. El combo se abre, muestra las opciones pero no permite seleccionarlas y actualizar el registro. Llevo ya cuatro días dándole vueltas y cámbiandolo de una a otra forma y no lo consigo.
Tengo que señalar que el formulario tiene dos combos, el primero "buscaNumero", muestra los registros existentes en la tabla con sus datos previos, y el segundo "tipobaja" es el que quiero utilizar para calificar la baja y es el que no permite actualizar el dato.
Estoy desesperada ya. ¿Podéis ayudarme?
Muchas Gracias
Este este es el código que tengo en el formulario
Option Compare Database
Option Explicit
Private Sub BuscaNumero_AfterUpdate()
On Error GoTo errorNulo
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[NInventario] = " & Str(Nz(Me![BuscaNumero], 0))
If Not rs.EOF Then
Me.Bookmark = rs.Bookmark
End If
If Not IsNull(FechaBaja) Then
Me.FechaBaja.Enabled = False
Me.tipoBaja.Enabled = False
avisoBaja.Visible = True
Else
Me.FechaBaja.Enabled = True
Me.tipoBaja.Enabled = True
avisoBaja.Visible = False
End If
errorNulo:
If Err.Number = 3058 Then
Me.BuscaNumero.Requery
MsgBox Err.Description
'If Err.Number = 3058 Then
MsgBox ("Debes escribir un número en el buscador")
Exit Sub
Err.Clear
End If
End Sub
Private Sub cancelar_Click()
On Error GoTo errorcancelar:
DoCmd.RunCommand acCmdUndo
DoCmd.GoToRecord acActiveDataObject, , acNewRec
Me.tipoBaja = ""
Me.ObservacionesBaja = ""
Me.DestinatarioDonacion = ""
MsgBox ("BAJA CANCELADA"), vbInformation
nInventario.SetFocus
BuscaNumero.SetFocus
errorcancelar:
If Err.Number = 2046 Then
DoCmd.GoToRecord acActiveDataObject, , acNewRec
MsgBox ("No se guardará ningún cambio"), vbInformation
nInventario.SetFocus
BuscaNumero.SetFocus
Exit Sub
End If
Err.Clear
End Sub
Private Sub Form_Load()
DoCmd.OpenForm "frmBajaActivos", acNormal, , , , acDialog
DoCmd.GoToRecord acActiveDataObject, , acNewRec
avisoBaja.Visible = False
avisoFecha.Visible = False
avisoTipo.Visible = False
avisoObservaciones.Visible = False
Me.BuscaNumero.SetFocus
End Sub
Private Sub guardar_Click()
If Not IsNull(FechaBaja) And Not IsNull(tipoBaja) Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox ("BAJA REGISTRADA"), vbInformation
Me.avisoFecha.Visible = False
Me.avisoTipo.Visible = False
Me.avisoObservaciones.Visible = False
ElseIf IsNull(FechaBaja) Then
Me.avisoBaja.Visible = True
FechaBaja.SetFocus
ElseIf IsNull(tipoBaja) Then
Me.avisoTipo.Visible = True
tipoBaja.SetFocus
End If
End Sub
Private Sub salir_Click()
On Error GoTo salir
DoCmd.Close acForm, "FrmBajaActivos"
DoCmd.OpenForm "menu_principal"
salir:
If Err.Number = 2046 Then
Dim msg As String
' msg = "Error #" & Err.Number & Chr(13) & Error
MsgBox ("NO SE REALIZARÁN CAMBIOS"), vbInformation
Err.Clear
End If
End Sub
Private Sub tipoBaja_AfterUpdate()
Me.nomTipoBaja = tipoBaja.Column(2)
End Sub