Bueno, terminando de hacer un programa con varios formularios (me volvi chango), me encuentro con que cuando quiero imprimir una variable de tipo entero en un msgbox, no me deja (me sale que los tipos no coinciden).
Ahora, cuando redefino esa variable como "string", me deja... ¿Hay alguna teoria sobre las msgbox que no se? (me suena a que si).
Aca tengo una pruebita simple:
Private Sub BotonEjemplo_Click()
Dim var1 As Integer
var1 = 4
MsgBox "La variable 1 es " + var1, vbOKOnly
End Sub
Ahora, si pongo "dim var1 as string" y le pongo el valor entero, me lo imprime.. ¿Acaso el msgbox solo imprime string?
Espero respuesta.
Mira VB no manejo perosi otros lenguajes, y el tema es que justamente suele ser incompatible sumar un número a un texto (como si le dijeras al soft 1+juan = :o ) lo que podes hacer para no iniciar la variable como tipo cadena es usar alguna función conversora, que en lenguajes como PHP o Clipper por ejemplo las hay (algo asi como str(var) ) entonces pones
MsgBox "La variable 1 es " + str(var1), vbOKOnly
No se cual es el equivalente de str() en VB pero quizas se llame igual
EDIT: LO que hace str() es devolver el contenido del la variable pasada como arguemtno en formato cadena, sin convertirla, al solo efecto del uso en ese momento
en tu ejemplo seria "La variable 1 es "+"4" ---> "La variable 1 es 4"
no se si VB te deja variar el tipo de la variable dinámicamente. EN su caso se puede hacer (si tenes que llamar varias veces a la cadena sin que se modifique la variable
Dim var1 as integer
Dim var2 as string
var1 = 4
var2 = str(var1)
Quizas te convegna pegarte una leida sobre funciones de cadena que son muy interesantes y útiles en general
EDIT2: La inversa de str() (al menos en clipper) es val()
Asi si podes variar dinamicmente el tipo de variable podes hacer
Dim var1 as integer
var1 = 23445
var1 = str(var1) ---> "23445"
var1 = val(var1) ---> 23445
Las comillas diferencian el tipo texto de numerico (en algunos lenguajes es la forma de crear una variable cadena o numero)
Camello, tenes razon... justamente busque esa funcion en VB y es la misma.
Muchisimas gracias che!!
El "programin" quedaria asi:
Private Sub Command1_Click()
Dim var1 As Integer
var1 = 4
MsgBox "La variable 1 es " + Str(var1), vbOKOnly
End Sub
PD: En el caso de que el numero no sea entero (o sea, single, double o currency) se puede usar la funcion "Cstr", para que tome en cuenta la coma.
si puede ser, acordate que VB no manejo (auqnue debería) y gralmente los nombres suelen ser comunes. el val() suele tenr un segundo parametro como ser lugares decimales. (en php se usa tambien si mal no recuerdo)