Você está na página 1de 11

Modelao do Problema da Pizzaria

Modelao dos Dados :


Clientes: Nome Morada Telefone

Clientes

Empregados
Empregados: Cdigo Nome Morada Telefone

Refeies

Items: Cdigo

Descrio

Preo

ItemsPedidos Items

Refeies: CodRef Cliente CodEmpr Data ItemsPedidos: CodRef CodItem Quantidade

Lus Torgo

FEP

Implementao do Modelo de Dados em Access

Lus Torgo

FEP

Modelao de Processos
Processo : Iniciar nova Refeio Pr-condies 1 : Cliente C Empregado E O cliente C existe O empregado E existe Pr-condies 2 : Cliente C Empregado E O cliente C no existe O empregado E existe Pr-condies 3 : Cliente C Empregado E O cliente C existe O empregado E no existe
Lus Torgo

Ps-Condies 1 : Acrescentar nova refeio tabela de refeies

Ps-Condies 2 : Deixar introduzir dados do novo cliente Acrescentar o cliente tabela de clientes Acrescentar a nova refeio tabela refeies Ps-Condies 3 : Apresentar mensagem de erro

FEP

Implementao em Access do processo Iniciar Refeio

Apresentar formulrio para preenchimento do cdigo do empregado e nome do cliente. Se carregarem no boto OK verificar se o cdigo do empregado vlido. Se no fr ento apresenta mensagem de erro seno verificar se o cliente j existe na tabela de clientes. Se no existe ento dar a possibilidade de introduzir um novo cliente Seno acrescentar a nova refeio com o cdigo do empregado, nome do cliente e a data de hoje Lus Torgo FEP

Processo Iniciar Refeio (cont.)

Lus Torgo

FEP

Processo Iniciar Refeio (cont. II)

Private Sub Command7_Click() Dim db As Database, vg As Recordset Dim Answ As Integer Set db = CurrentDb() Set vg = db.OpenRecordset("Empregados") vg.Index = "PrimaryKey" vg.Seek "=", Forms![Nova Refeio]![CodEmpr] If vg.NoMatch Then MsgBox "Cdigo de Empregado Inexistente!", vbOKOnly, "Erro" Else

Lus Torgo

FEP

... Else Set vg = db.OpenRecordset("Clientes") vg.Index = "PrimaryKey" vg.Seek "=", Forms![Nova Refeio]![NomeCli] If vg.NoMatch Then Answ = MsgBox("Cliente Inexistente na nossa Base de Dados! Prosseguir para insero dos seus dados ?", vbOKCancel, "Cliente Desconhecido!") If Answ = 1 Then DoCmd.OpenForm "Clientes" Else GoTo fim End If Else Set vg = db.OpenRecordset("Refeies") vg.AddNew vg![CodEmpr] = Forms![Nova Refeio]![CodEmpr] vg![Cliente] = Forms![Nova Refeio]![NomeCli] vg![Data] = Date vg.Update DoCmd.Close acForm, "Nova Refeio" End If End If fim: End Sub
Lus Torgo FEP

O processo Pedir conta


Processo : Pedir Conta Pr-condies : Cdigo da Refeio Ps-Condies 1 : Valor total da refeio Emitir factura

Na implementao em Access deste processo poderiamos seguir um mtodo parecido com o usado no processo Iniciar Refeio, comeando por mostrar um formulrio para pedir o cdigo da refeio, e ter depois um programa que fizesse o resto (calcular total, etc.) No entanto, o Access permite-nos, neste caso, poupar alguma programao. Podemos por exemplo usar um Query de sumariao para obter o total. Podemos tambm usar uma Combo Box de procura para aceder automticamente a uma refeio.

Lus Torgo

FEP

Implementao em Access do processo Pedir Conta

Fazer um formulrio baseado neste Query, com um sub-formulrio onde se discriminam os items da refeio. O formulrio dever ainda ter um Combo Box de procura para podermos aceder facilmente conta de qualquer refeio.

Lus Torgo

FEP

O processo Pedir Conta (cont.)

Lus Torgo

FEP

O formulrio principal

Lus Torgo

FEP