Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

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

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


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

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: 2600
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 » Qua Jul 03, 2019 8:14 am

@Anielise, por favor, anexe seu arquivo aqui.


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1168
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 » Qua Jul 03, 2019 9:30 am

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 11 vezes


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

Avatar do usuário
webmaster
Administrador
Mensagens: 2600
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 » Qua Jul 03, 2019 12:40 pm

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


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

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: 1168
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 » Qua Jul 03, 2019 1:15 pm

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


Reinaldo
Gostou da resposta?:?: :oops: :D :mrgreen:

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