Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como puedo actualizar datos en un registro de otra tabla?

Estas en el tema de Como puedo actualizar datos en un registro de otra tabla? en el foro de Bases de Datos General en Foros del Web. Hola, tengo un problema en ACCESS que no consigo solucionar: Tengo una tabla PRODUCTOS (CodigoProducto, NombreProducto, UltimaFecha, UltimoPrecio) Otra tabla COMPRAS (CodigoProduc, NombreProduc, FechaCompra, PrecioUnidad) ...
  #1 (permalink)  
Antiguo 10/07/2004, 05:41
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta Como puedo actualizar datos en un registro de otra tabla?

Hola, tengo un problema en ACCESS que no consigo solucionar:

Tengo una tabla PRODUCTOS (CodigoProducto, NombreProducto, UltimaFecha, UltimoPrecio)

Otra tabla COMPRAS (CodigoProduc, NombreProduc, FechaCompra, PrecioUnidad)

En la tabla PRODUCTOS solo me interesa recoger la ultima fecha (UltimaFecha) y ultimo precio de compra (UltimoPrecio)

Los datos se originan en un formulario COMPRAS_PRODUCTOS (ConsultaCompras=Productos y Compras, relacionadas), y necesito que cuando anoto una compra, me modifiquen los datos de la tabla PRODUCTOS (UltimaFecha y UltimoPrecio) correspondiente al producto comprado.

He intentado en Despues de Actualizar en el Form Compras_Productos, pero no consigo hacer funcionar el código.

Desde ya muchas gracias por vuestra ayuda.

Rodolfo G
  #2 (permalink)  
Antiguo 10/07/2004, 09:10
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 19 años, 10 meses
Puntos: 1
Puedes probar con
Dim strSQL as string
strSQL = "UPDATE Productos SET UltimaFecha = #" & me.fecha & "#, UltimoPrecio =" & me.precio & "WHERE CodigoProducto =" & me.codigo
docmd.setwarnings (False)
docmd.runsql strsql
docmd.setwarnings (true)
si el precio es un double te dara problemas entonces pega esta funcion que te paso en un modulo de la base de datos y pones la instruccion asi:
Public Function ChSep(Value As Double)
'************************************************* **************
' Al crear el SQL
' sql = "Select * From Tabla Where Campo =" & ChSep(Valor)
'************************************************* **************
Dim I As Long
Value = CStr(Value)
For I = 1 To Len(Value)
If Mid(Value, I, 1) = "," Then
ChSep = ChSep & "."
Else
ChSep = ChSep & Mid(Value, I, 1)
End If
Next I
End Function
el codigo queda ahora asi
Dim strSQL as string
strSQL = "UPDATE Productos SET UltimaFecha = #" & me.fecha & "#, UltimoPrecio =" & chsep(me.precio) & "WHERE CodigoProducto =" & me.codigo
docmd.setwarnings (False)
docmd.runsql strsql
docmd.setwarnings (true)
suponiendo que codigo producto es un numero
Un saludo
Skakeo®
  #3 (permalink)  
Antiguo 11/07/2004, 12:55
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 19 años, 9 meses
Puntos: 0
Hola Skakeo,

Muchas gracias por tu rapidez en contestarme y te felicito por lo exacto de tu comprensión del problema (Eso solo ocurre con los que verdaderamente saben!)

Por no se que motivo, no me funcionó con el código tal como me lo expusistes, pero con un pequeño retoque, todo anduvo de maravilla.

Este fue el código final.

Dim strSQL as string
strSQL = "UPDATE Productos SET UltimaFecha = fecha, UltimoPrecio = precio "WHERE CodigoProducto = codigo
docmd.setwarnings (False)
docmd.runsql strsql
docmd.setwarnings (true)

Muchas gracias por tu ayuda, llevaba varios días dándole vuelta, pero por caminos equivocados.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.