Añadir datos a una tabla desde otra.

Tengo un formulario de albaranes que recoge los datos de varias tablas. Una de ellas es la de productos y deseo que incluya en la tabla DetallesAlbaranes el valor del producto de la tabla Productos, pero que al mismo tiempo si se quiere se pueda modificar.

1 respuesta

Respuesta
1
Lo ideal seria que modificases el precio desde un formulario Productos basado en esa misma tabla Productos, después solo tendrías que actualizar el otro formulario con una macro cuya acción fuese Nueva consulta, o con el método Repaint.
Otra forma seria con una consulta de actualización usando DAO y después actualizando el formulario. Puedes usar neptuno.mdb para ver este ejemplo:
Sub UpdateX()
Dim dbsNeptuno As Database
Dim rstEmpleados As Recordset
Dim strAntiguoNombre As String
Dim strAntiguosApellidos As String
Dim strMensaje As String
Set dbsNeptuno = CurrentDb
Set rstEmpleados = _
dbsNeptuno.OpenRecordset("Empleados") 'aqui usariamos la tabla Productos
With rstEmpleados
.Edit
' Almacena los datos originales.
strAntiguoNombre = !Nombre
strAntiguosApellidos = !Apellidos
' Cambia los datos en el búfer de modificación.
!Nombre = "María"
!Apellidos = "Álvarez"
' Muestra el contenido del búfer y obtiene una entrada del usuario.
strMensaje = "Modificación en progreso:" & vbCr & _
" Datos originales = " & strAntiguoNombre & " " & _
strAntiguosApellidos & vbCr & " Datos en el búfer = " & _
!Nombre & " " & !Apellidos & vbCr & vbCr & _
"¿Utilizar Update para reemplazar los datos originales con " & _
"los datos del búfer en el Recordset?"
If MsgBox(strMensaje, vbYesNo) = vbYes Then
.Update
Else
.CancelUpdate
End If
' Muestra los datos resultantes.
MsgBox "Datos en el Recordset = " & !Nombre & " " & _
!Apellidos
' Restaura los datos originales porque esto es un ejemplo.
If Not (strAntiguoNombre = !Nombre And _
strAntiguosApellidos = !Apellidos) Then
.Edit
!Nombre = strAntiguoNombre
!Apellidos = strAntiguosApellidos
.Update
End If
.Close
End With
dbsNeptuno.Close
End Sub
NOTA: para ver como funciona el subprocedimiento solo tienes que pegar el código en un módulo nuevo y escribir:
call updatex
En la ventana inmediato del depurador de visual basic.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas