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

Ayuda con Funcion

Estas en el tema de Ayuda con Funcion en el foro de Visual Basic clásico en Foros del Web. Saludos amigos bueno haber creo que es algo basico pero se me esta complicando tengo una aplicacion en vb6 con na base de datos en ...
  #1 (permalink)  
Antiguo 27/10/2007, 16:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Ayuda con Funcion

Saludos amigos bueno haber creo que es algo basico pero se me esta complicando tengo una aplicacion en vb6 con na base de datos en sql server m conexion a mi baso la hago medianto ADO hata alli n tengo problemas hago mis consultas normal en el evento de un boton o un procedmiento ya sea publico o privado y todo bien pero ahora bueno para no hacer les ecento largo esta es mi fcio basica

Public Sub busca(ByVal resultado As Integer)

'Se conecta a la base
Call conexion

'hace la consulta
cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select count(*) from t_datos"
Set rs = cmd.Execute()


End Sub

y se supone que el resultado me lo debe guardar en la variable resultado o me equivoco despues solo invoco la funcion asi

call busca(resultado)


Pero no me trae nada diganme cual es el problema se los agradecer con gusto
  #2 (permalink)  
Antiguo 27/10/2007, 18:44
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Ayuda con Funcion

Te comento:
Esto no es una función es un procedimiento y como tal no devuelve nada, para eso ya están las funciones.
Código:
Public Sub busca(ByVal resultado As Integer)
Te pongo un ejemplo:

Código:
Private Sub Form_Click()
Dim resultado As Integer
resultado = 0

busca1 (resultado)
MsgBox "El procedimiento devuelve: " & resultado

MsgBox "La función devuelve:" & busca2(resultado)
End Sub

Public Sub busca1(ByVal resultado As Integer)
resultado = 10
End Sub

Public Function busca2(ByVal resultado As Integer) As Integer
busca2 = 10
End Function
Espero que te sirva.
Un saludo.
  #3 (permalink)  
Antiguo 27/10/2007, 20:08
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Ayuda con Funcion

Aun tengo roblemas estuve haciendopruebas con la funcion 2 que me hiciste favor de escribir pero mi consulta no logo hacer que me la aroje en la variable

Public Function busca2(ByVal resultado As Integer) As Integer
'invoca la conexion
Call conexion

cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select count(*) from t_datos"
Set rs = cmd.Execute()

busca2 = rs
End Function


colocando un valor directo o fijo si me o carga bien pero no logo me carge el resultado de la consulta en esa variable
  #4 (permalink)  
Antiguo 28/10/2007, 03:05
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Busqueda Re: Ayuda con Funcion

Activa la referencia: Microsoft ActiveX Data Objects 2.6 Library (si no la tienes)

Antes de:
Código:
Set rs = cmd.Execute()
Pones:
Código:
Set rs = New ADODB.Recordset
te dejo como deberia de quedar:

Código:
Public Function busca2(ByVal resultado As Integer) As Integer
'invoca la conexion
Call conexion

cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select count(*) from t_datos"
Set rs = New ADODB.Recordset
Set rs = cmd.Execute()

'Si tiene valor false la propiedad EOF es que la consulta produjo resultados, si es true es que la consulta no ha devuelto nada. 

If rs.EOF = False Then    
   'condiciones si tiene datos
else
   'condiciones si no tiene datos
End If


End Function

Espero que te sirva.
  #5 (permalink)  
Antiguo 28/10/2007, 15:38
 
Fecha de Ingreso: diciembre-2003
Mensajes: 595
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Ayuda con Funcion

De echo la consulta me sale erfectamente lo que no encontraba era cmo asignarle a la variable de la fncion que es resultado el numero del resultado pero ya vi solo me faltaba algo y te muestro como quedo gracias por todo


Public Sub busca1(ByVal resultados As Integer)

Call conexion

cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "select count(*) as total from t_datos"
Set rs = cmd.Execute()

resultados = rs!total
End Sub



Gracias sige asi ayudando a la gente
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 01:22.