Aplica-se a
Access para Microsoft 365 Access 2021 Access 2019

Selecione qualquer tópico abaixo para saber mais sobre a gestão de Empresas na Northwind Developer Edition. 

Observação: Esta página é referenciada no Access Developer Showcase Edition

Na Edição Northwind Starter, o Cliente é o único tipo de empresa. Na Edição para Programadores, expandimos esta opção para incluir Clientes, Transitários e Fornecedores

Também expandimos Produtos para incluir vários fornecedores para um produto.   

Cada empresa só pode ser de um tipo: Cliente, Transitário ou Fornecedor. O caso de negócio para quando o tipo de empresa pode ser alterado é descrito na secção frmCompanyDetail deste artigo. '

Tipos de empresa e onde são utilizados 

  • Cliente para uma Encomenda

  • Transitário de uma Encomenda

  • Fornecedor de uma Nota de Encomenda

  • Fornecedor de um Produto

Além disso, as Empresas na versão Northwind Developer podem ter vários Contactos. '

Empresas no Friso

Selecionar Empresas no Friso apresenta Empresas na Northwind em frmCompanyList

Lista da Empresa - frmCompanyList

Na Versão para Programadores da Northwind, frmCompanyList é um formulário dividido. Um formulário dividido dá-lhe duas vistas dos seus dados ao mesmo tempo, Vista formulário e Vista de Folha de Dados. Também tem um cabeçalho e um rodapé.  Nesta implementação, não iremos apresentar a vista de formulário. Ao não apresentarmos a vista de formulário, teremos uma folha de dados com um cabeçalho e um rodapé.  

Eis como o conseguimos:  

Em frmCompanyList, a barra divisora entre o cabeçalho e a folha de dados não está visível. A propriedade de formulário Barra Divisora de Formulário está definida como Não, ocultando assim a vista de formulário. 

Os formulários divididos e os formulários de Folha de Dados são como folhas de cálculo do Excel. Suportam filtragem e ordenação e pode mostrar, ocultar ou mover campos ou colunas. Além disso, as colunas podem ser totais. 

As secções de cabeçalho e rodapé de um formulário dividido permitem-lhe utilizar botões de comando, imagens, texto (etiquetas) e quaisquer outros controlos de formulário de acesso que pretenda melhorar a experiência do utilizador. Para saber mais sobre formulários e formulários divididos, pode começar aqui. As folhas de dados não apresentam as secções de cabeçalho e rodapé.

Saiba mais através de Introdução aos formulários e Criar um formulário dividido '

O formulário Lista da Empresa suporta estas cinco ações:

  • Aplicar um filtro personalizado, pré-criado, filtragem a pedido ou ambos

  • Mostrar/Ocultar Campos

  • Criar Etiquetas

  • Mostrar Filtro

  • Adicionar uma nova Empresa

Faça duplo clique em qualquer parte da linha de detalhes para abrir o formulário Detalhes da Empresa (não apenas no ID como noutros formulários).  '

Filtros Pré-criados e filtragem a pedido

O formato frmCompanyList é rico em oportunidades para filtrar as Empresas na Northwind.  Na parte superior do ecrã, pode filtrar com estes botões de opção:

  • Todas as Empresas (a predefinição)

  • Apenas Clientes

  • Apenas Transitários

  • Apenas Fornecedores

Além disso, estão disponíveis as opções de filtragem incorporadas e a pedido da folha de dados. Todos os filtros aplicados ao formulário lista da empresa (pré-criado ou a pedido) são transmitidos e aplicados ao frmCompanyDetail quando é aberto.  

Para transmitir filtros de um formulário para outro, primeiro tem de limpar a cadeia de filtro do formulário para conter apenas nomes de campo. Veja o módulo de código Open_frmCompanyDetail para obter uma explicação mais detalhada sobre como isto é feito e em frmCompanyDetail nos comentários de Form_Load para ver como é aplicado.

Transmitimos as informações do filtro para o formulário Detalhes da Empresa através da propriedade OpenArgs do formulário em vez de abrir o formulário com uma condição where .  Pode saber mais sobre o OpenArgs aqui.

Mostrar/Ocultar Campos

Selecione Mostrar/Ocultar Campos para abrir uma caixa de diálogo com uma lista de todos os campos disponíveis; pode marcar ou desmarcar uma ou mais colunas. O esquema selecionado persiste de uma sessão para outra até ser implementada uma nova versão da aplicação. Consulte Mostrar ou ocultar colunas numa folha de dados. 

Criar Etiquetas

O botão Criar etiquetas abre o Assistente de Etiquetas de Acesso. Saiba mais sobre o assistente de etiquetas aqui: Criar etiquetas de correio no Access. 

Abrir Detalhes da Empresa

Faça duplo clique em qualquer parte de uma linha de detalhes para abrir frmCompanyDetail

Clique no campo ID (configurado como uma hiperligação) ou faça duplo clique em qualquer outro campo na linha de detalhes para abrir frmCompanyDetail para a Empresa selecionada e transmitir qualquer filtro de formulário que tenha sido aplicado à Lista da Empresa para frmCompanyDetail.

Detalhes da Empresa - frmCompanyDetail

À primeira vista, frmCompanyDetail pode parecer relativamente simples.  No entanto, não é.  No código subjacente ao formulário, está a acontecer muita coisa!  O formulário realça as seguintes ações e funcionalidades:

  • Vários botões de comando e ligações

    • Adicionar Empresa

    • Email Lista de Empresas

    • Mostrar Filtro

    • Eliminar Empresa

    • Abrir um Mapa com base num Endereço

    • Abrir um site a partir de uma hiperligação

  • Cancelar ou Guardar ações no modo de adicionar/editar

  • Regras de negócio para controlar quando um tipo de empresa pode ser alterado

  • Verificação da integridade referencial antes do evento de eliminação '

