Access - access 2007 BD facturación, un artículo con distinto precio en función de la fecha pedido

   
Vista:

access 2007 BD facturación, un artículo con distinto precio en función de la fecha pedido

Publicado por Rosa (1 intervención) el 13/08/2012 15:43:25
ACCESS 2007
Estoy haciendo a nivel usuario (no controlo casi nada de Access) una BD para facturación.
Tengo las tablas:
T. Productos:
-cód.artículo,
-descripción
-proveedor

T. Precios (un mismo producto puede variar su precio en función de la fecha de factura)
-id
-cód.artículos,
-descrición,
- fecha inicio
-fecha fin
- precio

T. Proveedores
-nif proveedor
-nombre proveedor

T. Pedidos
-Núm.pedido
-nif. Proveedor
-fecha pedido

T. Detalle pedido
-id
-núm.pedido
-cód.artículo
-unidades

Las claves son los primeros campos de cada una de las tablas.
He hecho un formulario con la cabecera de la factura y luego un subformulario con el detalle del pedido, pero me gustaría lo siguiente: (por pedir..) al utilizar el formulario para introducir la factura: al poner la fecha de la factura y el código del artículo me de por defecto el precio que corresponde a esa fecha.
Muchas gracias si alguien me puede ayudar, me estoy rompiendo la cabeza. Esto es muy complicado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito

access 2007 BD facturación, un artículo con distinto precio en función de la fecha pedido

Publicado por Neckkito (1104 intervenciones) el 13/08/2012 18:12:23
Hola!
Voy a suponer lo siguiente:
- Que el formulario donde tienes los datos de la factura se llama FFactura
- Que los campos donde recoges los códigos son de tipo numérico
- Que el campo que te recoge el precio es de tipo moneda
- Los nombres de los campos no admiten ciertos caracteres, entre ellos el punto. He sustituido los puntos por subguiones.
- Pides el precio pero no indicas si lo quieres guardado en alguna parte (no veo ningún campo para almacenar ese precio en "T_Detalle pedido"), por lo que el código sólo te lo mostrará en un msgbox.
Lo que tienes que hacer es lo siguiente:
1.- Pones el subformulario en vista diseño.
2.- Sacas las propiedades del campo donde indicas el código del artículo
3.- Te vas a la pestaña Eventos -> Después de actualizar, y le generas el siguiente código:
...
Private Sub...
'Declaramos las variables
Dim vCA as long 'vCA = valor código artículo
Dim vFF as variant 'vFF = valor fecha factura
Dim vPA as currency 'vPA = valor precio artículo
'Cogemos el valor de la fecha factura
vFF = Forms![FFactura].[fecha pedido].value
'Si la fecha factura está vacía avisamos y salimos
If isnull(vFF) Then
MsgBox "Debe indicar la fecha del pedido",vbExclamation,"SIN FECHA"
Exit Sub
End If
'Cogemos el valor del código de artículo
vCA = Nz(me.[cód_artículo].value,0)
'Si no hay valor salimos del procedimiento
If vCA=0 then Exit Sub
'Buscamos el precio del artículo en T_Precios
vPA = nz(dlookup("[precio]","T_Precios","[cód_artículos]=" & vCA _
& " AND [fecha inicio]<=#" & format(vFF,"mm/dd/yy") _
& "# AND [fecha fin]>=#" & format(vFF,"mm/dd/yy") & "#"),-1)
'Mostramos el precio en un MsgBox
If vPA=-1 Then
msgbox "No se han encontrado artículos que cumplan la condición", _
vbCritical,"SIN DATOS"
Else
msgbox "El precio del artículo en la fecha indicada es " & vPA, _
vbInformation,"PRECIO"
End If
End Sub
...
Ahora debes sustituir los nombres que yo he supuesto por los que tú tengas en tu BD.

A ver si con esto puedes apañar tu BD

Un saludo,

Neckkito
... http://neckkito.eu5.org ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar