Página 1 de 1

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

Enviado: Qua Jul 03, 2019 8:13 am
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

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

Enviado: Qua Jul 03, 2019 8:14 am
por webmaster
@Anielise, por favor, anexe seu arquivo aqui.

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

Enviado: Qua Jul 03, 2019 9:30 am
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

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

Enviado: Qua Jul 03, 2019 12:40 pm
por webmaster
Foi mal Reinaldo. Eu vi essa mensagem depois do post que mencionou, então pensei que fosse outra. Shame on me... :(

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

Enviado: Qua Jul 03, 2019 1:15 pm
por Reinaldo
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

Enviado: Seg Ago 12, 2019 7:39 pm
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.