Access - Hacer todos los dias esta tarea (una vez al dia)

   
Vista:

Hacer todos los dias esta tarea (una vez al dia)

Publicado por Angel (20 intervenciones) el 11/01/2008 12:26:29
Buenos dias, dispongo de las siguientes tablas:

PEDIDOS(idpedido,puesto,idcliente,fecha)
DETALLEPEDIDO(IdPedido,IdProducto,cajas)
CLIENTES(idcliente,puesto,nombre)
PRODUCTOS(idproducto,nombre)

Me gustaria que todos los dias, cuando se abra la base de datos UNICAMENTE PARA EL CLIENTE 00000 hiciera "como si ese cliente pidiera 1 unidad de cada producto existente. SOLO QUIERO QUE ME LO HAGA UNA VEZ AL DIA.

Los productos existentes son los que estan en la tabla productos.

Por tanto, lo que quiero es que si tengo 6 productos, pues crear una macro o algo, no se de que forma, en la que cuando el usuario le de a un boton, se cree un pedido con 6 lineas de detallepedido, en la que cada linea corresponde a un producto distinto. /y se pida solo una unidad de ese producto.

Por favor explicarmelo de la forma mas detallada posible, ya que no estoy muy avanzado en esto

Muchas gracias.
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

RE:Hacer todos los dias esta tarea (una vez al dia

Publicado por Victoria (1530 intervenciones) el 11/01/2008 17:07:10
Hola:

Te sobra el campo PUESTO de la tabla PEDIDOS (ya lo tienes en CLIENTES)
En DETALLEPEDIDOS te falta un campo para la tabla en si. Podría ser: IdPedidoDETALLE y autonumerico

Pasos a realizar: 3

1º crea una consulta de DATOS ANEXADOS de esta forma:

INSERT INTO DETALLEPEDIDOS ( IdProducto, cajas, IdPedido )
SELECT PRODUCTOS.IdProducto, 1 AS [N CAJA], (SELECT TOP 1 IdPedido FROM PEDIDOS ORDER BY IdPedido DESC) AS PEDIDO
FROM PRODUCTOS;

Fijate en que los nombres de mis campos pueden ser distintos a los tuyos; tan solo tienes que cambiar estos nombres

Guarda la consulta como: consulta1

2º crea otra consulta de DATOS ANEXADOS de esta forma

INSERT INTO PEDIDOS ( IdCliente, fecha )
SELECT 0000 AS cliente, Date() AS fechaHoy;

Guardala como: consulta2

Crea un formulario de INICIO para abrir automáticamente al abrir tu base de datos y pon esto:

Private Sub Form_Open(Cancel As Integer)
Me.RecordSource = "select top 1 fecha from PEDIDOS ORDER BY fecha DESC"

'Detectamos si se ha abierto la base de datos HOY.
'Si es la primera vez, añade los registros a las tablas

If Me.RecordsetClone!FECHA < Date Then
On Error GoTo Err_Comando1_Click

Dim stDocName As String

stDocName = "Consulta1"
DoCmd.OpenQuery stDocName, acNormal, acEdit

stDocName = "Consulta2"
DoCmd.OpenQuery stDocName, acNormal, acEdit
End If
Exit_Comando1_Click:
Exit Sub

Err_Comando1_Click:
MsgBox Err.Description
Resume Exit_Comando1_Click

End Sub

Bien, ahí lo tienes y bien detallado. Estudia como funciona, que sí funciona, y suerte

Victoria
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

RE:Hacer todos los dias esta tarea (una vez al dia

Publicado por Angel (20 intervenciones) el 14/01/2008 01:16:21
Me suponia que me dirian lo de puesto, pero no me sobra (con perdon) porque es que hay un cliente que tiene mas de un puesto distinto, por eso necesito el puesto y el cliente. Ambos campos, forman la clave de la tabla cliente.

Gracias por tu aportacion vyo a probarlo
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