Título: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 20:29 pm Bueno es el primer tema que abra aca en esta pagina muy interesante. y decirles que ya llevo como 3 semanas leyendo este foro :)
Yo estudio Ingenieria de Sistemas y estoy en II ciclo y estan enseñando a usar VB6, el cual me gusta :D pero tengo problemas con el aprendizaje. Quiero aprender y se que aqui en este foro lo lograre, CLARO! con la ayuda de ustedes ;D Mi problema es SELECT CASE nose muy bien como aplicarlo. En la Univ. me han dado un ejercicio que dice asi "Supongamos que al efectuar la compra en un almacen, si adquirimos mas de 100 unidades de un mismo articulo, nos hacen un descuento del 30%, entre el 25 y 100 un 20% ; y entre 10 y 24 un 10% Y no hay descuento para una adquisicion de menos de 10 unidades. Diseñar un formulario donde se incluya los datos importantes y calcular el importe a pagar. Use Select Case." Y ya avanze algo pero me sale error :huh: a ver si alguien me ayuda ------------------------------------------------------------------------------------ Dim valor As Double Dim descuento As Double Private Sub cmdLimpiar_Click() txtCantidad.Text = "" txtSinDes.Text = "" txtTotal.Text = "" End Sub Private Sub cmdResultado_Click() Select Case Pelotas Case Val(txtCantidad.Text) > 100 lblDescuento.Caption = "Descuento de 30%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor descuento = valor * 30 / 100 txtTotal.Text = valor - descuento Case 100 > Val(txtCantidad.Text) >= 25 lblDescuento.Caption = "Descuento de 20%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor txtTotal.Text = valor * 20 / 100 txtTotal.Text = valor - descuento Case 25 > Val(txtCantidad.Text) >= 10 lblDescuento.Caption = "Descuento de 10%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor txtTotal.Text = valor * 10 / 100 txtTotal.Text = valor - descuento Case Val(txtCantidad.Text) < 10 lblDescuento.Caption = "No hay Descuento" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor txtTotal.Text = valor txtTotal.Text = valor - descuento End Select End Sub Private Sub cmdSalir_Click() Beep End End Sub ---------------------------------------------------------------------------------------------- Pues la mayor duda que tengo es que cuanto coloco 9 unidades de Pelotas me sigue saliendo con descuento de 30% pero esta mal. No deberia a ver descuento. Para mi la falla esta aca: "Case 25 > Val(txtCantidad.Text) >= 10" "100 > Val(txtCantidad.Text) >= 25" "Case Val(txtCantidad.Text) < 10" Para mi esa son las fallas, pero como solucionarlo :huh: GRACIAS por leer este tema :) Y espero su ayuda. Saludos! Título: Re: Problemas con SELECT CASE Publicado por: Spider-Net en 11 Octubre 2008, 21:25 pm Es que eso no se hace así amigo. Lo primero que veo es que la variable que usas en el case es una variable "pelotas" que en el código que has puesto yo no veo por ninguna parte. No sé si es que se te ha pasado ponerlo. Otra cosa es que aquí las comparaciones no se hacen exactamente igual que en matemáticas que es lo que veo que estás intentando xD.
Hay muchas formas de hacer esto, yo lo he hecho por ejemplo así: Código
Consejo: Intenta indentar bien el código, te ayudará mucho cuando hagas códigos largos y necesites buscar cosas y hacer pequeños cambios. Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 21:35 pm siii tienes razon :D pero Spider - Net mira lo que hice yo :D MUY RARO ! pero salio :o
MIRA :) ------------------------------------------------------------------------------------------------- Dim valor As Double Dim descuento As Double Private Sub cmdLimpiar_Click() txtCantidad.Text = "" txtSinDes.Text = "" txtTotal.Text = "" lblDescuento.Caption = "" End Sub Private Sub cmdResultado_Click() Select Case Pelotas Case Val(txtCantidad.Text) < 101 lblDescuento.Caption = "Descuento de 30%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor descuento = valor * 30 / 100 txtTotal.Text = valor - descuento Case 100 > Val(txtCantidad.Text), 25 > Val(txtCantidad.Text) lblDescuento.Caption = "Descuento de 20%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor descuento = valor * 20 / 100 txtTotal.Text = valor - descuento Case 25 > Val(txtCantidad.Text), 10 > Val(txtCantidad.Text) lblDescuento.Caption = "Descuento de 10%" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor descuento = valor * 10 / 100 txtTotal.Text = valor - descuento Case Val(txtCantidad.Text) > 10 lblDescuento.Caption = "No hay Descuento" valor = Val(txtCantidad.Text) * 8 txtSinDes.Text = valor txtTotal.Text = valor End Select End Sub Private Sub cmdSalir_Click() Beep End End Sub ------------------------------------------------------------------------------------------------- Me confunde los ">" "<" ">=" "<=" es raro :S Título: Re: Problemas con SELECT CASE Publicado por: Spider-Net en 11 Octubre 2008, 21:48 pm Claro!, me alegro de que te saliese al final. Ya te dije que eso se puede hacer de muchas maneras distitnas, aunque sigo sin saber de donde sacas la variable pelotas. Yo en mi código la he tenido que declarar.
No es que el vb se haga un lío con los símbolos < > <= >=, es que tu sintaxis no era correcta. No puedes hacer esto: 25 >= Val(loquesea.text) < 100 Eso es incorrecto, algo correcto podría ser: Val(loquesea.text)>=25 And Val(loquesea.text) < 100 Es sólo un ejemplo para que entiendas como funcionan las comparaciones. Te recomiendo leerte un buen manual de VB para que tengas bien claro ese tipo de cosas. Saludos! Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 22:01 pm Siii ;D Gracias Spider-Net :)
Pero a ver si tienes tiempo con un ultimo ejercicio, y dice asi: Ejercicio 6 Contraseña Código: Dim i As Integer Private Sub Command1_Click() End End Sub Private Sub COmmand2_Click() 'trabajando con if y select case If Text1.Text = "mar1" And Text".Text="mar1"Then MsgBox "Bienvenido a mi sistema" Else i=i-1 Select Case i Case 0 vez="ninguna" Case 1 vez="una primera" Case 1 vez = "una segunda" End Select Pues eso es todo! :o y no tengo idea que me pide :huh: a ver si me ayuda como ultima vez Spider-Net u otro :rolleyes: Saludos. Título: Re: Problemas con SELECT CASE Publicado por: s E t H en 11 Octubre 2008, 22:12 pm no hay ninguna consigna? entonces tendras que arreglar los errores?
yo encontre alguno, pero es tu tarea :rolleyes: lo que no entiendo es para que se usa la variable Vez Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 22:19 pm Bueno es mi tarea y la estoy tratando de hacer son 6 ejercicios y me falta este ultimo :D
Pero el text1.text= "mar1" y el text2.text= "mar1" son el ID y la Contraseña para ingresar al sistema ya estoy arreglando eso. Pero el problema es la variable " vez " esa cosa tengo que remplazarlo... Pero por que :huh: Título: Re: Problemas con SELECT CASE Publicado por: Spider-Net en 11 Octubre 2008, 22:40 pm No creo que tengas que reemplazarlo por nada, la variable vez es el número de intentos que te queda para meter la contraseña correcta.. Al menos eso creo yo. Y creo que pretenden que te deje intentar 3 veces la contraseña.
Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 23:28 pm pues SI tienes mucha razon Spider - Net. Aun sigo intentado pero no sale.
GRACIAS POR SU AYUDA Spider-Net y s E t H :) Título: Re: Problemas con SELECT CASE Publicado por: Novlucker en 11 Octubre 2008, 23:38 pm Que es lo que no sale.. cual es el problema? Error?
Vistazo de 5 segundos.. :P Citar Text".Text="mar1"Then Y esto otro... Citar Case 1 vez="una primera" Case 1 vez = "una segunda" End Select También el i no comienza con valor alguno... así que si a 0 le restas uno, va quedando negativo.. nunca va a valera 2 o 1 o 0 :rolleyes: Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 11 Octubre 2008, 23:51 pm Ups !! errores de ESCRITURA ;D pues va asi
Código: Dim i As Integer Private Sub Command1_Click() End End Sub Private Sub Command2_Click() If Text1.Text = "mar1" And Text2.Text = "mar1" Then MsgBox "Bienvenido a mi sistema" Else i = i - 1 Select Case i Case 0 vez = "ninguna" Case 1 vez = "una primera" Case 2 vez = "una segunda" End Select End If End Sub Pues le doy el comand1 pero con el text1.text= "mar1" y igual con el text2 y me sale el mensaje de bienvenido al sistema y si en el text1 y text2 coloco otro palabras, no sale nada :rolleyes:. Pues creo que ya esta. Pero mi duda es para que esto? Código: i = i - 1 Select Case i Case 0 vez = "ninguna" Case 1 vez = "una primera" Case 2 vez = "una segunda" :huh: :huh: :huh: :huh: :huh: :huh: Título: Re: Problemas con SELECT CASE Publicado por: Novlucker en 12 Octubre 2008, 00:01 am Supongo que para mostrar a alguien la cantidad de intentos que le quedan... pero en el code no se implementa en ningún lado :-X
Saludos Título: Re: Problemas con SELECT CASE Publicado por: stork32 en 12 Octubre 2008, 00:09 am Pues sii creo que si ;D
Bueno Gracias todos aqui se cierra este tema ;) Saludos! ::) PD: Quiza al rato abra otro Tema para mas dudas :P:laugh: Título: Re: Problemas con SELECT CASE Publicado por: Spider-Net en 12 Octubre 2008, 13:17 pm stork32 ese programa no está acabado tio.
Yo creo que sería algo así: Código
Se puede hacer de otras maneras, pero esa sería una correcta. |