Relatório de desenvolvimento do projecto
Programador/designer : Tiago MC Simões
1) Função e criação do Programa 2) Lista de transacções/funções 3) Interface Gráfico do programa 4) A base de dados
4.1) Diagrama E-R, tipo de relacionamento e obrigatoriedade 4.1) Lista de atributos e chaves respectivas
5) Algoritmos métodos e tecnologias de programação usados 5.1) DAO/ADO
5.2) Ligação à base de dados usando ADO 5.2) Ciclos usados para controlo de erros e dados 6) Formulários
6.1) Esquema do programa principal 6.2) Administração de filmes alugados 6.2.1) Inserir um novo aluguer 6.3) Administração de filmes 6.3.1) Pesquisa
6.3.2) Inserir dados de um novo filme 6.4) Administração de clientes
6.4.1) Pesquisa
6.4.2) Inserir dados de um novo cliente
7) Explicação da utilização do código em VBA 8) Instalação e versão do software
9) Conclusão do desenvolvimento do projecto
1
Função e criação do Programa
O programa tem como função administrar um clube de vídeo com a capacidade de administrar os clientes e filmes presentes na base de dados em uso (Access) . Este programa utiliza a linguagem hospedeira do Access VBA ( visual basic for
aplications) para a criação de aplicações pessoais ou mesmo empresarias , usa também a tecnologia de DAO(data Access objects) e ADO(Activate data objects) para uma ligação totalmente programada de raiz à base de dados, todos os módulos tanto como como sistemas de procura, adicionar, apagar, modificar foram feitos do zero sem o uso dos assistentes do Access tendo apenas como recursos algoritmos estudados de forma a que o programa tenha o melhor desempenho. Um Sócio apenas poderá usufruir de alugar um filme e cada filme apenas poderá ser alugado por um sócio.
2
Lista de Transacções/Funções
1 – Administração de Clientes
Adicionar um novo cliente
Ver os dados do cliente podendo navegar entre os registos de forma simples
Modificar dados de um cliente
Os dados do cliente são automaticamente actualizados na base de dados e mostrados nos campos para essa finalidade
Remover o cliente
Remove o cliente de forma segura, perguntado antecipadamente se tem certeza que quer fazer essa operação
Procurar Cliente
2 – Administração de Filmes
Adicionar um novo filme
Adicionar os dados do filme, havendo campos obrigatórios e o sistema de preview para ver o poster que quer associar ao filme introduzido.
Modificar dados de um filme
Todos os dados poderão ser modificados logo que modificados são apresentados nos respectivos campos.
Remover o filme
Irá remover os dados do filme respectivo da base de dados
Procurar Filme
3 – Administração de Filmes alugados
Adicionar um novo Aluguer
Terá um formulário apropriado para introduzir os dados do aluguer
Remover o aluguer
Remove o cliente e o filme respectivo do estatuto de cliente que alugou e filme alugado na tabela (“alugados”), pergunta antecipadamente se tem certeza que quer realizar essa operação
Listagem dos filmes
No formulário referido será mostrado uma lista onde terá um campo que dirá a que cliente um determinado filme foi alugado
4 – Funções Adicionais
Contagem de registos existentes
Contagem do numero de filmes clientes e filmes alugados pelos respectivos
clientes do clube de vídeo
3
Interface Gráfico do programa
O programa foi desenvolvido com algum cuidado gráfico já que infelizmente na grande maior das vezes o próprio utilizador liga mais ao que vê do que realmente esta por detrás por isso foi desenvolvido um pacote de icons e imagens com mais impacto do que aqueles que o próprio Access trazia e com a finalidade como é lógico de
personalizar e dar mais cara ao programa desenvolvido.
4
Diagrama E-R , Tipo de relacionamento e obrigatoriedade
4.1 - Desenho da base de dados
Tratasse de uma relacionamento binário e considerando o numero de elementos de uma entidade que se relacionam com os elementos da outra entidade é uma relação um-para-um. Quanto à obrigatoriedade não é obrigatória em ambas as entidades.
Um filme poderá apenas ser alugado por um sócio Um sócio poderá apenas alugar um filme
4.2 - Lista de atributos e chaves respectivas
Tabela Clientes : ncliente, nome, telefone, morada, idade, nbi Chave Primária : ncliente
Tabela Filmes : nfilme, género, realizador, actores, preço, poster, alugado Chave Primária : nfilme
Tabelas Alugados : ncliente, nfilme Chaves Externas : ncliente , nfilme
5
Algoritmos métodos e tecnologias de programação usados
5.1) DAO/ADO
No principio era o texto e trabalhava-se com arquivos ASCII , depois surgiu a DAO ( data access object) , lançada em 1992 e usada apenas pelo MS Access 1.0;em 1993 a versão da DAO foi lançada para o MS Access 1.1 e visual Basic 3.0.
Em 1994 a versão 2.0 veio junto com o Access 2.0 , para quem usava o vb 3.0 havia a "compatibility layer". A versão 2.5 da DAO veio junto com o VB 4.0 e foi a última para o ambiente de 16 bits . Em 1995 a versão 3.0 contemplava o MS access 7.0 e o Excel 7.0 e o VB4.0 para ambiente de 32 bits.
Nesta época foi lançado também o RDO versão 1.0 que permitia acesso via ODBC a base de dados usadas no ambiente cliente/Servidor de uma maneira mais simples e rápida pois implementa uma fina camada de código sobre ODBC API.
Em 1996 chegamos a versão 3.5 do jet para MS Access 97 e MS Excel 97 (Windows 98) e o VB 5.0 e a versão 2.0 do RDO . Após o lançamento da versão 5.0 do
visual basic ADO ficou pronta , por isso não veio junto com o VB 5.0
O ADO seria então uma evolução ao RDO ? Ficaríamos tentados a supor, mas não , o ADO não é apenas mais um controle para conexão a banco de dados como a DAO ou o RDO , ele vai além disso , pois pode ser usado para acessar qualquer fonte de
informações. Poderíamos dizer que o ADO é uma solução genérica proposta pela Microsoft para acesso uniforme a dados armazenados em diferentes fontes de informação: Web,Client/server, textos , ISAM (Access,Dbase),etc. Ele é baseado na OLE DB o qual é um conjunto de interfaces do tipo COM ( component Object Model). O ADO é a interface entre a OLE DB e a sua aplicação.
Com uso de ADO , podemos criar aplicações para cessar e manipular dados em um servidor de banco de dados via um provedor OLE DB . Ele pode ser usado em qualquer ferramenta que o suporte tais como : visual basic , Access , ASP (Active Server Pagas) utilizado em paginas dinâmicas tão requisitadas hoje em dia..
Naturalmente o ADO possui características chaves para se desenvolver aplicações cliente/servidor e para a Internet e ao contrario da DAO ou RDO não possui uma rígida estrutura hierárquica de objectos , pois seus objectos
podem ser criados independentemente uns dos outros , ao mesmo tempo este modelo de objectos é parecido com o modelo DAO e RDO , só que bem mais simples , de forma
que se você esta familiarizado dom DAO ou RDO os traumas não serão muitos. A vantagem do modelo ADO é , segundo a Microsoft , a alta velocidade (por isso a minha a minha escolha para este projecto) e a baixa utilização de memória. Para usar ADO via ODBC você vai precisar de um DSN ( Data source Name) registrado. O Ado , através da tecnologia OLE DB,trabalha com provedores OLE DB , e o OLE DB é uma implementação COM para acesso de dados universal. Vislumbra-se a substituição gradual de ODBC pela tecnologia OLE DB, e a ADO actua como um envoltório ActiveX para OLE DB.
5.2 - Ligação à base de dados usando ADO
A ligação à base de dados é feita através da tecnologia DAO, irei apresentar alguns comandos de ligação de selecção de tabelas e de navegação nas respectivas: Declaração das variáveis que vão receber os dados da ligação
Dim db as DAO.database Variável para a base de dados
Dim tb as DAO.recordset Variável para a tabela
Selecção da base de dados que temos actualmente aberta
Set db = currentdb()
Selecção da tabela clientes
set tb = db.recordset(“clientes”)
Os comandos para navegação nos registos são os seguintes:
tb.movenext tb.movefirst tb.previous
tb.movelast
Todos estes comandos tem que ter anteriormente a tabela a que se refere que neste caso é a tb(clientes)
5.3 - Ciclos usados de controlo de erros e dados
Foram usados vários ciclos no programa , mas na sua grande maior a estrutura do programa esta mais apedrejada de estruturas if , tentado satisfazer todas as necessidades do utilizador e de possíveis erros. Não foi usado estruturas case evitando por vezes os if encadeados devido ao facto do programa se tornar instável.
Exemplos de aplicações no programa .:
Private Sub escolha()
' Variavel para defenir o erro se encontrou ou nao o registo Dim encontrou As Boolean
encontrou = False
MsgBox campodigitado1 If campodigitado1 = True Then tb.MoveFirst
Do Until tb.EOF
If nomefilmeV = tb.Fields(1) Then
MsgBox "Modo de Pesquisa : Nome do filme :: Será mostrado os dados do filme que procurou", vbInformation, "ADCV V1.0"
encontrou = True mostrar Exit Sub End If
tb.MoveNext Loop
…… End Sub
6
– Formulários
6.1 - Esquema do programa principal
6.2 - Administração de filmes alugados
O formulário acima foi desenvolvido tendo em conta os seguintes passos 1 – Associar a chave na tabela alugados ao respectivo filme
2 – Associar a chave na tabela alugados ao respectivo cliente 2 – Sistema de navegação na tabela alugados
3 – Mostrar a data de aluguer do respectivo filme
4 – Ter em conta erros de exclusão de dados, perguntar ao utilizador se realmente quer apagar aquele aluguer
5 – Sistema de procura de filme Alugado, novamente trabalho dificultado devido ao facto de ter que trabalhar com 2 tabelas ao mesmo tempo, associando dados e comparando
6 – Listagem de Filmes, indicando quais os filmes alugados e por quem 7 – Botões de navegação
6.2.1 - Formulário associado Inserir um novo aluguer
O formulário acima foi desenvolvido tendo em conta os seguintes passos
1 – Ao guardar os dados do cliente que irá alugar um filme, ir buscar a chave respectiva desse cliente e gravar na tabela alugados
2 – Ao guardar os dados do filme que irá ser alugado, ir buscar a chave respectiva desse filme e gravar na tabela alugados
3 – Guardar os dados do aluguer
5 – Noticias de erros e rotinas de tratamentos desses mesmo 6 – Botões de navegação
6.3-Administração de filmes
O formulário acima foi desenvolvido tendo em conta os seguintes passos .: 1 – Trazer os dados da tabela filme todos os seus campos e mostrar
2 - Alterar os dados
3 - Sistema de navegação nos registos 4 – Listagem de filmes
5 – Cada filme é associado a uma imagem externa esse endereço esta embutido na tabela
6 – Mostrar o poster de cada filme isto é se tiver sido configurado para esse filme 7 – Botões de Navegação
6.3.1 - Formulários Associado Pesquisa
O formulário acima foi desenvolvido tendo em conta os seguintes passos: 1 - Aceder à tabela procurando o registo inserido
2 - Rotina de tratamento de erros que previne o inserir apenas de um dado 3 - Mostrar os dados, acedendo ao registo associado à pesquisa
4 – Botões de Navegação
6.3.2 - Formulários Associado Inserir dados de um novo filme
O formulário acima foi desenvolvido tendo em conta os seguintes passos: 1 – Aceder à tabela e gravar
2 – Programação de campos de obrigatórios e não obrigatórios 3 – Tratamento de erros
4 – Sistema de preview ( o utilizador poderá ver a imagem antes mesmo de a associar ao filme)
5 – Botões de navegação 6.4 - Administração de Clientes
O formulário acima foi desenvolvido tendo em conta os seguintes passos: 1 - Aceder à tabela e mostrar os dados dos clientes
2 - Botões de navegação na tabela 3 - Rotina de alteração de dados 4 - Listagem de filmes
6.4.1 - Formulário Associado Pesquisa
O formulário acima foi desenvolvido tendo em conta os seguintes passos: 1 - Aceder à tabela procurando o registo inserido
2 - Rotina de tratamento de erros que previne o inserir apenas de um dado 3 - Mostrar os dados , acedendo ao registo associado à pesquisa
4 – Botões de Navegação 6.4.2 - Formulário Associado Inserir dados de um novo cliente
1 – Aceder à tabela e gravar
2 – Todos os campos de carácter obrigatório 3 – Rotina de tratamento de erros
4 – Sistema de preview (O utilizador poderá ver a imagem antes mesmo de a associar ao filme)
7
Explicação Da utilização do código em VBA
Irei a seguir mostrar um excerto do código do formulário inserir um novo filme alugado , deixarei assim a analise do código mais complexos de forma a facilitar o entendimento desta tópico.
Do Until tb2.EOF If tb2.Fields(1) = cliente Then
chave_cliente = tb2.Fields(0) encontrouC = True
End If
tb2.MoveNext Loop
repetido = chave_cliente + chave_filme ' a soma entre as duas chaves irá servir para comparar se os dois campos são iguais logo
Do Until tb3.EOF
If tb3.Fields(0) + tb3.Fields(1) = repetido Then
MsgBox ("Esse cliente já alugou o filme que indicou ou o filme/cliente nao se encontra mais na base de dados!"), vbExclamation, "ADCV V1.0"
Exit Sub Else
If tb3.Fields(1) = chave_cliente Then
MsgBox ("Cada Cliente apenas poder alugar UM filme de cada vez, esse cliente já alugou um filme"), vbExclamation, "ADCV V1.0"
Exit Sub Else
If tb3.Fields(0) = chave_filme Then
MsgBox ("Apenas UM Filme pode ser alugado por uma pessoa, esse filme já foi alugado"), vbExclamation, "ADCV V1.0"
Exit Sub End If End If End If tb3.MoveNext Loop tb3.AddNew
tb3.Fields(0) = "" & chave_filme tb3.Fields(1) = "" & chave_cliente data.SetFocus
If data.Text = "" Then tb3.Fields(2) = "" & Date Else
tb3.Fields(2) = "" & data.Text End If
tb3.Update
MsgBox ("Os dados Foram correctamente Guardados , o cliente tem 15 dias para devolver o filme ao Clube de Video"), vbInformation, "ADCV V1.0"
tem
tb.MoveFirst Do Until tb.EOF
tb.Edit
tb.Fields(7) = "Alugado Por.: " & cliente tb.Update End If tb.MoveNext Loop ' fechar tabelas tb.Close tb2.Close tb3.Close
conclusão :
Se analisar de forma calma e conhecer um pouco da sintaxe do visual basic irá compreender o que fiz , o pretendido deste código foi percorrer as tabelas clientes e filmes de forma a encontrar o que foi inserido pelo utilizador previamente transformado em chaves(cada cliente é associado a uma chave e cada filme é também associado a uma chave) ao encontrar o cliente e o filme nas respectivas tabelas o que o código fará será guardar as chaves de cada um na tabelas alugados..
Rotina de tratamento de erros : esta rotina prevê a situação de um cliente já ter alugado um filme de um filme já ter sido alugado ou então o filme ter sido alugado pelo respectivo cliente digitado.
8
Instalação e versão do software
A instalação deve ser feita através do software fornecido pelo programador e a localização do utilitário deverá ser sempre c:\ADCV 1.0\ , evitando qualquer tipo de problemas. A versão do Software(ADCV) é a Versão 1.0 beta já que o utilitário não esta a trabalhar a 100% como qualquer versão inicial.
9
Conclusão do desenvolvimento do projecto
Como já referido em cima é obvio que o software administração de um clube de vídeo 1.0 não esta perfeito poderá surgir alguns erros, contudo foi desenvolvido com o maior cuidado de forma a criar uma ligação entre a sua programação e o seu grafismo