Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Em nome de Anielise - Gravar dados do formulário do Excel com Access
Em nome de Anielise - Gravar dados do formulário do Excel com Access
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
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
Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access
@Anielise, por favor, anexe seu arquivo aqui.
- Reinaldo
- 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
Pelo que me lembro já havia respondido ontem, mas segue novamente
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
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
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 301 vezes
Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access
Foi mal Reinaldo. Eu vi essa mensagem depois do post que mencionou, então pensei que fosse outra. Shame on me...
- Reinaldo
- 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
Dá nada não, e a duvida/demanda pegou "carona" no topico https://www.tomasvasquez.com.br/forum/v ... =22&t=6955
Re: Em nome de Anielise - Gravar dados do formulário do Excel com Access
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.
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.