[resolvido] Update e Insert do excel para Access

Moderador: Avelino Sampaio

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

[resolvido] Update e Insert do excel para Access

Mensagempor Carvalho » 14 Nov 2017, 11:10

Bom dia pessoal estou com um grande problema, tenho uma planilha em rede que eu uso porem existe um pessoal que não querem usar o access :oops: e eles usão um Excel e preciso da informação deles! como faço para atualizar e inserir alguns campos da minha tabela pelo Excel deles ?

No aguardo.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 14 Nov 2017, 14:33

Alguém pessoal estou desesperado!
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Avelino Sampaio
Mensagens: 2102
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Update e Insert do excel para Access

Mensagempor Avelino Sampaio » 14 Nov 2017, 14:54

Carvalho,

pesquisa aqui no fórum, que tem muito código demostrando como vc pode transferir seus dados para uma planilha Excel.

http://www.redeaccess.com.br/search.php?st=0&sk=t&sd=d&sr=posts&keywords=excel

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 14 Nov 2017, 16:31

obrigado Avelino pela dica, mais sempre antes de postar eu vou pesquisar se já não tem algum tópico parecido e nenhum desses me resolveu.

Para explicar melhor: tenho uma tabela Access com uma Id única e um Excel com uma coluna com o mesmo Id só queria atualizar todo dia para trazer apenas algumas informações atualizada de algumas colunas desse Excel para o meu Access. como posso fazer isso mestre Avelino.


No aguardo.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.


Avatar do usuário
Avelino Sampaio
Mensagens: 2102
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Update e Insert do excel para Access

Mensagempor Avelino Sampaio » 14 Nov 2017, 17:45

Carvalho,

tem certeza que este tópico abaixo, que inclusive pertence a vc, não atende ?

http://www.redeaccess.com.br/viewtopic.php?f=12&t=1217

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Avelino Sampaio
Mensagens: 2102
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Update e Insert do excel para Access

Mensagempor Avelino Sampaio » 15 Nov 2017, 10:57

Carvalho,

progrediu ?

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 11:27

Bom dia Avelino, tentei a noite toda e não consegui fazer um update, detalhe a planilha em excel é muito diferente tem muitas colunas mais creio que isso não seja o problema! só tem a coluna com o "id" que bate com a minha, e só queria atualizar dela para a minha me ajuda por favor estou desesperado.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Avelino Sampaio
Mensagens: 2102
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Update e Insert do excel para Access

Mensagempor Avelino Sampaio » 15 Nov 2017, 11:34

carvalho,

tem fornecer a sua tabela e o arquivo excel com alguns dados.

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 12:04

olha ai meu amigo, me ajuda nessa por favor, as colunas que estiverem de verde no Excel essas são as que eu tenho que pegar as informações e mandar para a minha tabela no Access chamada de TbLogistica de acordo com as suas respectivas colunas.

a senha do login é admin
No aguardo.
Você deve estar registrado e autenticado para ter acesso ao arquivo anexo.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 12:34

Na verdade não é "id" e sim "Item" que bate uma com a outra.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 14:56

E ai meu amigo alguma sugestão ?
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Avelino Sampaio
Mensagens: 2102
Registrado em: 04 Jun 2015, 18:27
Contato:

Re: Update e Insert do excel para Access

Mensagempor Avelino Sampaio » 15 Nov 2017, 17:44

carvalho,

qual é senha do admin ?

Aguardamos
==================================================
Clique no link abaixo e veja um ótimo kit de ensino que tenho para você.
http://www.usandoaccess.com.br
==================================================

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 17:56

admin
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Damasceno Jr.
Mensagens: 343
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Update e Insert do excel para Access

Mensagempor Damasceno Jr. » 15 Nov 2017, 19:39

Senhores, vejam se ajuda... estou querendo aprender sobre a interação do Access com os outros aplicativos do pacote office

Código:
Public Sub fncImportaExcel()

Dim bdExcel As DAO.Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim fld As Field
Dim strCampo As String
Dim lnglimite As Long

lnglimite = DMax("IdSistema", "tbLogistica") 'variável com o maior código IdSistema
Set bdExcel = OpenDatabase("d:\Users\ivan.junior\Desktop\pegarinformaçõeadaqui.xlsx", False, True, "Excel 12.0;HDR=Yes;IMEX=1") 'abro o arquivo excel
Set rs1 = bdExcel.OpenRecordset("Plan1$") 'abro a planilha
Set rs2 = CurrentDb.OpenRecordset("select * from TbLogistica order by Item;") 'abro a tabela

rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha

Do While Not rs1.EOF 'loop1, percorrendo todos os registros da planilha
While Not rs2.EOF 'loop2, percorrendo todos os registros da tabela
'se o IdSistema da vez for menor ou igual que o limite, então ainda estou
'mexendo com registros que podem ser editados

If rs2("IdSistema") <= lnglimite Then
If CDbl(rs1("3").Value) < rs2("Item").Value Then
'se o menor valor para a coluna Item na planilha for menor que o menor valor para a coluna
'Item na tabela então este registro precisa ser adicionado

rs2.AddNew
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update
rs1.MoveNext
If rs1.EOF Then Exit Do
ElseIf CDbl(rs1("3").Value) > rs2("Item").Value Then
'se o menor valor para a coluna Item na planilha for maior que o menor valor para a coluna Item na tabela então
'apenas vou para o próximo registro

rs2.MoveNext
Else 'senão, ou seja, se os valores na coluna Item da planilha e Item na tabela forem iguais, edito o registro
rs2.Edit
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update
rs1.MoveNext
If rs1.EOF Then Exit Do
End If
Else 'senão, ou seja, se o IdSistema da vez for maior que o limite, então ainda já estou mexendo
'com registros que foram adicionados apenas vou para o próximo, ignorando-o

rs2.MoveNext
End If
Wend

'se cheguei aqui, então há registros na planilha que não existem na tabela cujo
'valor da coluna Item na planilha é maior que o valor da coluna item na tabela
'sendo assim, estes precisam ser adicionados


rs2.AddNew
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update
rs1.MoveNext

Loop

rs1.Close
Set rs1 = Nothing
bdExcel.Close
Set bdExcel = Nothing
rs2.Close
Set rs2 = Nothing

End Sub

Private Function fncEquivale(bytColuna As Byte) As String

'função onde especifico o valor das colunas (primeira linha na planilha) que equivale com as colunas na tabela

Select Case bytColuna
Case 3: fncEquivale = "Item"
Case 10: fncEquivale = "PalletMontagem"
Case Else: fncEquivale = ""
End Select

End Function

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 19:51

Amigo esse código irei testar, pelo que vi ele é para inserir e agora estou precisando do update para uma atualização na tabela, mais esse código com certeza ira me ajudar muito também pois vou precisar inserir alguns registro em outra tabela, assim que eu testar falarei o resultado.



o brigado e aguardando a ajuda do Update do excel para o access. :D
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 15 Nov 2017, 23:12

Damasceno ficou show o Insert que você fez! testei aqui com outra colunas e show agora você também consegui fazer com o Update ?


No aguardo.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 10:48

Bom dia pessoal, alguém para me dar uma dica de como fazer o Update, estou sendo super pressionado em fazer isso e não sei como. :cry:
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Damasceno Jr.
Mensagens: 343
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Update e Insert do excel para Access

Mensagempor Damasceno Jr. » 16 Nov 2017, 11:01

O código também atualiza... olhe os comentários.

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 11:49

Amigo como faço para deixar a penas o Update ? e o insert separados.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 12:10

caramba já estou aqui tentando deixa apenas o Update e não estou conseguindo pessoal como sou burro! me ajudem ai por favor. :cry:
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Damasceno Jr.
Mensagens: 343
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Update e Insert do excel para Access

Mensagempor Damasceno Jr. » 16 Nov 2017, 12:39

Na abertura do tópico você diz :? : como faço para atualizar e inserir alguns campos da minha tabela pelo Excel deles ?

Bom... então basta remover o que está em vermelho... Adaptar/Alterar o que está em azul

Código:
Public Sub fncImportaExcel()

Dim bdExcel As DAO.Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim fld As Field
Dim strCampo As String
Dim lnglimite As Long

lnglimite = DMax("IdSistema", "tbLogistica") [color=#008040]'variável com o maior código IdSistema
Set bdExcel = OpenDatabase("d:\Users\ivan.junior\Desktop\pegarinformaçõeadaqui.xlsx", False, True, "Excel 12.0;HDR=Yes;IMEX=1") 'abro o arquivo excel
Set rs1 = bdExcel.OpenRecordset("Plan1$") 'abro a planilha
Set rs2 = CurrentDb.OpenRecordset("select * from TbLogistica order by Item;") 'abro a tabela

rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha
rs1.MoveNext 'avança uma linha

Do While Not rs1.EOF 'loop1, percorrendo todos os registros da planilha
Do While Not rs2.EOF 'loop2, percorrendo todos os registros da tabela
'se o IdSistema da vez for menor ou igual que o limite, então ainda estou
'mexendo com registros que podem ser editados

If rs2("IdSistema") <= lnglimite Then
If CDbl(rs1("3").Value) < rs2("Item").Value Then
se o menor valor para a coluna Item na planilha for menor que o menor valor para a coluna
'Item na tabela então este registro precisa ser adicionado
rs2.AddNew
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update

rs1.MoveNext
If rs1.EOF Then Exit Do
ElseIf CDbl(rs1("3").Value) > rs2("Item").Value Then
'se o menor valor para a coluna Item na planilha for maior que o menor valor para a coluna Item na tabela então
'apenas vou para o próximo registro

rs2.MoveNext
Else 'senão, ou seja, se os valores na coluna Item da planilha e Item na tabela forem iguais, edito o registro
rs2.Edit
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update
rs1.MoveNext
rs2.MoveNext
If rs1.EOF Then Exit Do
End If
Else 'senão, ou seja, se o IdSistema da vez for maior que o limite, então ainda já estou mexendo
'com registros que foram adicionados apenas vou para o próximo, ignorando-o
rs2.MoveNext
End If

Loop

'se cheguei aqui, então há registros na planilha que não existem na tabela cujo
'valor da coluna Item na planilha é maior que o valor da coluna item na tabela
'sendo assim, estes precisam ser adicionados

rs2.AddNew
For Each fld In rs1.Fields
strCampo = fncEquivale(fld.Name)
If strCampo <> "" Then rs2(strCampo).Value = fld.Value
Next fld
rs2.Update
rs1.MoveNext

Loop


rs1.Close
Set rs1 = Nothing
bdExcel.Close
Set bdExcel = Nothing
rs2.Close
Set rs2 = Nothing

End Sub

Private Function fncEquivale(bytColuna As Byte) As String

'função onde especifico o valor das colunas (primeira linha na planilha) que equivale com as colunas na tabela

Select Case bytColuna
Case 3: fncEquivale = "Item"
Case 10: fncEquivale = "PalletMontagem"
Case Else: fncEquivale = ""
End Select

End Function

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 13:50

Bom dia damasceno verdade, mais deu um probleminha e a priori precisamos do Update! sobre o insert eu depois trato isso até mesmo apro outro tópico.

Fiz exatamente o que você me orientou damasceno e está me retornando o erro 13 Tipos incompatíveis na linha - "strCampo = fncEquivale(fld.Name)" como trato esse erro amigo ?



No aguardo.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Damasceno Jr.
Mensagens: 343
Registrado em: 08 Jun 2015, 01:30
Localização: Medicilândia-Pará

Re: Update e Insert do excel para Access

Mensagempor Damasceno Jr. » 16 Nov 2017, 14:42

Testei aqui e tudo está funcionando. Tem como postar como ficou o código completo do seu procedimento fncImportaExcel e da sua função fncEquivale após sua adaptação?

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 15:03

Funciona com essa planilha que te mandei para teste, mais quando eu pego a original em rede, com mais de 30000 mil registros da isso. a noite quando eu chegar em casa vou upar a original com que está dando erro ai mando o link para vocês.
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Avatar do usuário
Carvalho
Mensagens: 119
Registrado em: 21 Ago 2015, 23:22

Re: Update e Insert do excel para Access

Mensagempor Carvalho » 16 Nov 2017, 23:43

Segue link do excel que não está funcionando.

é a plan "BD"
https://mega.nz/#F!yxUHQQrB!fNhbBlJ-LKU2UGy3H8OPcA
Provérbios 1:7 “O temor do SENHOR é o princípio do saber, mas os loucos desprezam a sabedoria e o ensino.”

Disable adblock

Precisamos do seu apoio. Faca uma doacao para o site atraves do Paypal.



Voltar para “Formulários”

Quem está online

Usuários neste fórum: Nenhum usuário registrado e 1 visitante