Ir ao conteúdo
  • Cadastre-se

Macro - exportar do excel para Access


aveiro06

Posts recomendados

Bom dia pessoal…….

Mais uma vez preciso da Vossa ajuda no seguinte:

1-Tenho uma base dados de Access com o nome de “pescaveiro2009.mdb” com várias tabelas onde existe uma chamada “movimentos” com a seguinte estrutura:

Automático (numeração automática dos movimentos)

Data

Destino

S_C

Lota

Barco

Espécie

Tipo

Tamanho

Frescura

Preco_Medio

Quantidade

Valor

Valor_Conf

2 – Tenho um ficheiro do Excel com o nome “Altera_ Movimentos_Ops.xls” com varias folhas que fazem algumas conversões e uma das folhas, a principal, tem o nome de “Movimentos_Ops” que tem a mesma estrutura dos campos da BD do Access e com os nomes dos campos iguais.

O que pretendo saber: è possível criar uma rotina ou macro que faça o envio dos dados da minha folha do Excel “Movimentos_Ops” para a BD “pescaveiro2009.mdb” para a tabela “movimentos”?

Sabendo que já existem movimentos na BD do Access e sendo que a folha do Excel pode ter 1000 ou 2000 movimentos mensais para enviar. Pretendo sempre fazer esta exportação varias vezes por mês e juntando sempre aos movimentos já existentes na BD do Access. Clarificando: fazer um update aos movimentos da BD adicionando os novos.

Desculpem tão grande explicação……caso seja necessário posso incluir os ficheiros.

A macro seria criada no Excel na folha onde estão os movimentos.

Obrigado pela atenção

Link para o comentário
Compartilhar em outros sites

Caro amigo Aveiro 06,

no Excel você tem a opção de gravar uma macro na barra visual basic, portanto abra uma planilha modelo, como exemplo a "altera_movimentos_ops.xls" e import para o Access, isso tudo com a macro sendo gravada. Após a importação para uma tabela você tem que dar stop na macro e adicionar um botão na sua barra de ferramentas no Excel, após isso vincule a macro que você acabou de gravar nesse botão dando apenas um clique.

Pronto está feito o modelo de importação automática para o Access. Quando quiser é só apertar o botão que ela vai ser importada automaticamente para a tabela.

Abraços,

Link para o comentário
Compartilhar em outros sites

Caro amigo Aveiro 06,

no Excel você tem a opção de gravar uma macro na barra visual basic, portanto abra uma planilha modelo, como exemplo a "altera_movimentos_ops.xls" e import para o Access, isso tudo com a macro sendo gravada. Após a importação para uma tabela você tem que dar stop na macro e adicionar um botão na sua barra de ferramentas no Excel, após isso vincule a macro que você acabou de gravar nesse botão dando apenas um clique.

Pronto está feito o modelo de importação automática para o Access. Quando quiser é só apertar o botão que ela vai ser importada automaticamente para a tabela.

Abraços,

Mando os 2 ficheiros para poderem ver mais em pormenor...o senao da macro gravada é que nem sempre sao o mesmo numero de movimentos...podem ser 10 como 1000 para enviar.

Para mim era preferivel ter uma macro no ficheiro do excel para carregar e enviar os movimentos para o access...tabela Movimentos.

http://www.4shared.com/file/145610907/6f60f18f/Programa.html

Mais uma vez obrigado pela colaboraçao

Link para o comentário
Compartilhar em outros sites

Ja tenetei gravar a macro mas nao grava a parte de eu enviar para a tabela do access.......fiquei com a sensaçao que grava so no excel.....estarei a fazer algo errado?

Na folha do excel fui as ferramentas e MAcro - Gravar- selecionei os movimentos, copiar, depois abri a tabelas do access movimentos, ocultei a numeração automatica e colei........

Tudo o que fiz no acces nao ficou gravado....

Link para o comentário
Compartilhar em outros sites

Agradeço a disponibilidade e a ajuda dada....o problema ja esta resolvido.

Faça referência no seu projeto ao objeto Microsoft ActiveX Data Object xxx Library

Crie um módulo e insira o código abaixo:

Public cnnComando As New ADODB.Command

Public Rs As ADODB.Recordset

Public Conn As ADODB.Connection

'Desconecta

Function desconecta()

'On Error Resume Next

Conn.Close

Set Conn = Nothing

End Function

'Conexão:

Public Sub Conecta()

Dim strArquivo As String

Dim strLocal As String

Dim ConectaAccess As String

Dim dados As String

DoEvents

strArquivo = "pescaveiro2009.mdb"

strLocal = ActiveWorkbook.Path & "\"

dados = strLocal & strArquivo

' abre a conexao

Set Conn = New ADODB.Connection

Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & dados & ";" & "Persist Security Info=False"

Conn.Open

End Sub

'Rotina de Inclusão:

Public Function Inserir(ByVal strSql As String) As Variant

' abre a conexao

Call Conecta

'*Cria o Recordset desejado

With cnnComando

.ActiveConnection = Conn

.CommandType = adCmdText

'Verifica a operação e cria o comando SQL correspondente:

.CommandText = strSql

Set Rs = .Execute

End With

Call desconecta

End Function

Sub transfere_dados()

Dim i As Integer

Dim j As Integer

Dim sql As String

Dim rng As Range

i = Sheets("Movimentos_Ops").Range("A65536").End(xlUp).Row

Set rng = Sheets("Movimentos_Ops").Range("A3:A" & i)

For Each c In rng

Data = Sheets("Movimentos_Ops").Cells(c.Row, 1).Value

Destino = Sheets("Movimentos_Ops").Cells(c.Row, 2).Value

S_C = Sheets("Movimentos_Ops").Cells(c.Row, 3).Value

Lota = Sheets("Movimentos_Ops").Cells(c.Row, 4).Value

Barco = Sheets("Movimentos_Ops").Cells(c.Row, 5).Value

Especie = Sheets("Movimentos_Ops").Cells(c.Row, 6).Value

Tipo = Sheets("Movimentos_Ops").Cells(c.Row, 7).Value

Tamanho = Sheets("Movimentos_Ops").Cells(c.Row, 8).Value

Frescura = Sheets("Movimentos_Ops").Cells(c.Row, 9).Value

Preco_Medio = Sheets("Movimentos_Ops").Cells(c.Row, 10).Value

Quantidade = Sheets("Movimentos_Ops").Cells(c.Row, 11).Value

Valor = Sheets("Movimentos_Ops").Cells(c.Row, 12).Value

Valor_Conf = Sheets("Movimentos_Ops").Cells(c.Row, 13).Value

sql = "INSERT INTO movimentos(Data,Destino,S_C,Lota,Barco,Especie," _

& "Tipo,Tamanho,Frescura,Preco_Medio,Quantidade,Valor,Valor_Conf)" _

& "VALUES('" & Data & "','" & Destino & "','" & S_C & "','" & Lota & "'" _

& ",'" & Barco & "','" & Especie & "','" & Tipo & "','" & Tamanho & "'" _

& ",'" & Frescura & "','" & Preco_Medio & "','" & Quantidade & "'" _

& ",'" & Valor & "','" & Valor_Conf & "');"

Inserir sql

Next c

MsgBox "Dados transferidos com sucesso!", vbInformation, "Mensagem do Sistema"

End Sub

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!