O evento Form_Load inclui as seguintes ações:

  • Utilize vários parâmetros transmitidos para o formulário através de OpenArgs e da função Northwind StringToDictionary personalizada

  • Utilize a propriedade de formulário OpenArgs para permitir que um utilizador adicione uma nova Empresa ao fazer uma Encomenda

  • Utilizar a técnica GoToRecord para adicionar uma nova Empresa

  • Utilize a técnica SearchForRecord para mudar para a Empresa selecionada em frmCompanyList

  • Opções de Ramificação/Execução Condicional (Ver Form_Load Evento)

    • Opção 1 - Declaração de Caso

    • Opção 2 - Aninhado Se Senão

    • Opção 3 – ElseIf

    • Opção 4 – Aninhado Se Senão e ElseIf '

No evento Form_Current, ocorre o seguinte: 

  • Altere um subformulário legenda e objeto de origem no runtime ao chamar o sub ManageFormOptions(). Esta subrreplicação é chamada a partir de vários locais neste formulário.  '

Cancelar ou Guardar Ações no modo de adição ou edição. 

Os nossos formulários do Access estão vinculados.  O que é que isso significa?  Da Microsoft: "Um formulário 'vinculado' é um formulário que está diretamente ligado a uma origem de dados, como uma tabela ou consulta, e pode ser utilizado para introduzir, editar ou apresentar dados dessa origem de dados."

Com formulários vinculados, o Access não requer que "guarde" explicitamente os seus dados.  Quando passa de um registo para o Access seguinte, guarda automaticamente os seus dados.  Muitas vezes, isso funciona da maneira que queres.  Mas e se um utilizador tiver de efetuar uma ação para indicar que está pronto para guardar? 

Por exemplo, o formulário frmCompanyDetail tem um subforma para Contatos (sfrmCompanyDetail_Contacts).  Então, o que acontece se você começar a adicionar ou editar os dados da empresa – digamos número de telefone – e pausar para corrigir um erro de digitação que você observar nas informações de um Contato?  Por padrão, o Access salvará todas as alterações feitas no registro da empresa quando você clicar no registro de contato, que não é o que você deseja. 

Neste formulário, mostramos uma maneira de fazer isso com um único registro para uma Empresa.

Qual é o motivo para ter o botão Cancelar ? A chave de escape cancela todos os dados inseridos ou alterados (mas não salvos) em um controle no formulário. Nesse estado, o ícone de lápis aparece no seletor de registro (uma barra vertical cinza no lado esquerdo da linha).

No entanto, depois de clicar no botão Adicionar Empresa , você perceberá que não há nenhum ícone de lápis até começar a inserir dados no novo registro da empresa. E se você mudar de ideia sobre como adicionar uma nova empresa neste momento? Se você pressionar a tecla de escape, nada acontecerá porque você ainda não inseriu nenhum dado. É por isso que temos o botão cancelar.

Clicar no botão Cancelar sempre funciona; A chave de escape só funciona quando você inseriu ou alterou dados.  

Se você começar a adicionar ou alterar dados e fechar o formulário sem clicar em salvar ou cancelar, por padrão, o Access salvará os dados.  

Regra de negócios: Como regra comercial northwind para empresas, queremos que você indique explicitamente que deseja "Salvar".  Para garantir isso, devemos marcar se o usuário clicar em salvar no evento Form_BeforeUpdate e se ele não clicar em salvar, solicitará que o usuário indique se deseja salvar ou cancelar suas alterações. '

Alteração de tipo da empresa

Regra de negócios: Se uma empresa tiver pedidos, pedidos de compra ou um fornecedor para um produto, o usuário não poderá alterar o Tipo da Empresa. Criamos uma função, CompanyIsActive(), para determinar se existe alguma das condições acima. Se o fizerem, o usuário não poderá alterar o tipo da empresa até que essas referências sejam desmarcadas (excluídas). 

Essa regra só é imposta neste formulário.  Em um aplicativo pronto para produção, você não permitiria que os usuários alterassem os dados abrindo a tabela diretamente.  Em Northwind, permitimos que você abra as tabelas e faça o que quiser.  Esta é uma ótima maneira de aprender, mas também deixa você livre para fazer alterações que possam violar as regras. 

Você deve sempre programar defensivamente. Planeje o inesperado. Mesmo que a Empresa seja atualmente um Shipper, isso não significa que eles não eram em algum momento um fornecedor ou cliente. Sua ID pode ser encontrada em registros mais antigos nas tabelas ProductVendor ou PurchaseOrder . '

Formulário de diálogo personalizado.

Para exibir suas descobertas, cboCompanyTypeID_BeforeUpdate usa um formulário de diálogo, frmGenericDialog. Essa pode ser uma ótima alternativa à caixa de mensagens padrão quando você tem muitas informações a serem exibidas. Ele também é usado com o formulário de funcionário para uma finalidade semelhante.'  Excluir verificação de integridade referencial

Na Northwind Starter Edition, permitimos que o comportamento padrão do Access notifique que uma empresa não pode ser excluída quando tiver registros relacionados.  

No Northwind Developer Edition, notificamos você antes da exclusão, em vez de aceitar o comportamento padrão do Access.  Fazemos isso usando a mesma função que fizemos com o Tipo de Empresa de Alteração; função CompanyIsActive().

A diferença é que só nos preocupamos com pedidos ou pedidos de compra. Se não houver pedidos ou pedidos de compra, confirmaremos sua intenção de excluir e excluiremos o Fornecedor de Produtos e contatos se eles existirem para você. 

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.