Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

scaldana

Historico de contatos

Recommended Posts

Tudo bem pessoal?

Sou novato em Access e vim buscar ajuda dos sábios do Forum. Provavelmente é uma duvida besta, mas não encontro a resposta faz tempos...

 

Preciso montar um database com um formulário de entrada baseado no seguinte:

-vou inserir o nome de empresas e descrever o que aconteceu no ultimo contato com a empresa.

depois preciso de um relatorio onde conste o nome da empresa e o historico de contatos feitos. tipo:

 

"EMPRESA A" - 1/1/07: Falei com o fulano | 10/1/07: Falei denovo com o fulano.

 

Meu problema é que não consigo guardar esse histórico de contatos e depois abrir pelo relatorio. Deve ser algo muito idiota de resolver mas passei já uma semana nisso e não consigo sair do lugar. Alguem pode dar um help?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado scaldana:Talvez você não esteja conseguido armazenar os registros em sua tabela, a partir do formulário que menciona, por 2 motivos:1) O formulário não está acoplado a nenhuma fonte de dados. Para verificar isso, acesse as "Propriedades do formulário", abrindo-o no modo "estrutura"; em seguida, clique com o botão do lado direito do mouse sobre um pequeno quadrado negro no lado esquerdo da tela, ao lado da régua. Na aba "Dados" e na linha "Origem do registro", selecione o nome de sua tabela de contatos; a partir daí, o formulário passará a exibir os registros já existentes, com opção de "navegar" entre eles e incluir novos;ou2) Estando o formulário desacoplado de uma fonte de dados (como uma tabela ou consulta), e você desejando que seja assim mesmo (o que é bastante comum), não implementou as consultas para incluir novos registros. Consulte o arquivo de "Ajuda" do Access sobre os tópicos "SQL" e "INSERT INTO". Aqui mesmo no fórum há diversos exemplos de inclusão de registros via SQL.Espero que isso ajude.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revisando então para ter certeza:Eu devo criar um formulário de entrada com o nome da empresa e a situação atual do contato.Depois crio outro formulário para entrar com a situação atual do contato. Isso que eu não sei fazer. Onde que salva essa atualização e mantem a ultima inserção?Depois monto o relatório onde busca por nome da empresa o historico de contatos todo, o que eu não sei fazer disso também é elencar as empresas uma acima a outra e os historicos ao lado delas. Hoje tem saido algo do tipo:EMPRESA A - blablablaEMPRESA A - blablabla2EMPRESA B - blablablablalbaEMPRESA B - bakaealbelabeaeAbraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado scaldana:A solução que apresento agora é muito simples, mas que poderá ajuda-lo enquanto, aos poucos, promove as adaptações necessárias para tornar o aplicativo melhor (ou menos "cadelo", hehehe).ETAPA 1:Sugiro que crie uma tabela (que poderemos chamar de "tblEmpresas") contendo um campo Autonumeração (denominado ID) e um campo texto (denominado NomeDaEmpresa). Salve a tabela e entre no modo "folha de dados"; cadastre algumas empresas com as quais costuma manter contato. Observe que o campo ID atribui um número, ou melhor, um CÓDIGO ÚNICO para cada empresa cadastrada. Essa tabela irá auxilia-lo a economizar tempo, pois ao invés de digitar o nome da empresa todas as vezes que estabelecer contato com um de seus representantes, você poderá meramente selecionar o seu nome dentre os demais.ETAPA 2:Crie um formulário não acoplado a nenhuma base de dados e insira nele uma caixa de combinação (denominada de "cboEmpresas"), três caixas de texto ("txtData", "txtContato" e "txtHistorico", respectivamente) e um botão de comando ("cmdIncluir"). Especifique as seguintes propriedades em "cboEmpresas":Origem da linha: tblEmpresasNúmero de colunas: 2Largura das colunas: 0cm;2cmColuna acoplada: 1Limitar a uma lista: SimPerceba que esse componente passará a listar os nomes das empresas cadastradas em "tblEmpresas". Em seguida, especifique as seguintes propriedade de "txtData":Formato: Data abreviadaMáscara de entrada: 00/00/0000;0ETAPA 3:Crie uma tabela (denominada "tblHistorico") com os seguintes campos e tipos de dados:ID (Autonumeração)CodDaEmpresa (Inteiro Longo)DataDoContato (Data e hora - data abreviada)Contato (Texto)Historico (Texto)ETAPA 4:Crie uma consulta SQL (denominada "qryHistorico"), a qual será ORIGEM DO SEU RELATÓRIO, com a seguinte sintaxe: SELECT tblEmpresas.NomeDaEmpresa, tblHistorico.DataDoContato, tblHistorico.Contato FROM tblHistorico, tblEmpresas WHERE tblHistorico.CodDaEmpresa = tblEmpresas.ID ORDER BY tblEmpresas.NomeDaEmpresaETAPA 5:Crie um relatório baseado na consulta "qryHistorico"; se necessário utilize o "Assistente de Relatório" do Access para facilitar o processo.ETAPA 6:Agora só falta implementar o código em VBA para efetuar o cadastramento na tabela "tblHistorico". No evento "OnClick" do botão de comando "cmdIncluir" do formulário, insira:Dim db As DataBaseIf IsNull(cboEmpresas) Or cboEmpresas = "" thenDoCmd.BeepMsgBox "É necessário selecionar uma empresa.", 48, "Banco de Dados"cboEmpresas.SetFocusElseIf IsNull(txtData) Or txtData = ""DoCmd.BeepMsgBox "É necessário especificar uma data de contato.", 48, "Banco de Dados"txtData.SetFocusElseIf IsNull(txtContato) Or txtContato = ""DoCmd.BeepMsgBox "É necessário especificar o nome do contato.", 48, "Banco de Dados"txtContato.SetFocusElseIf IsNull(txtHistorico) Or txtHistorico = ""DoCmd.BeepMsgBox "É necessário especificar uma breve descrição do contato efetuado.", 48, "Banco de Dados"txtHistorico.SetFocusElseSet db = CurrentDbdb.execute "INSERT INTO tblHistorico (CodEmpresa, DataDoContato, Contato, Historico) VALUES (" & cboEmpresa & ", #' & txtData & '#, """ & txtContato & """, """ & txtHistorico & """)"db.CloseSet db = NothingEnd IfHá mais de uma maneira de fazer isso. Ainda que eu não tenha testado, uma das soluções é esta. Espero ter ajudado.Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.