VBA Access: Problemas con Checkboxes y UPDATE
Cuando actualizo una tabla con el siguiente código, por algún motivo me pone en valor FALSE las casillas de verificación. Intenté exportarlas como -1 y 0, TRUE y FALSE, Sí y No, pero sucede lo mismo. Y si exporto como número me devuelve error.
DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[CODIGO_CUC] = '" & Me.txtCodigoCUC.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[FOTO_FORMATO] = '" & Me.lstFormato.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[OBSERVACIONES] = '" & Me.txtObs.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ORIGEN_ENBLANCO] = '" & Me.chkOrigen_Enblanco.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ORIGEN_PAIS] = '" & Me.lstOrigen_Pa.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ORIGEN_PROVINCIA] = '" & Me.lstOrigen_Pro.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ORIGEN_CIUDAD] = '" & Me.lstOrigen_Ciu.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ORIGEN_ENTIDAD] = '" & Me.lstOrigen_Ent.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[TIPO] = '" & Me.lstTipo.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[TIPO] = '" & Me.lstTipo.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[UBICACION_ALBUM] = '" & Me.txtUbica_Album.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[UBICACION_PAGINA] = '" & Me.txtUbica_Pag.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[CANJE] = '" & Me.chkCanje.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[CANJE_CANTIDAD] = '" & Me.txtCanjeCant.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ESTADO] = '" & Me.M_ESTADO.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[PERIODO] = '" & Me.M_PERIODO.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[PERIODO_INICIO] = '" & Me.txtPerIni.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[PERIODO_FIN] = '" & Me.txtPerFin.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ANO_SINANO] = '" & Me.chkNoAno.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[ANO] = '" & Me.txtAno.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[REVISION] = '" & Me.chkRevision.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "" DoCmd.RunSQL "UPDATE [tabCalendarios] SET [tabCalendarios].[FAVORITO] = '" & Me.chkFavorito.Value & "' WHERE [tabCalendarios].[ID] = " & Me.txtID.Value & "
El código de arriba no me devuelve error pero me establece en FALSE las casillas de verificación.
Si les quito las comillas simples (') me devuelve error (a veces) y otras veces lo exporta bien y otras me pide establecer el valor manualmente mediante un inputbox. Pensé en convertir con un IIF a su valor numérico así sea como sea siempre exporta numérico pero no funciona siempre.