** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Usar Select en DoCmd.RunSQL
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Usar Select en DoCmd.RunSQL

 Responder Responder
Autor
Mensaje
RRubiera Ver desplegable
Nuevo
Nuevo


Unido: 09/Septiembre/2022
Localización: Santo Domingo
Estado: Sin conexión
Puntos: 1
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita RRubiera Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Usar Select en DoCmd.RunSQL
    Enviado: 09/Septiembre/2022 a las 18:11
Buenas tardes para todos, por favor alguien podría ayudarme a insertar esto en un 

DoCmd.RunSQL

 en VBAccess.

SELECT Count(TClientes.Cliente) AS CuentaDeCliente
FROM TCocinas INNER JOIN TClientes ON TCocinas.IdCocina=TClientes.IdCocina
GROUP BY TCocinas.IdCocina, TClientes.IdCocina
HAVING (((TCocinas.IdCocina)=Formularios!FPedidos!CcCocina));

La misma la utilizo para contar la cantidad de clientes que contiene cada cocina al momento de ser seleccionada en ul cuadro combinado llamada IdCocina.

Agradecería infinitamente cualquier colaboración.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Septiembre/2022 a las 18:30
Hola bienvenido,

Las consultas RunSQL son para 'consultas de acción' no para consultas de selección.

Hay varios caminos a seguir (principales, que siempre hay más):
- abres un recordset con ese criterio
- te creas una consulta y después explotas esta (es el camino del recordset pero haciéndolo menos temporal)
- usas una unción de dominio DCount (en este caso no aplica puesto que tu consulta usa más de una tabla)


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
jilo Ver desplegable
Colaborador
Colaborador


Unido: 19/Diciembre/2004
Localización: TAFALLA
Estado: Sin conexión
Puntos: 959
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jilo Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Septiembre/2022 a las 08:11
Hola a todos,
Aparte de seguir los pasos que te ha puesto @Mihura, tienes que tener en cuenta que la sentencia SQL debe ir entrecomillada ya que las consultas, ya sean de acción (Introducción, modificación y eliminación de registros) o de selección (Extracción de datos) necesitan un parametro cadena (String). Entonces debes introducir el dato del formulario en la cadena SQL para que la filtre, que en este caso es Formularios!FPedidos!CcCocina.

Así te quedaría el final de la sentencia :
" ... HAVING (((TCocinas.IdCocina)=" & Formularios!FPedidos!CcCocina & "));"


Espero te sirva !!!!!!
Iñaki
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 18/Septiembre/2022 a las 11:09
jilo,

Si estoy equivocado pido disculpas pero...

La sintaxis Formularios!FPedidos!CcCocina es la propia de las SQL de las consultas por lo que, en caso de utilizar una consulta almacenada, sería correcto.

Si se utilizara para una SQL base de un recordset se podría utilizar tanto esa sintaxis como la que tu sugieres... salvo que sería ligeramente distinta porque "Formularios" no lo entendería y deberiamos sustituir por Forms o, si es el propio formulario, un simple Me

Como curiosidad final, *casi* todos los parentesis de las WHERE y HAVING pueden ser obviados lo que nos reduce los dolores de cabeza al crear consultas dentro de VBA.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable