¿Cómo guardar un dato de tipo texto según casilla de verificación seleccionada?

Tengo un formulario Access en el que tengo 3 casillas de verificación y requiero que al momento de guardar, debe registrarse en el campo de la tabla el valor de las casillas seleccionadas.

Por ejemplo, si selecciono todas las casillas :

Me guarde en el campo Condición de la tabla:

Estable - Contratado - Practicante

Investigando me encontré ejemplos de lo que requiero pero en excel y no en access que es el que necesito, trate de adaptar el código de excel pero no he tenido suerte:

Código excel:

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption
If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption
If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

Si me pueden ayudar se los agradezco

2 Respuestas

Respuesta
2

Si tus casillas se llaman check01, check02 y check03 y tu cuadro de texto text01, el código en el evento "después de actualizar" de la primera casilla sería:

Private Sub check01_AfterUpdate()
Dim miTexto As String
miTexto = IIf(Me.check01 = True, "Estable", "") & "-" & IIf(Me.check02 = True, "Contratado", "") & "-" & IIf(Me.check03 = True, "Practicante", "")
miTexto = Replace(miTexto, "--", "-")
If Left(miTexto, 1) = "-" Then miTexto = Right(miTexto, Len(miTexto) - 1)
If Right(miTexto, 1) = "-" Then miTexto = Left(miTexto, Len(miTexto) - 1)
Me.text01 = miTexto
End Sub

En el mismo evento de las otras dos pones:

Private Sub check02_AfterUpdate()
check01_AfterUpdate
End Sub
Private Sub check03_AfterUpdate()
check01_AfterUpdate
End Sub

Un saludo


Respuesta
1

En mi opinión necesitas:

1 Cuadro de Texto, con Origen de Datos el Campo de la Tabla donde quieres guardar, que según veo se llama Condicion (Ojo con los acentos, si puedes se lo quitas) >> Le voy a llamar TxtCondicion

1 Botón para guardar >> Le llamaré BtnCondicion

Para el código voy a suponer que tus tres Check se llaman ChkEstable, ChkContrat y ChkPract

Programa el Evento Click de ese Botón

Private Sub BtnCondicion_Click()
Dim StrEstable As String, StrContra As String, StrPract As String
If Me.ChkEstable = -1 Then
    StrEstable = "Estable - "
Else
    StrEstable = ""
End IF
If Me.ChkContrat = -1 Then
    StrContra = "Contratado - "
Else
    StrContra = ""
End IF
If Me.ChkPract = -1 Then
    StrPract = "Practicante"
Else
    StrPract = ""
End IF
'Formo la cadena de Texto que irá en TxtCondicion
Me.TxtCondicion = StrEstable & StrContrat & StrPract
'Por si solo hay marcados uno o dos de los primeros, he de quitarles el " - "
If Not IsNull(Me.TxtCondicion) And Right(Me.TxtCondicion,3) = " - " Then
   Me.TxtCondicion = Left(Me.TxtCondicion, Len(Me.TxtCondicion) - 3)
End If
End Sub

Un saludo >> Jacinto

Hola Jacinto

Con tu código funciona bien, lo único que no muestra es si marco la casilla de Contratado, ya revisé nombres y todos están iguales! no se a que se deba...


                    

Ya vi el problemita,en  la cadena habia un "t" de más

StrContrat y era  StrContra

Perfecto que te hayas dado cuenta, porque sinceramente no lo hubiera detectado, salvo que hubieras puesto tu código. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas