• Nenhum resultado encontrado

FIGURA 1.3 Indicação dos tipos de relações num diagrama ER 1-N N-N 1-N DISTRITOS PRODUTOS

N/A
N/A
Protected

Academic year: 2021

Share "FIGURA 1.3 Indicação dos tipos de relações num diagrama ER 1-N N-N 1-N DISTRITOS PRODUTOS"

Copied!
11
0
0

Texto

(1)

A

ACCCCEESSSS22001133MMAACCRROOSS&&VVBBAA––CCUURRSSOOCCOOMMPPLLEETTOO

14

Por exemplo, numa escola, se um aluno só pudesse estar inscrito numa única turma, estaríamos perante uma relação do tipo 1-1; em contrapartida, se um aluno se pudesse inscrever em várias turmas, estaríamos perante uma relação do tipo N-N.

No exemplo da loja de computadores, temos três relações de dois tipos (uma do tipo N-N e duas do tipo 1-N):

A relação ‘Produtos’ – ‘Encomendas’ é do tipo N-N (vários produtos para diversas encomendas);

A relação ‘Fornecedores’ – ‘Encomendas’ é do tipo 1-N (um fornecedor pode ser solicitado por diversas vezes e uma encomenda só faz referência a um fornecedor);

A relação ‘Distritos’ – ‘Fornecedores’ é do tipo 1-N (um distrito pode acolher vários fornecedores e um fornecedor tem sede num único distrito).

Em diagramas ER, o tipo de relação é assinalado no interior de losângulos, como na Figura 1.3.

F

FIIGGUURRAA 11..33 ––Indicação dos tipos de relações num diagrama ER

1.4.4 FFAASSEEIIVV:: DDEEFFIINNIIRR AATTRRIIBBUUTTOOSS

Os atributos representam propriedades elementares e definem os valores associa-dos a cada ocorrência das entidades. Por exemplo, as pessoas têm idade, altura, peso; os veículos automóveis têm cor, cilindrada, número de portas. Um identificador é um atri-buto ou grupo de atriatri-butos que determinam univocamente uma entidade (chave).

A Tabela 1.9 apresenta os atributos das entidades envolvidas no processo de encomendas.

ENCOMENDAS FORNECEDORES

PRODUTOS DISTRITOS

1-N

(2)

U

UTTIILLIIZZAAÇÇÃÃOODDAASSQQLL 75

F

FIIGGUURRAA 22..5577 ––Esquema relacional completo R

REESSOOLLUUÇÇÃÃOO((PPOONNTTOO22))

Para obter uma listagem dos professores que lecionam mais de uma turma: 1) Crie uma consulta em vista de SQL e componha a instrução seguinte:

SELECT Professores.P, Professores.Prof, COUNT(Turmas.T) AS Contagem

FROM Professores INNER JOIN Turmas

ON Professores.P=Turmas.P GROUP BY Professores.P, Professores.Prof HAVING COUNT(Turmas.T)>1

2) Guarde a consulta com o nome ProfessoresComVariasTurmas;

3) Ao executar a consulta, obtém duas linhas de retorno – de facto, os professo-res Rui Lopes e Ana Sá monitorizam duas turmas cada (Figura 2.58);

F

FIIGGUURRAA 22..5588 ––Lista de monitores com mais de uma turma

4) Feche a consulta.

R

REESSOOLLUUÇÇÃÃOO((PPOONNTTOO33))

Para determinar o número total de turmas:

1) Crie uma consulta em vista de SQL e digite a seguinte instrução:

(3)

A

ACCCCEESSSS22001133MMAACCRROOSS&&VVBBAA––CCUURRSSOOCCOOMMPPLLEETTOO

108

3.5.3 BBOOMMDDIIAA EE BBOOAANNOOIITTEE

Crie uma macro capaz de mostrar o texto ”Bom dia!”, se a hora atual estiver compreendida entre as 7:00 e as 19:00, e o texto “Boa noite!”, no caso inverso. Recorra à ação MessageBox(CaixaDeMensagem).

R

REESSOOLLUUÇÇÃÃOO

1) Crie uma macro na base de dados utilizada nos dois exercícios anteriores; 2) Na janela de estruturação da macro, estabeleça as duas expressões

condi-cionais If (Se) e as respetivas ações MessageBox(CaixaDeMensagem), exata-mente como na Figura 3.12;

F

FIIGGUURRAA 33..1122 ––Utilização de condições em macros

3) Guarde a macro com o nome DiaNoite; 4) Feche a estrutura da macro;

5) Execute a macro;

6) Mediante a hora atualmente definida no sistema operativo, deverá surgir a caixa de diálogo com a mensagem correspondente.

(4)

A

ACCCCEESSSS22001133MMAACCRROOSS&&VVBBAA––CCUURRSSOOCCOOMMPPLLEETTOO

126

4.2.5 RREEPPEETTIIÇÇÕÕEESSEEMMNNÚÚMMEERROO IINNDDEETTEERRMMIINNAADDOO

Nos casos em que se torna percetível a necessidade de reexecução de instruções, mas não se sabe o número de vezes que determinado ciclo deve ser consumado, recorre- -se às operações de repetição em número indeterminado. Um problema clássico cuja resolução contenha este método é aquele que, dado um número inteiro superior à unidade, determina o seu fatorial27. A representação (em linguagem natural) de um

algo-ritmo para determinar o fatorial de um número consiste nos passos que se seguem: 1) Introdução de um número inteiro superior a 1 por parte do utilizador; 2) O primeiro fator da multiplicação é o próprio número;

3) Enquanto não se chegar à unidade…

→ O próximo fator é decrementado em uma unidade; → É efetuado o produto correspondente.

4) Apresentação do fatorial.

O respetivo fluxograma encontra-se disposto na Figura 4.9.

F

FIIGGUURRAA 44..99 ––Fatorial de um número (fluxograma)

Em pseudocódigo, obtém-se a listagem que se segue:

Start 'Início do programa

Input n 'Introdução de um número inteiro superior a 1 fat = n 'O primeiro fator é igual ao próprio número While n > 1 'Enquanto não se chegar à unidade…

n = n – 1 'Decremento do fator

27 O fatorial de um número inteiro n corresponde ao produto dos números inteiros desde 1 até n; é

representado por um ponto de exclamação (!) precedido do número para o qual se pretende determinar o seu fatorial; por exemplo, 5! = 5x4x3x2x1  5! = 120.

SIM NÃO INÍCIO FIM N N>1 FAT = FAT * N FAT = N N = N - 1 FAT

(5)

A

ARRQQUUIITTEETTUURRAAVVBBAA 159

O posicionamento e as dimensões escolhidas nesta fase não são definitivos. Para redimen-sionar o objeto, pode utilizar um dos quadrados que o delimitam e, para alterar a sua localização no formulário, deve arrastá-lo até à posição pretendida.

Tal como já foi enunciado, todos os objetos contêm propriedades predefinidas que podem ser alteradas mediante as preferências do programador. Quando terminámos o desenho do nosso objeto, o Access encarregou-se de escrever o texto “Command0” na sua face. Como modificá-lo?

O processo para modificar qualquer característica de determinado controlo em modo de desenho é o seguinte:

1) Selecione o objeto em causa, fazendo clique com o botão esquerdo do rato sobre o mesmo. Verificamos facilmente que o controlo está selecionado através dos quadrados a cheio que o circundam;

2) Faça clique com o botão direito do rato sobre o objeto a ser modificado. Do menu de contexto, escolha a opção Properties(Propriedades);

Pode também fazer clique sobre o botão Property Sheet(Folha de Propriedades), disponí-vel na secção Tools(Ferramentas), ou recorrer à combinação de teclas <Alt + Enter>.

3) Surge a Property Sheet (Folha de Propriedades). Esta janela apresenta uma listagem das propriedades e respetivos valores para os objetos presentemen-te selecionados (Figura 5.6).

F

FIIGGUURRAA 55..66 ––Componentes da Property Sheet (Folha de Propriedades)

Na Property Sheet (Folha de Propriedades), pode encontrar as secções que apresentamos no Quadro 5.2.

Separadores

Tipo de objeto Caixa do objeto

(6)

F

FUUNNÇÇÕÕEESSDDOOVVBBAA 227

F

FIIGGUURRAA 66..66 ––Valores retornados pela função MsgBox (exemplo)

6.2.2 FFUUNNÇÇÃÃOO IINNPPUUTTBBOOXX

A função InputBox apresenta no ecrã uma caixa de mensagem padrão de sistema operativo que serve para recolher informações do utilizador na forma de texto. São utili-zados os argumentos apresentados na Tabela 6.6.

NOME DESCRIÇÃO OBRIGATÓRIO? TIPO

Prompt Mensagem a ser apresentada na caixa. Sim String Title Texto da barra de título da janela. O texto

prede-finido é “Microsoft Access”. Não String Default Texto predefinido na caixa de introdução. Não String

XPos

Expressão numérica que especifica, em medidas de ecrã (twips), a distância horizontal entre a extremi-dade esquerda da caixa de diálogo e o limite esquerdo do ecrã. Se este argumento for omitido, a caixa é centrada na horizontal.

Não Number

YPos

Especifica a distância vertical entre o topo da caixa de diálogo e o topo do ecrã. Se este argumento for omitido, a caixa é centrada na vertical.

Não Number Helpfile Aponta para determinado ficheiro de ajuda. Não String Context Número correspondente ao tópico de ajuda para o

qual o utilizador será direcionado. Não Number

T

(7)

O

OBBJJEETTOOSSDDOOAACCCCEESSSS 285

17) Feche o Access; 18) Feche o Word.

Apenas pode executar este procedimento uma única vez, pois, caso o ficheiro já exista, o Access não consegue, por si só, eliminá-lo do sistema de ficheiros para dar origem a um novo. Se for o caso, o leitor obtém um erro em tempo de execução, com indicação de que já existe uma base de dados com o mesmo nome. Neste caso, a aplicação Access, apesar de invisível, continua a ser executada e deverá recorrer-se à combinação de teclas <Ctrl + Alt + Del> para forçar o encerramento da aplicação e terminar todos os processos a ela referentes.

A

ANNÁÁLLIISSEE((IINNSSTTRRUUÇÇÃÃOOAAIINNSSTTRRUUÇÇÃÃOO))

Para além das respetivas declarações e inicializações da variável e da constante globais, foi criado o procedimento TesteAccess para executar a tarefa:

Dim appAccess As Object – visa a declaração da variável-objeto, que irá funcionar como um apontador para a aplicação Access;

Const fich As String = "C:\Curso\MacroWord.accdb" – permite

declarar uma constante correspondente ao caminho completo do ficheiro de base de dados a ser criado e posteriormente aberto;

Set appAccess = CreateObject("Access.Application") – instrução que corresponde à inicialização do objeto Application da biblioteca de Access. A partir deste instante, o Access é inicializado (sem abrir qualquer base de dados) e permanece na memória do computador enquanto a variável-objeto

appAccess não for destruída ou redefinida com futuras atribuições Set;

appAccess.NewCurrentDatabase fich– o método NewCurrentDatabase do objeto Application permite criar um novo ficheiro de base de dados (esse ficheiro é criado com o nome MacroWord e com extensão accdb);

appAccess.CreateForm fich– o método CreateForm do objeto Application cria um formulário vazio no ficheiro especificado;

Não é necessário especificar o nome da base de dados quando se pretende criar um formulário no ficheiro atual.

appAccess.DoCmd.Save acForm, "Form1" – recorreu-se ao método Save do objeto DoCmd (descendente direto do objeto Application) que, neste caso, guarda o formulário com o nome Form1;

appAccess.CreateControl "Form1", acTextBox, acDetail – o método

CreateControl do objeto Application adiciona um controlo ao formulário ou

(8)

A

AUUTTOOMMAATTIIZZAAÇÇÃÃOODDEEFFOORRMMUULLÁÁRRIIOOSS 295

8.2.2 TTEEXXTTBBOOXX((CCAAIIXXAADDEE TTEEXXTTOO))

Controlo que obtém informações do utilizador sob a forma de texto. Estas caixas podem ser configuradas de forma a validarem a informação introduzida, antes de o programa levar a cabo determinada tarefa. Podemos, ainda, estabelecer o número de carateres (mínimo e máximo) e definir uma máscara de introdução (expressão que limita o tipo de caráter, posição a posição). Normalmente, as caixas de texto apresentam rótulos à sua esquerda, na intenção de elucidar o utilizador acerca da categoria de informação a ser digitada. Em Access, sempre que se desenha uma caixa de texto surge um controlo associado (rótulo) à sua esquerda. O formulário da Figura 8.4 contém três caixas de texto, que obtêm o nome, a idade e a profissão de um cliente de uma agência de seguros.

F

FIIGGUURRAA 88..44 ––Apresentação de caixas de texto

8.2.3 OOPPTTIIOONNGGRROOUUPP((GGRRUUPPOODDEE OOPPÇÇÕÕEESS))

Em formulários mais complexos, é comum utilizar-se este tipo de controlos no sentido de agrupar um conjunto vasto de informações em diferentes categorias. Para além de tornar o formulário mais explícito, é um contributo de mais-valia para melhorar a apresentação e estética do mesmo. O formulário apresentado na Figura 8.5 encontra-se dividido em três secções com informações diferentes: os dados pessoais de um cliente de um banco, o sexo e a sua nacionalidade. Repare-se que foi possível selecionar dois botões de opção no mesmo ecrã, isto porque ambos se encontram em secções diferentes (outra funcionalidade importante dos grupos de opção).

F

(9)

M

MOODDEELLOODDAAOO 367 9.8.4 PPEESSQQUUIISSAADDEERREEGGIISSTTOOSS((MMÉÉTTOODDOOSS FFIINNDD))

A Tabela 9.4 apresenta os quatro métodos utilizados na pesquisa de registos.

MÉTODO INICIA A PESQUISA A PARTIR DO… NA DIREÇÃO DO…

FindFirst Primeiro registo. Último registo. FindLast Último registo. Primeiro registo. FindPrevious Registo atual. Primeiro registo. FindNext Registo atual. Último registo.

T

TAABBEELLAA 99..44 ––Métodos utilizados na pesquisa de registos (objeto Recordset) E EXXEEMMPPLLOO Sub PesquisarRegistos() Dim db As Database Dim rst As Recordset Dim fld As Field Set db = CurrentDb

Set rst = db.OpenRecordset("SELECT * FROM CLIENTES") rst.FindFirst "Idade Between 30 And 40"

For Each fld In rst.Fields

texto = texto & fld.Value & " " Next

Debug.Print texto texto = Empty

rst.FindLast "Idade Between 30 And 40" For Each fld In rst.Fields

texto = texto & fld.Value & " " Next

Debug.Print texto End Sub

A ANNÁÁLLIISSEE

Como podemos constatar pelo resultado obtido, o primeiro cliente com idade compreendida entre 30 e 40 anos é a Ana (cliente 1) e o último cliente nessa faixa etária é o José (cliente 2):

(10)

A

ACCCCEESSSS22001133MMAACCRROOSS&&VVBBAA––CCUURRSSOOCCOOMMPPLLEETTOO

412

10.5

M

M

A

A

N

N

I

I

P

P

U

U

L

L

A

A

Ç

Ç

Ã

Ã

O

O

E

E

P

P

E

E

S

S

Q

Q

U

U

I

I

S

S

A

A

D

D

E

E

D

D

A

A

D

D

O

O

S

S

Tal como no modelo DAO, é o objeto Recordset que irá permitir consultar e manipular a informação contida na base de dados.

Os exemplos que se seguem utilizam a tabela Clientes como referência, que foi criada na secção 9.8 do Capítulo 9. Importe esta tabela para o ficheiro de base de dados atual através do assistente de importação de dados do Acccess [botão Access disponível no separador External Data(Dados Externos)].

10.5.1 OOBBTTEENNÇÇÃÃOODDEE RREECCOORRDDSSEETTSS

O objeto Command representa um comando a ser executado diretamente na origem de dados. A maior parte destes comandos surge na forma de instruções de SQL que permitem obter, alterar, adicionar e eliminar registos, ou até alterar o próprio esquema da base de dados. O método Execute do objeto Command é similar ao método OpenRecordset utilizado no DAO para obtenção de objetos do tipo Recordset.

E EXXEEMMPPLLOO

Sub ObterRecordset()

Dim con As ADODB.Connection Dim cmd As ADODB.Command Dim rst As ADODB.Recordset

Set con = CurrentProject.Connection Set cmd = New ADODB.Command

cmd.ActiveConnection = con

cmd.CommandText = "SELECT * From Clientes" Set rst = cmd.Execute

End Sub A ANNÁÁLLIISSEE

Após a criação do objeto Command (inicialização com o operador New), foi defini-da a propriedefini-dade CommandText do objeto Command, que armazena a instrução de SQL a ser executada na origem de dados atual (propriedade ActiveConnection). O método Execute retorna um objeto Recordset que, neste caso, possui toda a informação da tabela Clientes.

10.5.2 CCOONNTTAAGGEEMMDDEERREEGGIISSTTOOSS

O método RecordCount do objeto Recordset permite obter o número de registos retornados pelo método Execute. No capítulo anterior já vimos que era necessário utilizar

(11)

I

INNTTEEGGRRAAÇÇÃÃOOCCOOMMOOUUTTRRAASSTTEECCNNOOLLOOGGIIAASS 457

Por predefinição, é criada apenas uma instância do SQL Server Express, que é designada pelo nome da máquina onde reside e pela indicação do tipo de servidor (SQLEXPRESS), separados por um backslash (\). Reveja o nome completo da sua instância com o procedimento que levou a cabo para mostrar a caixa de diálogo apresentada na Figura 11.18.

5) Avance para o passo seguinte;

6) Na caixa de diálogo da Figura 11.25, utilize o modo de autenticação predefi-nido (pelo sistema operativo) e avance para o passo seguinte;

F

FIIGGUURRAA 1111..2255 ––Criação da origem de dados SQL Server: 2º passo

7) Altere a base de dados predefinida para RH (Figura 11.26);

F

FIIGGUURRAA 1111..2266 ––Criação da origem de dados SQL Server: 3º passo

8) No último passo (Figura 11.27), mantenha as configurações predefinidas e conclua o processo de criação da origem de dados.

Referências

Documentos relacionados

a) Subsistema para o Desenvolvimento do Turismo, adiante designado por SIDET; b) Subsistema para o Desenvolvimento Local, adiante designado por SIDEL; c) Subsistema de

O intúito da abordagem de trabalho em blog foi explorar a forma como são construídas as escritas em torno da formação docente e, com isso, explorar-se um formato diferente de

perfil desses profissionais no estado de Minas Gerais, tornando públicas as condutas deles para a promoção de uma Ortodontia em excelência, evidenciando as técnicas mais utilizadas,

Quando da apresentação do formulário de referência por conta do pedido de registro de distribuição pública de valores mobiliários, as informações devem se referir aos 3

Caso mais de um candidato obtiver a mesma nota final no processo seletivo, que será a nota obtida na soma da pontuação da análise curricular, avaliação técnica

O propósito deste trabalho foi investigar o efeito do tratamento térmico de solubilização, seguido por resfriamento em água, na microestrutura e na resistência

Sugerimos como passeio opcional, pela manhã, saída para conhecer os principais pontos turísticos de Auckland.. Visita ao centro da cidade, passando pelo icônico Karangahape Road,

é calculado sobre a variação da energia dos coeficientes de detalhe conforme a equação (4). O sinal de variação da energia do coeficiente de detalhe wavelet é usado