** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error al contar el número de registros en una cons
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError al contar el número de registros en una cons

 Responder Responder
Autor
Mensaje
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Tema: Error al contar el número de registros en una cons
    Enviado: 23/Octubre/2020 a las 09:52
Hola a tod@s 
Tengo la consulta "qryPrueba" con tres tablas; tblA, tblB y tblC
Lo que quiero es saber el número de registros que tiene la consulta para posteriormente utilizar ese valor y para ello creo el campo NumReg con la siguiente expresión:
NumReg: DCont([tipo1];"qryPrueba")
y me devuelve #Error
Sin embargo si hago la llamada a cualquiera de las tablas me devuelve el valor del número de registros de la tabla llamada p.e 
NumReg: Dcont([tipo1];"tblA")
y me devuelve el los del número de registros de la "tblA", no los de la consulta "qryPrueba" que es lo que deseo.
Gracias de antemano
Juan
jj
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 10:07
Sin saber la SQL de qryPrueba es literalmente imposible dar una respuesta ajustada; solo podemos disparar a ciegas.

¿Qué tipo de consulta es? ¿Selección o unión? ¿Cómo relacionas (si es que se relacionan) las tablas?


Xavi, un minyó de Terrassa

Mi web
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 11:20
Hola Xavi, gracias por tu ayuda
Decir que la consulta tiene un campo DNI con el criterio [Formilarios]![frmAfiliacion]![DNI] con objeto de que aparezcan los registros que tengan el DNI del formulario frmAfiliacion. 
Esto sin el campo NumReg funciona correctamente pero cuando introduzco el NumReg con intención de saber el número de registro de la consulta y solamente de la consulta, no de las tablas, sale el siguiente mensaje:
"La expresión que introdujo como parámetro de consulta produjo un error "Microsoft Office Access no puede encontrar el nombre "Formilarios!frmAfiliacion!DNI que introdujo en la expresión.
Un saludo
jj
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 11:53
Hola.
Prueba con algo parecido a:
NumReg: DCont("*";"qryPrueba")

Ya comentas.
Un saludo a todos

Añado: Se supone que FormIlarios es un error al escribir y que el formulario está abierto en ese momento


Editado por prga - 23/Octubre/2020 a las 11:55
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 13:43
Hola prga
Ya lo había probado y hace lo mismo
Un saludo y gracias
jj
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 13:59
Por probar y buscar el punto exacto del error.

Si en tu consulta sustituyes la llamada al formulario por una pregunta [Escribe DNI] y haces la prueba, ¿te devuelve el resultado o te salta error?

Si devuelve resultado (y correcto) está claro que el problema es la llamada al valor del formulario.
Si salta error el problema es la propia consulta 

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 14:15
Xavi; respecto a tus pregunta decirte que es una consulta de selección y la SQL es:

SELECT tblAfiliacion.Tipo1, tblAfiliacion.DNI, DCount("*","qryPrueba") AS NumReg, tblAfiliacion.Nombre, tblProductosAC.NombreProducto

FROM tblAfiliacion INNER JOIN (tblProductosAC INNER JOIN tblAuxProductos ON tblProductosAC.IdProductoAC = tblAuxProductos.IdProductoAC) ON tblAfiliacion.IdAfiliacion = tblAuxProductos.IdAfiliacion

WHERE (((tblAfiliacion.DNI)=[Formularios]![frmAfiliacion]![DNI]));


jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 16:11
Hola Xavi
He hecho lo que dices y poniendo directamente el valor del DNI sigue el error así que ya lo vamos acotando, el problema está en la consulta.
Seguimos investigando
Un saludo
Juan
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 16:18
Hola de nuevo
Perdón, la prueba la he hecho mal, he cambiado la forma de llamada poniendo el número del DNI directamente en el criterio y SIN CERRAR la consulta permanece el error pero CERRÁNDOLA y abriéndola de nuevo todo funciona, por tanto el error lo podemos tener en el valor del formulario.
Mis disculpas
Juan
jj
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 17:42
Hola de nuevo:
Voy a ver como lo explico:
Situación1._Sin incorporar a la consulta el contaje de registros pero con el filtro del DNI ya expuesto anteriormente.
Abro la consulta desde la propia consulta mediante doble click y sale un cuadro de diálogo pidiendo el valos del DNI, se lo incorporo y todo funciona.
Abro la consulta desde el formulario con el registro situado en un determinado DNI y todo funciona.

Situación2.-Incorporando a la consulta el contaje de registros mediante la función DCont y con el filtro del DNI.
Abro la consulta desde la propia consulta haciendo doble click y sale el error.
Abro la consulta desde el formulario y todo funciona.
La verdad es que no lo entiendo 
Saludos
Juan
jj
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 20:23
1. Abres la consulta,
2. Access ve el DCont y para calcular el resultado tiene que volver a ejecutar la misma consulta,
3. Por lo que vuelves al punto 1, y entras en un bucle infinito

Si quieres saber cuántos registros devuelve una consulta, tienes que usar el DCont fuera de la consulta, o usar un Recordset, o usar la función Contar que tienen los formularios e informes.
Arriba
Juan Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 26/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 1035
Enlace directo a este mensaje Enviado: 23/Octubre/2020 a las 20:50
Hola Pitxiku
No necesito abrir la consulta desde la consulta, solo lo hacía mientras probaba lo que iba ejecutando. Con lo hecho queda resuelto el problema.
Muchas gracias a todos
Juan
Nota: Por mi parte podéis quitar el hilo
jj
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable