Uso de dos Checkbox para elegir sólo un valor. VB 6.0 Access 2003

Les cuento... Estoy dando de alta productos... En la misma tienen que elegir el porcentaje del IVA que le agregan al producto (10,5 O 21)... Lo que quiero es que si tengo los dos o no tengo ninguno tildado le diga al usuario que tiene que elegir uno solo... Tengo este código... Cuando están los dos tildados me lo agrega igual al producto... Cuando están los dos destildados me pide que ingrese un valor del IVA... Muchas gracias nuevamente!

'verificar que no estén sin chekear ambos cheks
If ChkIVA(0).Value = False And ChkIVA(1).Value = False Then
MsgBox "Debe elegir un un valor de IVA", vbInformation, "ALTA DE PRODUCTOS."
ChkIVA(0).SetFocus
Exit Sub
Else
'VERIFICAR QUE NO ESTÉN CHEKEADOS AMBOS CHEKS
If ChkIVA(0).Value = True And ChkIVA(1).Value = True Then
MsgBox "Debe elegir sólo un tipo de IVA.", vbInformation, "ALTA DE PRODUCTOS."
ChkIVA(0).setfocus
Exit Sub
Else
Set RstProductos = New ADODB.Recordset
StrNuevoProducto = "INSERT INTO PRODUCTOS(Cod_Producto,Desc_Prod,Cantidad,Precio_Parcial,IVA_Incluido,Tipo_IVA) VALUES ('" & Trim(Cod_Producto) & "','" & Desc_Producto & "'," & Cant_Producto & ",'$ " & CDbl(Precio_Parcial) & "','$ " & CDbl(IVA_Incluido) & "','" & Str(Tipo_IVA) & " %')"
RstProductos.Open StrNuevoProducto, Base, adOpenStatic, adLockOptimistic
MsgBox "El Producto " & frmCompras.TxtProductos(1).Text & " Se ha incorporado al STOCK. ", vbInformation, "ALTA DE PRODUCTOS."


        

2 respuestas

Respuesta
2

Porqué poner dos casillas de verificación cuando puedes sustituir un cuadro de texto por un combinado. Por ejemplo, si tengo el formulario Productos

Si pongo el cursor sobre el control Precio Final, si haber elegido nada en IVA

Cuando pulso Aceptar el cursor se vuelve al combinado IVA. Si elijo un valor

Y pongo el cursor sobre precio final

El código del evento Al recibir el enfoque(aunque si se eligiera o no el iva antes de PrecioSi o Cantidad se podría poner en el evento Después de actualizar PrecioSin) es

Private Sub PrecioFinal_GotFocus()
If IsNull([IVA]) Then
MsgBox "Nenico, tienes que elegir algo en el IVA", vbOKOnly, "¡¡ Ay cabecita !!"
IVA.SetFocus
ElseIf Not IsNull([IVA]) Then
PrecioFinal = PrecioSin * (1 + IVA / 100)
End If
End Sub

Lo que no entiendo es lo de docmd. runsql "insert... ya que el formulario depende de la tabla Productos. Si lo entendería en caso de que fuera independiente.

Lo siento, leí lo de Access y creí que te referías a él.

¡Gracias! Aunque entendiste que era para Access, la idea me vino GENIAL. Puse un combo y ya me funciona!!!

Hice unas pequeñas modificaciones... 

Pongo una parte... Lo demás es todo igual... Por si le sirve a alguien más...

If cmbIVA.Text = "Seleccionar" Then
MsgBox "Debe seleccionar un Porcentaje de IVA", vbInformation, "ALTA DE PRODUCTOS."
cmbIVA.SetFocus
Exit Sub
Else
If cmbIVA.Text = "10,5%" Then

Muchas gracias nuevamente por tomarte el tiempo en responder!!! La ayuda es invaluable!!! Saludos!!!

Respuesta
2

Puedes validar simplemente que si los dos chicas son iguales o no para insertar o no los datos :

If ChkIVA(0).Value = ChkIVA(1).Value Then
MsgBox "Debe elegir un valor de IVA", vbInformation, "ALTA DE PRODUCTOS."
Else
Set RstProductos =....

Si no quieres lanzar el mismo mensaje:

Const msg1 as string ="Debe elegir un valor de IVA"

Const msg2 as string ="Debe elegir sólo un valor de IVA"

If ChkIVA(0).Value = ChkIVA(1).Value Then
MsgBox Iif(ChkIVA(0).Value =0,msg1,msg2),vbInformation, "ALTA DE PRODUCTOS."
Else
Set RstProductos =....

¡Gracias por responder!!! Ya lo resolví con la ayuda de Icue González. 

Gracias igual!! 

Uso de dos Checkbox para elegir sólo un valor. VB 6.0 Access 2003 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas