Imprimir página | Cerrar ventana

No ejecuta consulta en proceso

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86826
Fecha de impresión: 27/Marzo/2026 a las 02:21


Tema: No ejecuta consulta en proceso
Publicado por: jorros
Asunto: No ejecuta consulta en proceso
Fecha de publicación: 09/Diciembre/2023 a las 09:12

Buenos dias

Tengo este código con un comportamiento singular:

DoCmd.SetWarnings False 'Esto deshabilita los mensajes de sistema

Dim VaResp As Integer

Dim VaNfac As String

VaNfac = Forms!FrmHistoricoSinRestricciones!numfactura

 

    VaResp = MsgBox("Este proceso actualiza los datos de cliente/proveedor en la factura actual. ¿Desea continuar?", vbQuestion + vbYesNo, "CONFIRMAR")

            If VaResp = vbYes Then

                DoCmd.OpenQuery "ConCamCliHisSinRes"

                DoCmd.RunSQL "UPDATE TbHisCabFac INNER JOIN TbCliProv ON TbHisCabFac.HisCabCodCli = TbCliProv.MaeCod SET TbHisCabFac.HisCabMaeRazSoc = [MaeRazSoc], TbHisCabFac.HisCabMaeNif = [MaeNif], TbHisCabFac.HisCabMaeDir = [MaeDir], TbHisCabFac.HisCabMaeCodPos = [MaeCodPos], TbHisCabFac.HisCabMaePob = [MaePob], TbHisCabFac.HisCabMaePro = [MaePro] WHERE (((TbHisCabFac.HisCabNumFac)=[Formularios]![FrmHistoricoSinRestricciones]![numfactura]) AND ((TbHisCabFac.HisCabCodCli)=[Formularios]![FrmHistoricoSinRestricciones]![SubTbHisCabFac].[Formulario]![HisCabCodCli]))"

            

         DoCmd.Close acForm, "FrmHistoricoSinRestricciones"

         DoCmd.OpenForm "FrmHistoricoSinRestricciones"

         Forms!FrmHistoricoSinRestricciones!numfactura = VaNfac

              

              

    MsgBox "Se han modificado los datos de cliente/proveedor de la factura actual"

        Else

            MsgBox "Ha seleccionado cancelar el proceso, no se han producido cambios"

            'Me.Undo

            Exit Sub

            End If

 

DoCmd.SetWarnings True 'Esto habilita los mensajes de sistema"


desde código no lanza ni la línea DoCmd.OpenQuery "ConCamCliHisSinRes"

 Ni la línea   DoCmd.RunSQL "UPDATE que hacen lo mismo, la he puesto por probar. 

No se dónde tengo el error ya que la consulta llamando fuera de código funciona perfectamente.

 

Un saludo y gracias anticipadas




Respuestas:
Publicado por: Mihura
Fecha de publicación: 09/Diciembre/2023 a las 09:39
Hola,

Lo primero es que en pruebas deshabilites el setwarnings, no sea que te esté ocultando errores ...

Lo segundo es que ejecutes paso a paso y veas que mensajes te da en cada punto.


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

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: jorros
Fecha de publicación: 09/Diciembre/2023 a las 09:49
Gracias Jesus, lo he deshabilitado y no muestra errores ni mensajes

Este formulario tiene muchos controles para evitar errores de usuario.

Voy a montarlo todo en uno nuevo y añadiendo hasta que consiga encontrar el error.

Saludos



Publicado por: Mihura
Fecha de publicación: 09/Diciembre/2023 a las 12:09
Si lo lanzas desde VBA, yo lo dejaría así .... 

DoCmd.RunSQL "UPDATE TbHisCabFac INNER JOIN TbCliProv ON TbHisCabFac.HisCabCodCli = TbCliProv.MaeCod SET HisCabMaeRazSoc = " & me.MaeRazSoc & ", HisCabMaeNif = " & me.MaeNif & ", ......
WHERE HisCabNumFac = " & me.numfactura & " AND HisCabCodCli = " & me.HisCabCodCli]

Atención a las comillas simples que falten, etc...


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

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: jorros
Fecha de publicación: 09/Diciembre/2023 a las 20:56
Gracias Jesús, de momento no me funciona nada. Sigo probando, creo que estoy dando patadas a una pared de piedra. 

Saludos 


Publicado por: Mihura
Fecha de publicación: 10/Diciembre/2023 a las 09:48
Créate primero la consulta y haz que funcione, sin ningún parámetro, ni variable externa, con un solo campo ...

En el evento clic de un botón de ese formulario:

DoCmd.RunSQL "UPDATE TbHisCabFac INNER JOIN TbCliProv ON TbHisCabFac.HisCabCodCli = TbCliProv.MaeCod
SET HisCabMaeRazSoc = 1
WHERE HisCabNumFac = 1 AND HisCabCodCli = 1"

- una vez que veas que te funciona con un campo, le vas poniendo de uno en uno hasta tenerlos todos
- una vez que te funcione empiezas a sustituir los valores que has puesto 'a capón' por los valores del formulario

Divide y vencerás.


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

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: jorros
Fecha de publicación: 10/Diciembre/2023 a las 22:17
Gracias Jesus

Tengo un formulario y dos subformularios, si lo lanzo desde el formulario principal me funciona bien , pero si lo lanzo desde el subformulario de cabecera de factura sencillamente no hace nada. Voy a probar lo que me dices y te cuento



Publicado por: Mihura
Fecha de publicación: 10/Diciembre/2023 a las 22:45
Me da que los tiros pueden ir por aquí....

https://accessaplicaciones.com/ejemplos.html#m01" rel="nofollow - Sintaxis con subformularios



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

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: jorros
Fecha de publicación: 22/Diciembre/2023 a las 15:49
Buenas tardes

Un problema familiar grave me ha impedido contestar antes.

Finalmente no he dado con la solución, he optado por crear un cuadro combinado en él formulario principal y después de actualizar lanzar las dos consultas y funciona.

Ruego cierren el hiló.

Muchas gracias Jesus por tu desinteresada ayuda.

Un saludo y felices fiestas



Imprimir página | Cerrar ventana