** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Equivalencia vba y sql
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoEquivalencia vba y sql

 Responder Responder
Autor
Mensaje
Jorge33 Ver desplegable
Habitual
Habitual


Unido: 09/Abril/2019
Localización: madrid
Estado: Sin conexión
Puntos: 58
Enlace directo a este mensaje Tema: Equivalencia vba y sql
    Enviado: 07/Mayo/2020 a las 16:56
Hola:
En vba cuando tengo que hacer referencia a un campo que es alfanumérico utilizo algo así:
Código_obra Like '*" & Me!Código_obra & "*' "

He intentado hacer algo así para filtrar en una consulta pero no consigo que funcione.
He intentado esto:
((Obras.Contrato) Like '*" & [Contratos]![Contrato] & " *')
 ¿cual sería la equivalencia en sql o como podría hacerlo?

Muchas gracias
 
< x="0" y="0" width="99999" height="99999" id="hc_extension_off">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black_back">
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 07/Mayo/2020 a las 18:30
En VBA hay que tener cuidado con las comillas dobles; por eso alternamos el uso de apostrofes y comillas. Los apostrofes son las comillas de la SQL (no se si me explico).

En SQL yo lo concateno sin alternar apostrofes y comillas: todo comillas

Like "*" & [Contratols]![Contrato] & "*"



Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Jorge33 Ver desplegable
Habitual
Habitual


Unido: 09/Abril/2019
Localización: madrid
Estado: Sin conexión
Puntos: 58
Enlace directo a este mensaje Enviado: 07/Mayo/2020 a las 21:49
Gracias.
A lo mejor es algo por otro lado pero no me acaba de funcionar.
Si utilizo los apostrofes no me pregunta por el valor de [Contratos]![Contrato] pero no me da resultados y si utilizo todo comillas me pregunta por el valor de [Contratos]![Contrato] y cuando se lo introduzco me da el resultado esperado.
¿que puede ser?

< x="0" y="0" width="99999" height="99999" id="hc_extension_off">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black_back">
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 08/Mayo/2020 a las 00:32
La pregunta es ¿que és [Contratos]![Contrato]? ¿un campo? ¿un control? ¿una pregunta?


Xavi, un minyó de Terrassa

Mi web
Arriba
Jorge33 Ver desplegable
Habitual
Habitual


Unido: 09/Abril/2019
Localización: madrid
Estado: Sin conexión
Puntos: 58
Enlace directo a este mensaje Enviado: 08/Mayo/2020 a las 11:36
LLevas razón. Me explico igual que un libro cerrado.
Contratos es una tabla y Contrato es un campo de esa tabla con un único registro.
He usado el generador para asegurarme de que hacía correctamente la referencia.

Tengo muchas consultas que incluyen el campo contrato y lo que quiero es que en vez de tener que cambiar en cada consulta el nombre del contrato con cambiar en Contratos!Contrato me cambien todas.

No sé si me he explicado mejor ahora.

Muchas gracias
< x="0" y="0" width="99999" height="99999" id="hc_extension_off">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black_back">
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 08/Mayo/2020 a las 12:48
Si [Contratos]![Contrato] contiene un valor único, ¿que tal si vamos un paso atrás y lo miramos en perspectiva?... ¿que sentido tiene utilizar el Like? ¿No sería lo mismo utilizar =?

Por otro lado, el problema se te genera porque la tabla Contratos no está en la consulta. Eso plantea 2 soluciones al tu problema:

1. En lugar de apuntar a un campo de una tabla, utiliza una función pública que devuelva el valor de ese campo.
2. Incluye la tabla en la consulta y la relacionas de tal forma que devuelva todos los registros de la tabla contratos (el que tu quieres) y los de la otra tabla que coinciden (una consulta de coincidentes, vaya) de forma que te ahorras el criterio.

Explora cual de las soluciones te conviene más.
Xavi, un minyó de Terrassa

Mi web
Arriba
Jorge33 Ver desplegable
Habitual
Habitual


Unido: 09/Abril/2019
Localización: madrid
Estado: Sin conexión
Puntos: 58
Enlace directo a este mensaje Enviado: 01/Junio/2020 a las 00:16
Muchas gracias
He utilizado la propuesta 2 y funciona perfectamente.
También he usado la codificación con like como origen de datos del un formulario y funciona muy bien por si le puede servir a alguien.

Puede cerrarse el tema
< x="0" y="0" width="99999" height="99999" id="hc_extension_off">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast">< x="0" y="0" width="99999" height="99999" id="hc_extension_highcontrast_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_grayscale_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_back">< x="0" y="0" width="99999" height="99999" id="hc_extension_invert_grayscale">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black">< x="0" y="0" width="99999" height="99999" id="hc_extension_yellow_on_black_back">
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable