As secções seguintes mostram como utilizar os formulários dos funcionários e como programá-lo. Os nomes dos objetos são fornecidos para que possa examiná-los facilmente na base de dados Northwind 2.0 Starter Edition.
Estes são detalhes importantes sobre a utilização do formulário de lista de funcionários:
-
A partir do menu principal, selecionar Funcionários no menu à esquerda apresenta uma lista de funcionários (sfrmMainMenu_EmployeeList) na área de trabalho à direita.
-
O ID de cada funcionário é uma hiperligação para abrir o registo desse funcionário num formulário de pop-up para editar os respetivos detalhes.
-
Para adicionar um novo funcionário, clique no botão Adicionar Funcionário na extremidade direita da linha de cabeçalho que abre um novo registo de funcionário num formulário de pop-up (sfrmEmployeeDetail_OrderList) para adicionar os respetivos detalhes.
Estes são detalhes importantes sobre a utilização do formulário de pop-up de detalhes do funcionário:
-
O formulário de pop-up de detalhes do funcionário (frmEmployeeDetail) permite editar e adicionar registos de funcionários.
-
São necessários três campos para todos os funcionários: Nome Próprio, Apelido e Cargo.
-
As mensagens de erro de Acesso Predefinidas alertam-no quando uma ou mais não estão concluídas antes de tentar guardar o registo do funcionário. Não é aplicada nenhuma validação a outros campos, como o endereço de e-mail e números de telefone. Os utilizadores são responsáveis pela formatação adequada, como (000) 000-000. A validação de Acesso Predefinida no controlo pendente para Títulos limita as entradas a uma lista de valores pré-selecionados. Pode adicionar novos Títulos, novamente, utilizando o comportamento predefinido do Access para controlos de campo de valor. Selecionar o menu pendente no formulário apresenta o ícone de edição.
-
As imagens dos funcionários são armazenadas na tabela como um campo de anexo. Pode adicionar novas imagens ou alterar imagens existentes com o comportamento predefinido do Access para campos de anexo.
-
Se um funcionário tiver criado encomendas, o subformulário no lado direito do pop-up de detalhes do funcionário lista essas encomendas na Vista de Folha de Dados.
-
Qualquer encomenda existente para esse funcionário pode ser editada ao clicar no ID da Encomenda hiperligado no subformulário Encomendas (sfrmOrderDetails).
Os formulários de funcionários utilizam macros VBA e incorporadas em controlos em formulários para efetuar lógica básica. Contêm duas macros autónomas e várias macros incorporadas.
Lista de Funcionários
-
O formulário Lista de Funcionários (sfrmMainMenu_EmployeeList) obtém os respetivos dados a partir de uma consulta simples qryEmployeeList (a partir da propriedade OrigemDosRegistos ). A base de um formulário de introdução de dados numa consulta de uma tabela é uma prática recomendada.
-
Os controlos no formulário de lista de funcionários estão ativados, o que significa que pode selecioná-los e bloqueá-los, o que significa que são só de leitura.
-
O campo Título, baseado num campo de valores múltiplos, é uma lista pendente ou caixa de combinação. A respetiva origem de linha é uma lista de valores, o que significa que os itens opcionais disponíveis estão contidos diretamente nesse campo. A lista tem a propriedade Limitar à Lista definida como "Sim" porque este formulário não se destina a edição. O campo de valores múltiplos está incluído apenas como uma ilustração da funcionalidade e não como uma recomendação.
-
Na lista de funcionários (sfrmMainMenu_EmployeeList), dois sub procedimentos nos eventos Key Up e Key Down respondem aos movimentos do cursor de um utilizador na Vista de Folha de Dados. Detetam a direção de um movimento de cursor (esquerda, direita, acima ou abaixo) e chamam funções VBA que movem o foco para o controlo adequado.
-
Pode editar os registos de colaboradores existentes e adicionar novos no formulário de detalhes (frmEmployeeDetail).
-
Pode abrir o formulário de detalhes do funcionário a partir da lista de funcionários como um formulário de pop-up editável de duas formas:
-
Ao selecionar um EmployeeID, que está formatado para aparecer como uma hiperligação, abra o formulário de detalhes do funcionário e filtre-o apenas para esse registo de funcionário.
-
Ao selecionar a etiqueta Adicionar Funcionário no cabeçalho do formulário para abrir o formulário de detalhes do funcionário e mover o foco para um novo registo. Todos os registos atuais estão na origem de registos do formulário.
Tenha em atenção que as duas abordagens podem ter impactos diferentes no desempenho. Filtrar um formulário para um único registo minimiza a quantidade de dados a transferir da tabela. Com um conjunto de registos pequeno, a diferença pode não ser percetível.
-
Detalhes do funcionário
-
O formulário de detalhes do funcionário (frmEmployeeDetail) obtém os respetivos dados a partir de uma consulta simples, qryEmployeeDetails (a partir da propriedade OrigemDosRegistos do formulário). Recomenda-se basear um formulário de introdução de dados numa consulta de uma tabela.
-
A cláusula SELECT em qryEmployeeDetails utiliza o caráter universal asterisco (*) para selecionar todos os campos na tabela, enquanto a cláusula SELECT em qryEmployeeList lista campos específicos. A utilização do caráter universal permite obter novos campos numa tabela subjacente sem edição adicional da consulta. Isto não é possível com uma lista de campos específicos. Uma lista de campos específicos restringe o conjunto de registos apenas aos campos necessários no formulário apenas de apresentação. A sua estrutura deve basear-se na consideração de que abordagem é mais adequada ao seu requisito, embora a preferência deva ir para a abordagem menos provável de exigir manutenção futura, que é a utilização do caráter universal.
-
Os controlos no formulário de detalhes do funcionário estão ativados e não bloqueados, o que significa que pode selecionar, bem como editá-los.
-
O campo Título, baseado num campo de valores múltiplos, é uma lista pendente ou caixa de combinação. A respetiva origem de linha é uma lista de valores, o que significa que os itens opcionais disponíveis estão contidos diretamente nesse campo. A lista tem a propriedade Limitar à Lista definida como "Não" porque este formulário destina-se a edição. Adicionar ou editar títulos utiliza o método incorporado do Access, pelo que não é necessário nenhum código. O campo de valores múltiplos está incluído apenas como uma ilustração da funcionalidade e não como uma recomendação.
-
Pode editar os registos de funcionários existentes e os novos no formulário de detalhes.
-
Pode abrir o formulário de detalhes do funcionário a partir da lista de funcionários como um formulário de pop-up editável de duas formas:
-
Ao selecionar um EmployeeID, que está formatado para aparecer como uma hiperligação, abra o formulário de detalhes do funcionário e filtre-o apenas para esse registo de funcionário.
-
Ao selecionar a etiqueta Adicionar Funcionário no cabeçalho do formulário para abrir o formulário de detalhes do funcionário e mover o foco para um novo registo. Todos os registos atuais estão na origem de registos do formulário.
-
-
Filtrar um formulário para um único registo minimiza a quantidade de dados a serem transferidos para o formulário a partir da tabela. Com um conjunto de registos pequeno, como os dados de exemplo, a diferença pode não ser percetível.
-
O controlo de subformulário (sfrmEmployeeDetail_OrderList) à direita de Personal Information apresenta encomendas para o funcionário atualmente selecionado (se existir). O subformulário no controlo de subformulário é reutilizado na secção Encomendas . As propriedades incorporadas do Access LinkMasterFields/LinkChildFields do controlo de subformulário sincronizam e filtram registos apresentados para cada funcionário.
-
Nos detalhes dos funcionários (frmEmployeeDetail), dois Sub procedimentos no Evento Atual do formulário e Evento Ao Fechar respondem a esses eventos:
-
Em Atuais mostra ou oculta a etiqueta Adicionar Colaborador consoante o registo atual seja existente ou quando é um registo para um novo funcionário, iniciado mas ainda não guardado.
-
Em Fechar efetua duas ações de manutenção. Consulta novamente o Conjunto de registos no subformulário de detalhes do funcionário para atualizar quaisquer adições ou alterações efetuadas no formulário de detalhes. Sincroniza novamente a apresentação de contagens de funcionários no menu principal ao chamar essa macro.
-
Macros
macMainMenu_UpdateSubs Esta macro é autónoma e é executada quando ocorrem determinados eventos, incluindo os formulários dos funcionários. Dentro de macMainMenu_UpdateSubs, as submacros são agrupadas de acordo com as funcionalidades a que se aplicam. Para os funcionários, a submacro sincroniza a contagem de registos dos funcionários com a contagem apresentada no menu principal.
Macros incorporadas Os formulários de funcionários são essencialmente impulsionados por macros incorporadas contidas no formulário e editáveis apenas a partir do formulário. Na lista de funcionários (sfrmMainMenu_EmployeeList):
-
Hiperligação EmployeeID Clicar no EmployeeID no formulário de lista de funcionários abre o formulário Detalhes do Funcionário e define o foco para o registo de funcionário selecionado.
-
Adicionar Etiqueta de funcionário Clicar no botão Adicionar Funcionário abre o formulário de detalhes do funcionário (frmEmployeeDetail) e define o foco para um novo registo.
-
Detalhes do funcionário Clicar no botão Adicionar Funcionário no cabeçalho guarda o registo atual e define o foco para um novo registo.