Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Modelo de Cadastro com BD Access

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

clauterra
Colaborador
Colaborador
Mensagens: 10
Registrado em: Sex Set 19, 2014 8:20 am

Re: Modelo de Cadastro com BD Access

Mensagem por clauterra »

joseA escreveu:
Coloniz@dor escreveu:Otimo trabalho realizado pelo colega e fico feliz em ver que o mesmo disponibilizou para que outros possam aprender.

abraço a todos.
Seja bem vindo Coloniz@dor, se não me engano, é você que tinha um site e publicou vários artigos sobre Excel_Access que muito me inspirou. Esperamos contar com seu vasto conhecimento e sua colaboração.
Sincronicidade. Li muitos materiais do amigo Coloniz@dor a respeito da integração excel_access e exatamente neste momento ele chega a este fórum. Seja bem vindo Coloniz@ador!

Tenho uma pendencia que não estou conseguindo resolver. Neste mesmo aplicativo quero inserir uma combobox no formCadastro, cuja fonte seja de outra tabela no banco access que tenha chave estrangeira na tabela que estamos trabalhando.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Coloniz@dor
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jan 09, 2014 9:32 pm

Re: Modelo de Cadastro com BD Access

Mensagem por Coloniz@dor »

clauterra escreveu:
joseA escreveu:
Coloniz@dor escreveu:Otimo trabalho realizado pelo colega e fico feliz em ver que o mesmo disponibilizou para que outros possam aprender.

abraço a todos.
Seja bem vindo Coloniz@dor, se não me engano, é você que tinha um site e publicou vários artigos sobre Excel_Access que muito me inspirou. Esperamos contar com seu vasto conhecimento e sua colaboração.
Sincronicidade. Li muitos materiais do amigo Coloniz@dor a respeito da integração excel_access e exatamente neste momento ele chega a este fórum. Seja bem vindo Coloniz@ador!

Tenho uma pendencia que não estou conseguindo resolver. Neste mesmo aplicativo quero inserir uma combobox no formCadastro, cuja fonte seja de outra tabela no banco access que tenha chave estrangeira na tabela que estamos trabalhando.
Amigo clauterra, obrigado pela recepção.

Bom, quanto a sua pendencia, temos duas situações, se for apenas carregar o combobox com informações de uma coluna de determinada tabela, basta realizar um SELECT no evento de iniciação do formulário, mais se as informações a serem carregadas depender de alguma informação de tabelas diferentes, precisaremos fazer um JOIN entre as tabelas.

Não sei se conseguir esclarecer bem, mais de qualquer forma, se puder postar a aplacação que já esta trabalhando com as alterações que deseja, posso analisar melhor.

abraço.


Coloniz@dor
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jan 09, 2014 9:32 pm

Re: Modelo de Cadastro com BD Access

Mensagem por Coloniz@dor »

joseA escreveu:
Coloniz@dor escreveu:Otimo trabalho realizado pelo colega e fico feliz em ver que o mesmo disponibilizou para que outros possam aprender.

abraço a todos.
Seja bem vindo Coloniz@dor, se não me engano, é você que tinha um site e publicou vários artigos sobre Excel_Access que muito me inspirou. Esperamos contar com seu vasto conhecimento e sua colaboração.
Olá amigo joseA, sou eu mesmo, andei meio ocupado com outras linguagens devido a faculdade, mais sempre volto para VBA porque amo de verdade.

Espero poder contribuir com alguma coisa, mais estou vendo que o fórum tem um nível bastante avançado, e espero aprender também.

Um grande abraço.


clauterra
Colaborador
Colaborador
Mensagens: 10
Registrado em: Sex Set 19, 2014 8:20 am

Re: Modelo de Cadastro com BD Access

Mensagem por clauterra »

Coloniz@dor escreveu:
Amigo clauterra, obrigado pela recepção.

Bom, quanto a sua pendencia, temos duas situações, se for apenas carregar o combobox com informações de uma coluna de determinada tabela, basta realizar um SELECT no evento de iniciação do formulário, mais se as informações a serem carregadas depender de alguma informação de tabelas diferentes, precisaremos fazer um JOIN entre as tabelas.

Não sei se conseguir esclarecer bem, mais de qualquer forma, se puder postar a aplacação que já esta trabalhando com as alterações que deseja, posso analisar melhor.

abraço.
Bom dia,
Obrigado pela dica e pela disponibilidade.
Creio que consegui avançar com a dica. A aplicação não esta 100% funcional, pois não trabalhei nas demais sub, array e funções. Também não atribui os nomes adequados aos controles. Estou pensando apenas na estrutura. De qualquer maneira segue o anexo. Imagino que alguns dos avanços possam ajudar alguém.

O que fiz então foi: Alterar o recordset para um SELECT JOIN a fim de que a ComboBox exibisse o valor texto (e não a sua chave). Criei outro record para usar a ComboBox ao inserir ou alterar o registro. Também mudei o código para carregar o registro:

Código: Selecionar todos

Sub PreencherCampos()
On Error Resume Next
    Me.txtCodigoFornecedor.Text = rstBanco.Fields(0).Value
    Me.txtNomeEmpresa.Text = rstBanco.Fields(1).Value
    Me.txtNomeContato.Text = rstBanco.Fields(2).Value
    Me.txtCargoContato.Text = rstBanco.Fields(3).Value
    Me.txtEndereco.Text = rstBanco.Fields(4).Value
    Me.txtCidade.Text = rstBanco.Fields(5).Value
    Me.txtRegiao.Text = rstBanco.Fields(6).Value
    Me.txtCEP.Text = rstBanco.Fields(7).Value
    Me.txtPais.Text = rstBanco.Fields(8).Value
    Me.txtTelefone.Text = rstBanco.Fields(9).Value
    Me.txtFax.Text = rstBanco.Fields(10).Value
    Me.txtHomePage.Text = rstBanco.Fields(11).Value
    'Me.ComboBox1.Text = rstBanco.Fields(8).Value
    'Me.ComboBox1.Text = rstMant!NomeDaMantenedora
' Este aqui apresenta o valor texto
    Me.ComboBox1.Text = rstBanco.Fields(8).Value
'Este permite alterar ou incluir a partir da tabela mestre
    Do While Not rstMant.EOF
        Me.ComboBox1.AddItem rstMant!NomeDaMantenedora
        rstMant.MoveNext
    Loop
    'Do While Not rstBanco.EOF
        'Me.ComboBox1.AddItem rstBanco!NomeDaMantenedora
        'rstBanco.MoveNext
    'Loop


final:
End Sub
Anexos
CadEntidades_excel_access_32_e_64Bits.zip
Cadastro de Entidades
(85.83 KiB) Baixado 442 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


sadraque10
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Ter Set 30, 2014 5:54 pm

Re: Modelo de Cadastro com BD Access

Mensagem por sadraque10 »

Estou tentando fazer um cadastro de clientes baseado no modelo aqui do forum mais estou encontrando algumas dificuldades e não sei omo resolver
ao fazer a alteração aparece a mensagem erro no tempo de execução já tentei todas as dicas aqui e não deu certo.
quando mando depurar vai para o trecho banco.Open sql, cx.Conn

se alguem puder me dar esta força?
Anexos
ModeloCadastroAccess.rar
Cadastro e banco
(170.12 KiB) Baixado 419 vezes


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Modelo de Cadastro com BD Access

Mensagem por Reinaldo »

Substitua a rotina de altera por esta:
Alterado referencia ao campo cpfconjuge errada, clausula where alterada

Código: Selecionar todos

Sub Alterar_Registro()
'O registro a ser alterado nao pode conter aspas simples
SqL = "UPDATE cadastro"
SqL = SqL & " SET nome = '" & Me.txtnome & "'"
SqL = SqL & ", cpf = '" & Me.txtcpf & "'"
SqL = SqL & ", responsavel = '" & Me.txtusuario & "'"
SqL = SqL & ", produto1 = '" & Me.cbproduto1 & "'"
SqL = SqL & ", produto2 = '" & Me.cbproduto2 & "'"
SqL = SqL & ", produto3 = '" & Me.cbproduto3 & "'"
SqL = SqL & ", produto4 = '" & Me.cbproduto4 & "'"
SqL = SqL & ", data = '" & Me.txtdata.Value & "'"
SqL = SqL & ", telcomercial = '" & Me.txttelcomercial.Value & "'"
SqL = SqL & ", telresidencial = '" & Me.txttelresid.Value & "'"
SqL = SqL & ", telcelular = '" & Me.txttelcelular.Value & "'"
SqL = SqL & ", escolaridade = '" & Me.cbescolaridade.Value & "'"
SqL = SqL & ", profissao = '" & Me.TextBox6.Value & "'"
SqL = SqL & ", estadocivil = '" & Me.cbestadocivil.Value & "'"
SqL = SqL & ", nomeconjuge = '" & Me.txtnomeconjuge.Value & "'"
SqL = SqL & ", cpfconjuge = '" & Me.txtcpfconjuge.Value & "'"
SqL = SqL & ", datanascimento = '" & Me.txtnascimentoconjuge.Value & "'"
SqL = SqL & ", imovel = '" & Me.cbimovel.Value & "'"
SqL = SqL & ", referencia1 = '" & Me.txtreferencia1.Value & "'"
SqL = SqL & ", telref1 = '" & Me.txttelreferencia1.Value & "'"
SqL = SqL & ", referencia2 = '" & Me.txtreferencia2.Value & "'"
SqL = SqL & ", telref2 = '" & Me.txttelreferencia2.Value & "'"
SqL = SqL & ", conta = '" & Me.txtconta.Value & "'"
SqL = SqL & ", observacao = '" & Me.txtobservacao.Value & "'"
SqL = SqL & ", dataretorno = '" & Me.txtretorno.Value & "'"
SqL = SqL & ", dataconclusao = '" & Me.txtdataconclusao.Value & "'"
SqL = SqL & ", obsfinais = '" & Me.txtobsfinais.Value & "'"
SqL = SqL & " WHERE cpf = '" & Me.txtcpf.Value & "';"
    
    Set Banco = New ADODB.Recordset
    cX.Conectar
    Banco.Open SqL, cX.Conn
    
    MsgBox "Alterado com sucesso.", vbInformation, "Cadastro de Cliente"
    
    Set Banco = Nothing
    cX.Desconectar
