Access - Módulos - funciones, agregar un select

 
Vista:

Módulos - funciones, agregar un select

Publicado por Victor (16 intervenciones) el 04/11/2002 13:42:51
Hola a todos, soy principiante en Access y les tengo una consulta.
Quiero crear una función que dentro de su código incluya una consulta select y que me devuelva el valor que retorna con el Select.

Doy un ejemplo: Quiero crear una función que recibe como parámetro el código de cliente y retorna su total de creditos.

En SQL Server sería algo así:

CREATE FUNCTION dbo.f_tot_cred (@cliente bigint)
RETURNS float AS
BEGIN
declare @tot_cred float;
select @tot_cred = sum(cred_monto) from creditos where cli_cliente = @cliente
return @tot_cred
END

Tengo entendido que con Access puedo crear funciones dentro de los módulos. Lo que no sé es como programar con el VBA de Access.

Alguién me pudiera dar un ejemplo de eso?, si es posible les pido que me conviertan el código que puse como ejemplo a Access.

Utilizo Access 2000.

Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Módulos - funciones, agregar un select

Publicado por Pancho (149 intervenciones) el 04/11/2002 17:56:22
Hola

Existe varias maneras, la mas simple en VBA es esta:

dim id_cliente as long
dim tot_cred as double

id_cliente = InputBox("Indique Codigo Cliente")

tot_cred =dsum("cread_monto","credito","cli_cliente=" & id_cliente)

DSum es una funcion de base de datos propia de access puedes solicitar la ayuda en linea para aprender como usarla.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Módulos - funciones, agregar un select

Publicado por Victor (16 intervenciones) el 04/11/2002 19:39:12
Muchas gracias Pancho, par ejemplo que mostré funciona super bien la función que me comentaste.

Quiero hacer otra consulta, se puede usar SQL dentro del VBA?, por ejemplo crear una función que realice algunos SELECT y ejecute algunos INSERT?, o no tengo otra opción que buscar si hay alguna función predefinida que realice lo que necesito.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Módulos - funciones, agregar un select

Publicado por Pancho (149 intervenciones) el 05/11/2002 00:57:11
Hola

Si por supuesto que puedes usar SQL dentro de funciones o procedimientos personalizados, para ellos debes a prender un poco acerca de DAO y/o ADO cada uno tiene sus particularidades y dependiendo de lo que quieras hacer seleccionas uno u otro metodo

Ejemplo:

Function DevuelveFacturas(ByVal sCadSQL As String) As DAO.Recordset
Dim rst As DAO.Recordset
Set rst = dbs.OpenRecordset(sCadSQL)
DevuelveFacturas = rst
End Function

Private Sub pbFacturas_Click()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset

Set dbs = DBEngine.OpenDatabase("DATOS.DMB")

Set rst = DevuelveFacturas( "SELECT * FROM FACTURAS WHERE ID_CLIENTE=100")

With rst
.MoveFirst
Do While Not .EOF
Debug.Print .Fields("FACTURA_NO")
.MoveNext
Loop
End With

'Cerramos recordset y base de datos
rst.Close
dbs.Close

Set rst = Nothing
Set dbs = Nothing
End Sub

Por supuesto existen metodos mas eficientes que este, pero en tu caso por algo se empieza

Saludos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Módulos - funciones, agregar un select

Publicado por Victor (16 intervenciones) el 05/11/2002 12:58:52
Muchas gracias Pancho, ahora ya sé por donde comenzar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar