Docmd.RunSQL
Sobre el problema que tenía al ejecutar una consulta desde un formulario que era a su vez subformulario de un formulario de navegación y que por tanto me pedía el parámetro del id_lead cada vez que la ejecutaba, se me ha ocurrido una alternativa que pensé que podría funcionar aunque quizás sea un poco cutre; construirme la sentencia sql a medida.
Para ello me he creado una variable intcurrentleadid donde me copio el id_lead del registro donde estoy en ese momento.
Luego ejecuto este código:
dim strsql as string
strsql = "insert into acciones ( id_lead, id_estado, estado, observaciones, id_tipo_acción ) select lead.id_lead, lead.id_estado_lead, tblestado_lead.estado_lead, 'cambio de estado' as expr1, 2 as expr2 from tblestado_lead inner join lead on tblestado_lead.id_estado_lead = lead.id_estado_lead where (((lead.id_lead)=" & intcurrentleadid & "));"
Docmd. Runsql "strsql"
Pero no pasa absolutamente nada... He comprobado que la variable me recoge correctamente el valor del id_lead e incluso me he creado he pegado el valor de strsql en un cuadro de texto para comprobarlo y queda así:
insert into acciones ( id_lead, id_estado, estado, observaciones, id_tipo_acción ) select lead.id_lead, lead.id_estado_lead, tblestado_lead.estado_lead, 'cambio de estado' as expr1, 2 as expr2 from tblestado_lead inner join lead on tblestado_lead.id_estado_lead = lead.id_estado_lead where (((lead.id_lead)=127));
¿Qué estoy haciendo mal para que no funcione?
Para ello me he creado una variable intcurrentleadid donde me copio el id_lead del registro donde estoy en ese momento.
Luego ejecuto este código:
dim strsql as string
strsql = "insert into acciones ( id_lead, id_estado, estado, observaciones, id_tipo_acción ) select lead.id_lead, lead.id_estado_lead, tblestado_lead.estado_lead, 'cambio de estado' as expr1, 2 as expr2 from tblestado_lead inner join lead on tblestado_lead.id_estado_lead = lead.id_estado_lead where (((lead.id_lead)=" & intcurrentleadid & "));"
Docmd. Runsql "strsql"
Pero no pasa absolutamente nada... He comprobado que la variable me recoge correctamente el valor del id_lead e incluso me he creado he pegado el valor de strsql en un cuadro de texto para comprobarlo y queda así:
insert into acciones ( id_lead, id_estado, estado, observaciones, id_tipo_acción ) select lead.id_lead, lead.id_estado_lead, tblestado_lead.estado_lead, 'cambio de estado' as expr1, 2 as expr2 from tblestado_lead inner join lead on tblestado_lead.id_estado_lead = lead.id_estado_lead where (((lead.id_lead)=127));
¿Qué estoy haciendo mal para que no funcione?
1 Respuesta
Respuesta de Angel Navales
1