Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

No coinciden los tipos

Estas en el tema de No coinciden los tipos en el foro de Visual Basic clásico en Foros del Web. Ando liado con el proyecto de fin de modulo y he llegado a un punto que no entiendo porque me da el error: Dim dni ...
  #1 (permalink)  
Antiguo 17/02/2011, 06:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
No coinciden los tipos

Ando liado con el proyecto de fin de modulo y he llegado a un punto que no entiendo porque me da el error:

Dim dni
Dim opcion
Dim texto As String
Dim texto2 As String
Dim db As Database
Dim resultado
Dim resultado2
Set db = CurrentDb()

dni = dni_persona.Value
opcion = id_vivienda.Value

texto = "select count(pv.dni_persona) from personas_vivienda pv where pv.id_vivienda = " & opcion & ";"
Set resultado = CurrentDb.OpenRecordset(texto, dbOpenDynaset)

texto2 = "select v.num_personas_vivienda from viviendas v where v.id_vivienda = " & opcion & ";"
Set resultado2 = CurrentDb.OpenRecordset(texto2, dbOpenDynaset)

If resultado = resultado2 Then


He probado especificando:

Dim resultado as integer
Dim resultado2 as integer

Pero nada...
¿Podeis ayudarme por favor? Yo soy mas de C y en VB ando justito ^^ y si es rapido mejor que se me agota el tiempo para terminarlo.

Muchas gracias

PD: El error lo marca en la condicion del if
  #2 (permalink)  
Antiguo 17/02/2011, 08:15
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: No coinciden los tipos

Cita:
Iniciado por ruudy Ver Mensaje
¿Podeis ayudarme por favor? Yo soy mas de C y en VB ando justito ^^ y si es rapido mejor que se me agota el tiempo para terminarlo.

Muchas gracias

PD: El error lo marca en la condicion del if

No digas huevadas... El que sabe programar no le interesa el lenguaje, si lo podes hacer esto en C tambien tendrias que poderlo en VB...


Lo que estas haciendo es comparar 2 recorset, que es un error GRAVISIMO... Lo que tenes que comparar son valores de los recorset...

Es decir carga tu consulta y luego guarda aparte el valor a comparar, y ahi recien compara.

Me parece que te falta echarle un vistazo enorme a conexiones, recorset, sql
  #3 (permalink)  
Antiguo 17/02/2011, 08:31
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: No coinciden los tipos

No entiendo de bases de datos ni sé que tipo de dato pueden representar resultado y resultado2, pero imagino que lo que esperas recibir es un solo valor y que ese valor es un número, de modo que quizá si declaras las variables como Integer y despues haces las llamadas asi:

Set resultado = CInt(CurrentDb.OpenRecordset(texto, dbOpenDynaset))
y
Set resultado2 = CInt(CurrentDb.OpenRecordset(texto2, dbOpenDynaset))

tal vez al compararlos no te dé error, aunque en ese caso, cuando hiciste la prueba declarando las variables como Integer creo que debería haberte generado el error en una de esas líneas donde asignas el valor a las variables en lugar de en la linea del If que comentas.

En fin, solo intento echar una mano.

Suerte.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #4 (permalink)  
Antiguo 17/02/2011, 08:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: No coinciden los tipos

Cita:
Iniciado por culd Ver Mensaje
No digas huevadas... El que sabe programar no le interesa el lenguaje, si lo podes hacer esto en C tambien tendrias que poderlo en VB...


Lo que estas haciendo es comparar 2 recorset, que es un error GRAVISIMO... Lo que tenes que comparar son valores de los recorset...

Es decir carga tu consulta y luego guarda aparte el valor a comparar, y ahi recien compara.

Me parece que te falta echarle un vistazo enorme a conexiones, recorset, sql
Podrias ponerme un ejemplo de como seria por favor?

EDIT: Soluccionado

select count(pv.dni_persona) as num1
select v.num_personas_vivienda as num2

If resultado!num1 = resultado2!num2 Then

Asi se solucciona, muchas gracias, me encendisteis la bombilla jeje.

Sasludos.

Última edición por ruudy; 17/02/2011 a las 08:51
  #5 (permalink)  
Antiguo 17/02/2011, 08:51
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: No coinciden los tipos

Cita:
Iniciado por ruudy Ver Mensaje
Podrias ponerme un ejemplo de como seria por favor?
Esto es VB 6.0 no?

Busca el objeto "CurrentDB" quiero verlo como es, que esta utilizando

Generalmente se usa ADO, o DAO para el acceso a datos mediante ODBC

Etiquetas: tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.