SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: abelsql3000 en Lunes 30 de Abril de 2007, 00:45

Título: Curiosidad Al Declarar Variables
Publicado por: abelsql3000 en Lunes 30 de Abril de 2007, 00:45
Hola aqui de nuevo con una nueva inquietud
Deseo sumar varios valores de variables y he declarado de la siguiente manera para que me funcione correctamente

Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim a As Currency
Private Sub Form_Click()
x = Text1
y = Text2
z = Text3
a = (x + y + z) / 3
Text4 = a
End Sub

Pero cuando deseo declarar las variables de la siguiente manera

Dim x,y,z As Integer
Dim a As Currency
Private Sub Form_Click()
x = Text1
y = Text2
z = Text3
a = (x + y + z) / 3
Text4 = a
End Sub

no me funciona.
Que esta sucediendo, estoy declarando mal?????
No deseo usar la funcion VAL, salvo que sea sumanente necesario, quiero darle enfasis a la declaracion de variables
Necesito su aporte, adjunto el archivo por cualquier observacion mas clara.
Gracias atte Abel
Título: Re: Curiosidad Al Declarar Variables
Publicado por: Mollense en Lunes 30 de Abril de 2007, 01:03
Cual es el error?
En teoría debería funcionar de las dos formas.
Título: Re: Curiosidad Al Declarar Variables
Publicado por: AnioN en Lunes 30 de Abril de 2007, 01:03
sino me equivoco en versiones de VB 6.0 y anteriores no esta permitido declarar multiplies variables en la misma linea.
Título: Re: Curiosidad Al Declarar Variables
Publicado por: cpmario en Lunes 30 de Abril de 2007, 02:37
El problema es el siguiente, en la línea que tiene:
Dim x, y, z As Integer
VB declara a X y Y como variantes y a Z como integer.

Suponiendo que los valores de Text1 sea =1 Text2=2 y Text3=3

En esta línea
a = (x + y + z) / 3

Sucede lo siguiente: Se concatena X y Y como texto y el resultado es una cadena con valor de "12" a la cual se le suma 3 (el valor de z) que da como resultado 15 y si lo divides entre 3 el resultado es A=5

La declaración múltiple la debes hacer así:

Código: Text
  1. Dim x As Integer, y As Integer, z As Integer
  2.  
:comp: