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
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

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

Publicado por Neckkito (1157 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