Problema con una instrucción SQL desde vb 6

Buenas
El problema que tengo creo que es una tontería pero me estoy volviendo loco.
A ver quiero ejecutar en mi base de datos en access esta instrucción:
strSQLProy = "SELECT DISTINCT asg.cod_proyecto, proy.des_corta " & _
"FROM asignaciones asg, proyectos proy " & _
"WHERE asg.cod_presona like '" & strCodPersona & _
"' AND proy.cod_proyecto Like asg.cod_proyecto"
Pero no me coge el contenido de la variable strcod_persona sino que me coge un comilla. He probado todas las combinaciones posibles poniendo las comillas simples en todas ls posiciones y de todas las formas posible pero sigue sin cogerme el contenido de la variable.
¿Qué puedo hacer? Estoy desesperado

1 respuesta

Respuesta
1
Para ver el contenido de la variable strcod_persona, márcala y click botón derecho del mouse y pone agregar inspección...
Y agrega la instruccion STOP inmediatemente despues, esto te permitira ver el contenido de la variable strcod_persona
Eso para ver que tiene la variable
Después si el cod de persona esta en un textbox
en lugar de asignarle una variable pon & textbox.text &
También puede ser que el error sea porque estas usando " ' y like
like se usa cuando hay caracteres...
si son numeros usa =
Tambien puedes probar con esto
strSQLProy = "SELECT DISTINCT asg.cod_proyecto, proy.des_corta " & _
"FROM asignaciones asg, proyectos proy " & _
"WHERE asg.cod_presona = " & strCodPersona & _
" AND proy.cod_proyecto = asg.cod_proyecto"
Lo que necesito es saber como conseguir concatenar una comilla simple al texto, he estado buscando en las constantes de visual pero no esta la de la comilla simple.
Ahora estoy la forma de concatenarlo mediante ASCII si sabes como dímelo
Eso es lo que necesito saber para ayudarte
Pues las quiero poner antes y después de la variable strcod_persona, porque el código persona es texto no es numérico por eso uso el like
Es que estas seleccionando datos de 2 tablas distintas pero no las estas uniendo
SELECT DISTINCT [proyectos ].[des_corta], [asignaciones].[cod_proyecto]
FROM proyectos INNER JOIN asignaciones ON [asignaciones].[cod_proyecto] =[proyectos].[cod_proyeto] WHERE
[asignaciones].[cod_persona]= '" & strCodPersona & "'"
Esto debería ser así pero es igual a lo que hiciste vos y no se porque no anda...
Peroo0 acá te va un truquito.
Podes usar el asistente de access para crear una consulta con las 2 tablas que vos necesitas, con los campos que quieres ver mostrar y comparar... eso te va a producir el código de SQL que necesitas INNERJOIN que necesitas ese es el problema...
Quieres tomar datos de 2 tablas pero no las estas uniendo
Creo que así debe ser... de todas maneras intenta probar el asistente de consultas de access cuando pones finalizar, te aparece la consulta...
Deberías agregarle el DISTINCT
Y el where esto lo haces en ver --> sql vista

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas