Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cant. de Registros

27 views
Skip to first unread message

Pata - UOL

unread,
Oct 27, 2003, 7:49:05 AM10/27/03
to
Como hago, por codigo, averiguar la cantidad de registro que tiene una
consulta.??

Muchas gracias


carlos

unread,
Oct 27, 2003, 10:38:07 AM10/27/03
to
mira lo que dice la ayuda
Puede usar la función DCont (DCount) para determinar el
número de registros incluidos en un conjunto de registros
especificado (un dominio). Use la función DCont (DCount)
en Visual Basic, en una macro, en una expresión de
consulta o en un control calculado.
Por ejemplo, puede usar la función DCont (DCount) en un
módulo para obtener el número de registros de la tabla
Pedidos correspondientes a los pedidos realizados en una
fecha determinada.

Sintaxis

DCont(expresión; dominio[; criterios])
DCount(expresión, dominio[, criterios])

La sintaxis de la función DCont (DCount) tiene los
siguientes argumentos:

Argumento Descripción

etc. etc.
>-----Mensaje original-----

>.
>

Búho

unread,
Oct 27, 2003, 10:54:13 AM10/27/03
to
De todas formas, las funciones agregadas de dominio para tablas grandes o
consultas complejas pueden llegar a a ser odiosamente lentas.
Aunque yo no lo he medido con un cronometro en la mano, hay formas de
sustutir estas funciones por otras que trabajen de forma mas
efectiente...por ejemplo Dcount se podría sustuir por esta otra función
pararlela que escribió en su día Juan M. Afan de Ribera.
Aunque nada mas ver el codigo,parece que asusta, todo sea por la rapidez
luego en ejecutar los calculos

'-------------------------------------------------------------
' Autor: Juan M. Afán de Ribera
' Febrero 2003
'-------------------------------------------------------------

Function fCount(Expr As String, _
Domain As String, _
Optional Criteria, _
Optional SQLStatement As Boolean = False) As Variant

On Error GoTo err_Function

'Por si acaso, defino el recordset como Object, aunque
'ningún problema si se quiere declarar como Recordset
'de DAO
Dim rst As Object 'DAO.Recordset

'En el caso de que no hayan criterios y el dominio
'sea una tabla o consulta guardada
If IsMissing(Criteria) And SQLStatement = False Then
Set rst = CurrentDb.OpenRecordset( _
"Select Count(" & Expr & ") " _
& "From [" & Domain & "];", dbOpenSnapshot)
'Caso de que sí hayan criterios y el dominio sea una
'tabla o consulta guardada
ElseIf SQLStatement = False Then
Set rst = CurrentDb.OpenRecordset( _
"Select Count(" & Expr & ") " _
& "From [" & Domain & "] " _
& "Where " & Criteria & ";", dbOpenSnapshot)
'Caso de que el dominio sea una sentencia SQL y
'no se hayan pasado criterios
ElseIf IsMissing(Criteria) Then
Set rst = CurrentDb.OpenRecordset( _
"Select Count(" & Expr & ") " _
& "From [" & Domain & "]. As tmp;", dbOpenSnapshot)
'Caso de que el dominio sea una sentencia SQL y
'sí se hayan pasado criterios
Else
Set rst = CurrentDb.OpenRecordset( _
"Select Count(" & Expr & ") " _
& "From [" & Domain & "]. As tmp " _
& "Where " & Criteria & ";", dbOpenSnapshot)
End If

fCount = rst(0)
rst.Close
Exit Function

'Caso de error se envía un mensaje y se finaliza
err_Function:

MsgBox "Error: " & Err.Number & " " & vbCrLf _
& Err.Description

End Function

...Y si me apuras, no lo sé, a lo mejor merecería la pena crear un Recordset
con esa conulta que mencionas, ver el RecordCount, extraer ese valor y
cerrar el recordset seguidamente.

--

Saludos desde Valladolid
Francisco Javier García Aguado
---
http://www.buho.tk
http://www.clikear.com/webs/accessbhuo/
http://groups.msn.com/Access2000VisualBasic/
---
Gracias por no enviarme preguntas a mi correo.
"Pata - UOL" <pata...@uol.com.ar> escribió en el mensaje
news:%230MwGkI...@TK2MSFTNGP10.phx.gbl...

0 new messages