Acerca del desbordamiento de programación de VB, en línea, etc.
Cuando el número es demasiado grande, se desbordará. Eso es inevitable.
Incluso si usa decimal con el rango de datos más grande en VB, siempre es limitado.
El valor máximo posible del resultado de tu multiplicación es demasiado grande, por lo que debes limitar los datos de entrada.
Por supuesto, otra forma es realizar un manejo de errores y dar un mensaje de error cuando se produce un desbordamiento para que el programa no pueda continuar ejecutándose.
El código es el siguiente:
Opción?Explícito
Privado?Sub?Command1_Click()
Dim?N?As? Entero,? M?Como?Entero,?K?Como?Entero,?SUM,?rep
On?Error?GoTo?ErrorHandler
N?=?CInt(Text1. Texto)
M?=?CInt(Text2.Text)
K?=?N
SUM?=?CDec(1)
¿Hacer?Mientras?K?lt;=?M
SUM?=?SUM?*?K
K?=?K ?1
Bucle
Reanudar?cont2
cont:
Texto2.Text?=?K?-?1
cont2:
Text3.Text?=?SUM
Salir?Sub
ErrorHandler:
rep?=?MsgBox("Motivo del error:? "?amp ;?Err.Description,?vbOKOnly,?Err.Source?amp;?"Ocurrió un error")
Reanudar?cont
Fin?Sub
Privado?Sub?Text1_GotFocus()
Text1.SelStart?=?0
Text1.SelLength?=?Len(Text1.Text)
¿Fin?Sub
Privado?Sub?Text2_GotFocus()
Text2.SelStart?=?0
Text2.SelLength?=?Len(Text2.Text)
¿Fin?Sub