Cumplimentar los datos de una tabla que no esta en el formulario principal

Necesito un poco de ayuda.

Tengo un formulario resumen que a través de una tabla principal anexa y recoge datos de varias tablas.

En la Tabla anexada recojo el [Id] de cada una de las tablas al igual que recojo el tipo de tabla que es para después poderla alcanzar.

En el formulario hay un botón que al pulsarlo ha de ir a la tabla principal que he de alcanzar a través de los datos que tengo guardados del apunte y colocar unas marcas (FechaDia, Recibido....), por cada uno de los conceptos que indique el operador.

Lo que necesito saber es como puedo modificar los campos de las tablas principales desde el formulario que contiene los datos.

1 respuesta

Respuesta
1

Juan: Aun co alguna duda de lo que pretendes, creo que podrías usar el UPDATE.

Para hacerlo un poco "Troceado"

Dim StrSQL As String

StrSQL = "UPDATE TuTabla SET Recibido = '" & Me.Recibido & "'" , OtroCampo =.....   WHERE Id = " & Me.Id

DoCmd.SetWarnings False
CurrentDb.Execute StrSQL, dbFailOnError
DoCmd.SetWarnings True

StrSQL = ""

Espero puedas comenzar con ésto. Mis saludos >> Jacinto

Gracias por tu amable ayuda.

Hay varios botones en el formulario y en función de cada uno hace una actualización de los datos en las distintas tablas principales.

Me esta dando errores en esta Línea : (Línea en rojo)

StrSQL = "UPDATE [Lineas Ventas]  SET [FechaPedido]= '" & Me.[FPedido] & "'" , WHERE [contador Lineas Ventas] = " & Me.NumLinea

Estos son los campos en este botón que es uno de los varios que hay y solo cumplimenta un dato: FechaPedido

Lineas Ventas = Tabla Principal

FechaPedido = Tabla Princiapl

contador Lineas Ventas = Tabla Principal

FPedido = Tabla Formulario

NumLinea =Tabla Formulario

En los otros botones cumplimenta más datos que sera añadiéndolos como me has indicado.

Un saludo

Juan: Veo dos errores así a bulto.

1.- La coma que tienes antes del WHERE sobra

2.- Estás tratando el Campo Fecha como uno de tipo Texto y supongo que el tema no funcionará.

Por tanto prueba por favor:

StrSQL = "UPDATE [Lineas Ventas]  SET [FechaPedido]= " & Me.[FPedido] & " WHERE [contador Lineas Ventas] = " & Me.NumLinea

Con ésto no debe haber problema. Asegura que haya Fecha y NumLinea.

Ya me contarás. Mis saludos Jacinto

Juan: No sé si yo también he errado, pero entre la comilla del WHERE y éste debe de ir un espacio. Así   " WHERE  Mis saludos >> Jacinto

Juan: Se ve que ésta tarde es mi tarde despiste.

Si te diera error al ejecutar la SQL que te he facilitado formatea la Fecha, porque Access suele ser muy delicado en esa cuestión:

StrSQL = "UPDATE [Lineas Ventas] SET FechaPedido = #" & Format(Me.FPedido, "dd/mm/yyyy") & "#" & " WHERE [Contador Lineas Ventas] = " & Me.NumLinea

Esperemos que a la tercera vaya la vencida. Mis saludos >> Jacinto

Hola de nuevo.

He utilizado esta Función:

StrSQL = "UPDATE [Lineas Ventas] SET FechaPedido = #" & Format(Me.FPedido, "dd/mm/yyyy") & "#" & " WHERE [Contador Lineas Ventas] = " & Me.NumLinea

Y me esta dando este error en esta Línea:

Se ha producido error '3601' en tiempo de ejecución.

Pocos parámetros. Se esperaba 1

CurrentDb.Execute StrSQL, dbFailOnError

Un saludo.

Hola de nuevo.

He utilizado esta línea ultima que me has mandado:

StrSQL = "UPDATE [Lineas Ventas] SET FechaPedido = #" & Format(Me.FPedido, "dd/mm/yyyy") & "#" & " WHERE [Contador Lineas Ventas] = " & Me.NumLinea

No parce que de error, al menos no me la ha marcado, pero me lo da en esta línea:

CurrentDb.Execute StrSQL, dbFailOnError

Me da error: 3061

Pocos parámetros. Se esperaba 1

Un saludo

Juan: Ahora no se ver de donde sale el error, pero es característico de cuando una SQL está mal escrita .

No lo había probado y lo he hecho ahora sin dificultades.

Asegura que los Nombres coinciden de todo lo que interviene que no es mucha cosa.

Tabla, Campo Fecha, Nombre del Control Fecha y Nombre del Control Línea.

Si quieres partir la SQL, declarando otra variable tal como >>

Dim StrSQL As String
Dim CampoFecha As String
CampoFecha = "FechaPedido = #" & Format(Me.FPedido, "mm/dd/yyyy") & "#"
StrSQL = "UPDATE [Lineas Ventas] SET " & CampoFecha & " WHERE [Contador Lineas Ventas] = " & Me.NumLinea
'Aquí provisionalmente pones y miras que te devuelve en la Ventana de Inmediato
Debug.Print StrSQL
'Pones un punto de interrupciónn en Currentdb.....
'La consulta es la misma pero troceada
DoCmd.SetWarnings False
CurrentDb.Execute StrSQL, dbFailOnError
DoCmd.SetWarnings True

Ya me contarás si se resuelve.

¿Las otras actualizaciones te funcionan? . Mis saludos >> Jacinto

Hola. He copiado tus nuevas instrucciones y me sigue dando el mismo error en:

CurrentDb.Execute StrSQL, dbFailOnError

Estas son exactamente las instrucciones que tengo puestas y me da el ertror en el mismo lugar:

Me.FPedido = Date  

If Me.[TipoPedido] = "EVENTOS" Then
Dim StrSQL As String
Dim CampoFecha As String
CampoFecha = "FechaPedido = #" & Format(Me.FPedido, "mm/dd/yyyy") & "#"
StrSQL = "UPDATE [Lineas Ventas] SET " & CampoFecha & " WHERE [Contador Lineas Ventas] = " & Me.NumLinea
'Aquí provisionalmente pones y miras que te devuelve en la Ventana de Inmediato
Debug.Print StrSQL
'Pones un punto de interrupciónn en Currentdb.....
'La consulta es la misma pero troceada
DoCmd.SetWarnings False
CurrentDb.Execute StrSQL, dbFailOnError
DoCmd.SetWarnings True
Else
StrSQL = ""
End If

y en: Debug.Print StrSQL , no me hace nada ni me muestra ningun resultado.

Le he puesto una coma delante del Debug.Print y no me da el error pero no actualiza el campo.

He revisado los campos y son todos correctos. 

El If.. esta colocado porque en funcion del tipo de documento ha de atacar un tipo de tabla aunque de momento solo estoy tratando de hacerlo funcionar en esta.

Un saludo


                    

Juan: La verdad es que salvo facilitarte un enlace con un Ejemplo que te he preparado, poco se me ocurre.

http://www.mediafire.com/download/30r37hmjes1sqqc/UpdateFecha.rar 

Pruebalo y me comentas, porque algo raro debe haber en tu proceso.

El Debug. Print era para que visualizaras en la ventana de "Inmediato" el valor que devolvía la consulta. Ya me contarás. Saludos>> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas