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

Em nome de Anielise - Gravar dados do formulário do Excel com Access

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por webmaster »

oi boa noite pessoas inteligentes. eu estou com dificuldade desse excel com access.

estou com problema em gravar dados do formulário do excel com acess. tentei dois códigos e ambos deram errados.

código para conectar banco

Option Explicit
Public conexao As New ADODB.Connection
Public rs As New ADODB.Recordset
Sub conecta()
Set conexao = New ADODB.Connection
With conexao
.Provider = "Microsoft.ACE.OLEDB.16.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\cadastros.accdb"
.Open
End With
End Sub
Sub desconecta()
Set rs = Nothing
Set conexao = Nothing
End Sub

Código para salvar primeira tentativa

Sub salvar_empresa()
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False

cx.conecta

sql = "INSERT INTO cadastro_empresa( [id],[razaosocial],[nomereduzido],[cnpj], [cnae], [endereco], [cidade], [telefone], [email], [nomeresponsavel], [departamentoRH], [Vinculo], [DatadeContrato], [periodico], [formadepagamento], [emailfinanceiro], [telefonefinanceiro], [observacao], [valorporfuncionario], [mensalidade], [situacao])"
sql = sql & " VALUES ("
sql = sql & "'" & F_2.cod2.Value & "'"
sql = sql & ",'" & F_2.box1.Value & "'"
sql = sql & ",'" & F_2.box2.Value & "'"
sql = sql & ",'" & F_2.box3.Value & "'"
sql = sql & ",'" & F_2.box4.Value & "'"
sql = sql & ",'" & F_2.box5.Value & "'"
sql = sql & ",'" & F_2.box6.Value & "'"
sql = sql & ",'" & F_2.box7.Value & "'"
sql = sql & ",'" & F_2.box8.Value & "'"
sql = sql & ",'" & F_2.box9.Value & "'"
sql = sql & ",'" & F_2.box10.Value & "'"
sql = sql & ",'" & F_2.box11.Value & "'"
sql = sql & ",'" & F_2.box12.Value & "'"
sql = sql & ",'" & F_2.box13.Value & "'"
sql = sql & ",'" & F_2.box14.Value & "'"
sql = sql & ",,'" & F_2.box15.Value & "'"
sql = sql & "'" & F_2.box16.Value & "'"
sql = sql & ",'" & F_2.box17.Value & "'"
sql = sql & ",'" & F_2.box18.Value & "'"
sql = sql & ",'" & F_2.box19.Value & "'"
sql = sql & ",'" & F_2.box20.Value & "'"
sql = sql & " )"

'define a conexão e abre o Recordset com os dados da tabela Clientes

Set rs = New ADODB.Recordset

With rs
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Source = sql
.ActiveConnection = cx.conexao
.Open dando erro aqui
End With
'desconectar tabela e banco de dados
Set rs = Nothing
cx.desconecta
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Código para salvar segunda tentativa

Sub salvar_empresa1()
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False


'define a conexão e abre o Recordset com os dados da tabela Clientes
sql = "SELECT * FROM cadastro_empresa"
cx.conecta
Set rs = New ADODB.Recordset
With rs
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Source = sql
.ActiveConnection = cx.conexao
.Open
.AddNew dando erro aqui

rs(0) = F_2.cod2.Value
rs(1) = F_2.box1.Value
rs(2) = F_2.box2.Value
rs(3) = F_2.box3.Value
rs(4) = F_2.box4.Value
rs(5) = F_2.box5.Value
rs(6) = F_2.box6.Value
rs(7) = F_2.box7.Value
rs(8) = F_2.box8.Value
rs(9) = F_2.box9.Value
rs(10) = F_2.box10.Value
rs(11) = F_2.box11.Value
rs(12) = F_2.box12.Value
rs(13) = F_2.box13.Value
rs(14) = F_2.box14.Value
rs(15) = F_2.box15.Value
rs(16) = F_2.box16.Value
rs(17) = F_2.box17.Value
rs(18) = F_2.box18.Value
rs(19) = F_2.box19.Value
rs(20) = F_2.box20.Value
.Update
.Close
End With
'Efetiva a atualização do BD

conexao.Close


'desconectar tabela e banco de dados
Set rs = Nothing
cx.desconecta

Application.Calculation = xlCalculationManual
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


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.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por webmaster »

@Anielise, por favor, anexe seu arquivo aqui.


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: Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por Reinaldo »

Pelo que me lembro já havia respondido ontem, mas segue novamente

Código: Selecionar todos

Sub salvar_empresa()
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False
    sql = "INSERT INTO cadastro_empresa( Identificação,RazãoSocial,Nomereduzido,CNPJ,CódigoCNAE,Endereço,CidadeUF,telefone,"
    sql = sql & "email,nomeresponsavel,departamentoRH,Vinculo,DatadeContrato,períódico,formadepagamento,emailfinanceiro,telefonefinanceiro,"
    sql = sql & "observação,valorporfuncionário,mensalidade,situação)"
    sql = sql & " VALUES ("
    sql = sql & "'" & F_2.cod2.Value & "',"
    sql = sql & "'" & F_2.box1.Value & "',"
    sql = sql & "'" & F_2.box2.Value & "',"
    sql = sql & "'" & F_2.box3.Value & "',"
    sql = sql & "'" & F_2.box4.Value & "',"
    sql = sql & "'" & F_2.box5.Value & "',"
    sql = sql & "'" & F_2.box6.Value & "',"
    sql = sql & "'" & F_2.box7.Value & "',"
    sql = sql & "'" & F_2.box8.Value & "',"
    sql = sql & "'" & F_2.box9.Value & "',"
    sql = sql & "'" & F_2.box10.Value & "',"
    sql = sql & "'" & F_2.box11.Value & "',"
    sql = sql & "'" & F_2.box12.Value & "',"
    sql = sql & "'" & F_2.box13.Value & "',"
    sql = sql & "'" & F_2.box14.Value & "',"
    sql = sql & "'" & F_2.box15.Value & "',"
    sql = sql & "'" & F_2.box16.Value & "',"
    sql = sql & "'" & F_2.box17.Value & "',"
    sql = sql & "'" & F_2.box18.Value & "',"
    sql = sql & "'" & F_2.box19.Value & "',"
    sql = sql & "'" & F_2.box20.Value & "'"
    sql = sql & ")"
    
    'define a conexão e abre o Recordset com os dados da tabela Clientes
    
   'Set rs = New ADODB.Recordset
    cx.conecta
With rs
    .CursorType = adOpenKeyset
    .CursorLocation = adUseClient
    .Source = sql
    .ActiveConnection = cx.conexao
    .Open
End With
'desconectar tabela e banco de dados
Set rs = Nothing
cx.desconecta
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Observação: Os dados/valores "passados" pela instrução SQL devem condizer como os tipos determinados na tabela no access;por exemplo: Endereço está como Numero na tabela, se for passado Texto irá gerar erro.
No seu modelo alterei na tabela conforme julguei correto.
Outra observação: Evite na determinação de nomes de campos utilizar caracteres acentuados/especiais, isso eventualmente poderá causar erros
Anexos
SaudeTRAB_Alt.zip
(574.59 KiB) Baixado 288 vezes


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por webmaster »

Foi mal Reinaldo. Eu vi essa mensagem depois do post que mencionou, então pensei que fosse outra. Shame on me... :(


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.


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: Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por Reinaldo »

Dá nada não, e a duvida/demanda pegou "carona" no topico https://www.tomasvasquez.com.br/forum/v ... =22&t=6955


anielise
Colaborador
Colaborador
Mensagens: 23
Registrado em: Qua Jun 26, 2019 5:56 pm

Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access

Mensagem por anielise »

oi. eu fazendo pesquisa aqui no tópico acabei encontrando esse. para esclarecer, enviei pergunta no tópico que era do mesmo seguimento, havia dado erro ao enviar resposta. mas no fim acabou sendo enviado mesmo assim.
eu pedi ajuda pro master - obrigada por ter me ajuda de coração. só depois que vi que a mensagem que eu havia enviado foi respondido. em conclusão deu tudo certo. só teve um erro no fórum e que persiste. quando faço postagem da como usuário não permitido, porém a postagem segue..


eu venho agradecer a grande ajuda que a equipe vem nos assistido. sempre fico olhando outros post que pode me ajudar em meu crescimento.


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