Imprimir página | Cerrar ventana

Problema con variable en UPDATE

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=86909
Fecha de impresión: 26/Marzo/2026 a las 19:25


Tema: Problema con variable en UPDATE
Publicado por: Boogaloozgz
Asunto: Problema con variable en UPDATE
Fecha de publicación: 17/Abril/2024 a las 22:15
Hola a tod@s,
Estoy intentando actualizar un valor de una tabla con UPDATE, para ello declaro una variable tipo numérico y la uso para saber si existe el valor en una tabla; si existe actualizo un valor de un campo de esa tabla en el registro en el que uno de los campos coincide con el valor de la variable (espero haberme explicado). 
Para ello uso el siguiente código:

Dim Comp As Long
Comp = (DLookup("idAsiento", "inRepara", "idprocedencia = " & Me.Comprador & " And Anotacion = 'Custodia Entrega' And Num= '" & Me.Guia & "'"))
      If Not IsNull(Comp) Then
      CurrentDb.Execute "UPDATE [InRepara] SET [InRepara].Salida =  #" & Format(Me.FechaSale, "mm/dd/yyyy") & "#  WHERE idAsiento =  Comp  ;"

      End If

Al ejecutar el código no reconoce el valor de la variable (Comp) al ejecutar el UPDATE, y aparece el mensaje:
    "Se ha producido el error 3061 en tiempo de ejecución: Pocos parámetros. Se esperaba 1"

¿Alguna pista o solución al asunto?

Gracias de antemano




Respuestas:
Publicado por: Mihura
Fecha de publicación: 18/Abril/2024 a las 10:04
Tienes que 'sacar' la variable de la instrucción:

       "#  WHERE idAsiento = " & Comp


-------------
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: Boogaloozgz
Fecha de publicación: 18/Abril/2024 a las 10:22
      
Buenos días:
Antes de nada muchas gracias por tu respuesta, pruebo lo que me comentas y me da error de sintaxis
CurrentDb.Execute "UPDATE [InRepara] SET [InRepara].Salida =  #" & Format(Me.FechaSale, "mm/dd/yyyy") & "#  WHERE idAsiento = " & Comp ;"


Publicado por: Mihura
Fecha de publicación: 18/Abril/2024 a las 10:35
Yo no he escrito esto:

& "#  WHERE idAsiento = " & Comp ;"


El ; final no te vale para nada ... y si lo quieres poner, tendrás que 'meterlo' dentro de la cadena:

& "#  WHERE idAsiento = " & Comp & ";"



Necesitas un repaso de cómo construir expresiones em VBA, te recomiendo el curso de Eduardo Olaz que tenemos en el foro.


-------------
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: Boogaloozgz
Fecha de publicación: 18/Abril/2024 a las 10:45
Tienes razón tengo esto muy "abandonado"...buscaré el curso de Eduardo Olaz para ser algo más autónomo en esto.

Muchas gracias "veterano" (hace años hice algunas consultas y siempre estás ahi)



Imprimir página | Cerrar ventana