End Sub


sadraque10
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Ter Set 30, 2014 5:54 pm

Re: Modelo de Cadastro com BD Access

Mensagem por sadraque10 »

Está dando a mesma mensagem em incluir registro, oque pode ser de errado?

Pode me ajudar nessa tambem?

Sub Incluir_Registro()

sql = "INSERT INTO cadastro( cpf, nome, responsavel, produto1, produto2, produto3, produto4, data, telcomercial, telresidencial, telcelular, escolaridade, profissao, estadocivil, nomeconjuge, cpfconjuge, datanascimento, imovel, referencia1, telref1, referencia2, telref2, conta, observacao, dataretorno, dataconclusao, obsfinais)"
sql = sql & ", '" & Me.txtcpf.Value & "'"
sql = sql & ", '" & Me.txtnome.Value & "'"
sql = sql & ", '" & Me.txtusuario.Value & "'"
sql = sql & ", '" & Me.cbproduto1.Value & "'"
sql = sql & ", '" & Me.cbproduto2.Value & "'"
sql = sql & ", '" & Me.cbproduto3.Value & "'"
sql = sql & ", '" & Me.cbproduto4.Value & "'"
sql = sql & ", '" & Me.txtdata.Value & "'"
sql = sql & ", '" & Me.txttelcomercial.Value & "'"
sql = sql & ", '" & Me.txttelresid.Value & "'"
sql = sql & ", '" & Me.txttelcelular.Value & "'"
sql = sql & ", '" & Me.cbescolaridade.Value & "'"
sql = sql & ", '" & Me.TextBox6.Value & "'"
sql = sql & ", '" & Me.cbestadocivil.Value & "'"
sql = sql & ", '" & Me.txtnomeconjuge.Value & "'"
sql = sql & ", '" & Me.txtcpfconjuge.Value & "'"
sql = sql & ", '" & Me.txtnascimentoconjuge.Value & "'"
sql = sql & ", '" & Me.cbimovel.Value & "'"
sql = sql & ", '" & Me.txtreferencia1.Value & "'"
sql = sql & ", '" & Me.txttelreferencia1.Value & "'"
sql = sql & ", '" & Me.txtreferencia2.Value & "'"
sql = sql & ", '" & Me.txttelreferencia2.Value & "'"
sql = sql & ", '" & Me.txtconta.Value & "'"
sql = sql & ", '" & Me.txtobservacao.Value & "'"
sql = sql & ", '" & Me.txtretorno.Value & "'"
sql = sql & ", '" & Me.txtdataconclusao.Value & "'"
sql = sql & ", '" & Me.txtobsfinais.Value & "'"
sql = sql & " )"

Set banco = New ADODB.Recordset
cx.Conectar
banco.Open sql, cx.Conn

MsgBox "Cadastro efetuado com sucesso.", vbInformation, "Cadastro de Clientes"
Set banco = Nothing
cx.Desconectar

End Sub


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Modelo de Cadastro com BD Access

Mensagem por Reinaldo »

Experimente:

Código: Selecionar todos

Sub Incluir_Registro()
    sql = "INSERT INTO cadastro( cpf, nome, responsavel, produto1, produto2, produto3, produto4, data, telcomercial, telresidencial, telcelular, escolaridade, profissao, estadocivil, nomeconjuge, cpfconjuge, datanascimento, imovel, referencia1, telref1, referencia2, telref2, conta, observacao, dataretorno, dataconclusao, obsfinais)"
    sql = sql & " Values ('" & Me.txtcpf.Value & "'"
    sql = sql & ", '" & Me.txtnome.Value & "'"
    sql = sql & ", '" & Me.txtusuario.Value & "'"
    sql = sql & ", '" & Me.cbproduto1.Value & "'"
    sql = sql & ", '" & Me.cbproduto2.Value & "'"
    sql = sql & ", '" & Me.cbproduto3.Value & "'"
    sql = sql & ", '" & Me.cbproduto4.Value & "'"
    sql = sql & ", '" & Me.txtdata.Value & "'"
    sql = sql & ", '" & Me.txttelcomercial.Value & "'"
    sql = sql & ", '" & Me.txttelresid.Value & "'"
    sql = sql & ", '" & Me.txttelcelular.Value & "'"
    sql = sql & ", '" & Me.cbescolaridade.Value & "'"
    sql = sql & ", '" & Me.TextBox6.Value & "'"
    sql = sql & ", '" & Me.cbestadocivil.Value & "'"
    sql = sql & ", '" & Me.txtnomeconjuge.Value & "'"
    sql = sql & ", '" & Me.txtcpfconjuge.Value & "'"
    sql = sql & ", '" & Me.txtnascimentoconjuge.Value & "'"
    sql = sql & ", '" & Me.cbimovel.Value & "'"
    sql = sql & ", '" & Me.txtreferencia1.Value & "'"
    sql = sql & ", '" & Me.txttelreferencia1.Value & "'"
    sql = sql & ", '" & Me.txtreferencia2.Value & "'"
    sql = sql & ", '" & Me.txttelreferencia2.Value & "'"
    sql = sql & ", '" & Me.txtconta.Value & "'"
    sql = sql & ", '" & Me.txtobservacao.Value & "'"
    sql = sql & ", '" & Me.txtretorno.Value & "'"
    sql = sql & ", '" & Me.txtdataconclusao.Value & "'"
    sql = sql & ", '" & Me.txtobsfinais.Value & "'"
    sql = sql & " )"
    
    Set banco = New ADODB.Recordset
    cx.Conectar
    banco.Open sql, cx.Conn
    
    MsgBox "Cadastro efetuado com sucesso.", vbInformation, "Cadastro de Clientes"
    Set banco = Nothing
    cx.Desconectar
End Sub


clauterra
Colaborador
Colaborador
Mensagens: 10
Registrado em: Sex Set 19, 2014 8:20 am

Re: Modelo de Cadastro com BD Access

Mensagem por clauterra »

Boa tarde pessoal,
Quero deixar minha contribuição. Em anexo a aplicação que estou trabalhando. É um pouco mais complexa no sentido de que envolve tabelas vinculadas, uma vez que o banco pretende ser normalizado. Trata-se de um cadastro de matrizes e filiais inteiramente baseado no modelo discutido neste fórum. A aplicação esta totalmente funcional quanto ao cadastramento das filiais. Ainda farei a implementação do cadastro das matrizes e talvez implemente o cadastro de subfiliais.
Mesclei informações dos amigos Jose Antonio, Tomaz Vasques e Coloniz@dor. Juntei tudo isto com muitas tentativas, erros e muita pesquisa até entender o quê e o como as coisas estavam acontecendo, até dar certo. Confesso que quase "joguei a toalha".

O que tem de interessante, na minha opinião, e que pode acrescentar em funcionalidade ao que já foi construído é:
Compatibilidade com office 2010 64 bits;
Escolha automatica da versão do Provider (JET ou ACE)
Utilização de um modulo de classe para a conexão.

Tive que alterar a sub que faz a atualização dos registros (removi a estrutura em array pois gerava erro de tipos imcompativeis) para a mesma estrutura que faz a inclusão de novos registros. Minha explicação (que não sei se esta correta) para este erro é a de que um array trabalha sempre com o mesmo tipo de dados. Imagino que como estava tentando trasnferir uma estrutura dos controles que continha texto e numeros para o array, acontecia o erro.

Como não sou programador é bem possível que minhas alterações no código possam ser implementadas de forma mais simples e eficiente, mas foi o que consegui.

Grande abraço à todos
Anexos
CadEntidades_excel_access_64Bits.zip
Cadastro De Filiais
(88.55 KiB) Baixado 439 vezes


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Modelo de Cadastro com BD Access

Mensagem por Reinaldo »

Parabéns, pela iniciativa de compartilhar seus esforços/conhecimento.
Um pedido, como seu projeto utiliza um banco de dados com tabelas compartilhadas de um segundo banco (db_Regioes.mdb),
ao executar sua aplicação, é gerado um erro pios não é possivel "achar" o caminho e tabelas.
Seria conveniente que disponibilize esse banco também (pelo menos as estruturas das tabelas vinculadas), assim facilitará o estudo/utilização de sua aplicação.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder