MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Importar várias guias de uma planilha excel para access

    avatar
    Nill2013Br
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 14/05/2013

    Importar várias guias de uma planilha excel para access Empty Importar várias guias de uma planilha excel para access

    Mensagem  Nill2013Br 13/10/2015, 20:34

    Amigos Boa Tarde,

    Estou tentando fazer a importação de várias guias de uma planilha e utilizei os seguintes códigos disponibilizados no 102 Códigos VBA para Access:
    Este codigo importa o Excel para o Access, mas cria tabelas separadas com o nome dos Sheets e com todos os seus dados.

    Private Sub SeuBotao_Click()
    Dim appExcel As Excel.Application
    Dim wb As Excel.Workbook
    Dim sh As Excel.Worksheet
    Dim strValue As String
    Set appExcel = CreateObject("Excel.Application")
    Set wb = appExcel.Workbooks.Open("C:\temp.xls") 'nome do seu excel e seu diretorio
    For Each sh In wb.Sheets
    Debug.Print sh.Name
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tbl_" & sh.Name, "C:\temp.xls", True, sh.Name & "!"
    Next
    wb.Close
    appExcel.Quit
    On Error GoTo 0
    Exit Sub
    End Sub

    Este importa todos os dados de todos os sheets para a mesma tabela:

    Private Sub SeuBotao_Click()
    Dim appExcel As Excel.Application
    Dim wb As Excel.Workbook
    Dim sh As Excel.Worksheet
    Dim strValue As String
    Dim strTable As String
    strTable = "tblExemplo" 'nome da tabela no seu banco
    Set appExcel = CreateObject("Excel.Application")
    Set wb = appExcel.Workbooks.Open("C:\temp.xls") 'nome do seu excel e seu diretorio
    For Each sh In wb.Sheets
    Debug.Print sh.Name
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, "C:\temp.xls", True, sh.Name & "!"
    Next
    wb.Close
    appExcel.Quit
    On Error GoTo 0
    Exit Sub
    End Sub

    Só que esta dando erro de Erro de Compilação -  O tipo definido pelo usuário não foi definido. Eu não entendi do que se trata. Alguém pode ajudar?  Obrigado.
    avatar
    cesarelias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/04/2014

    Importar várias guias de uma planilha excel para access Empty importar

    Mensagem  cesarelias 14/10/2015, 00:00

    Caro nill,

    Você já verificou se os campos que estão na sheet são iguais ao do access. o que acontece as vezes é os títulos das colunas do excel, serem diferentes dos títulos das colunas do access. eu montei o código abaixo para resolver esta questão. não sei se seria o seu caso.

    Private Sub Comando63_Click()
    'On Error GoTo Err_omando0_Click

    Dim xlapp As Object
    Dim xlsheet As Object
    Dim stDocName As String
    Dim objFSO
    Set objFSO = CreateObject("Scripting.FileSystemObject")


    strPath = "T:\FluxoImpotacao\pagamentos\"
    strFile = Dir(strPath, vbNormal)

    Message = "Informe o valor do parâmetro" ' Define o aviso.
    Title = "Planejamento de Fluxo de Caixa" ' Define o título.

    MyValue = InputBox(Message, Title, Padrão)

    If MyValue = "3020" Then
    If strFile > "" Then
    GoTo continua
    End If
    End If
    Exit Sub



    continua:
    stDocName = "ConsLimpaTabdadosTemp"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    stDocName = "ConsLimpaTabdados"
    DoCmd.OpenQuery stDocName, acNormal, acEdit


    Set xlapp = CreateObject("Excel.Application")
    Set xlsheet = xlapp.Workbooks.Open(strPath & strFile).Sheets(1)

    Do While strFile > ""
    If strFile > "" Then

    With xlapp

    .Application.Range("a1") = "NaturezadeLancamento"
    .Application.Range("b1") = "Empresa"
    .Application.Range("c1") = "CodPessoa"
    .Application.Range("d1") = "NomedaPessoa"
    .Application.Range("e1") = "NrTítulo"
    .Application.Range("f1") = "VlTituloBaxado"
    .Application.Range("g1") = "VlTítuloOriginal"
    .Application.Range("h1") = "DtVencProgramado"
    .Application.Range("i1") = "DtEmissao"
    .Application.Range("j1") = "origem"
    .Application.Range("k1") = "observacao"

    .Application.ActiveWorkbook.Save
    .Application.ActiveWorkbook.Close
    .Quit


    End With


    Set xlapp = Nothing
    Set xlsheet = Nothing

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "tabeladadosTemp", strPath & strFile, True

    objFSO.MoveFile "T:\FluxoImpotacao\pagamentos\" & strFile, "T:\FluxoImpotacao\pagamentos\processados\" '
    strFile = Dir()

    End If

    Loop

    stDocName = "ConsAcrescTabDados"
    DoCmd.OpenQuery stDocName, acNormal, acEdit



    Exit Sub


    fim:

    End Sub
    avatar
    Nill2013Br
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 14/05/2013

    Importar várias guias de uma planilha excel para access Empty Re: Importar várias guias de uma planilha excel para access

    Mensagem  Nill2013Br 14/10/2015, 00:14

    cesarelias, estou tentando colocar o arquivo aqui mas esta dando erro. Já zipei de tudo quanto foi jeito e nada. Acho que deve ser pelo tamanho compactado que esta dando 35 kb. Vamos lá eu tenho uma planilha onde as colunas tem nomes e fiz a mesma coisa no access. Cada guia tem um nome, será que isto influencia alguma coisa??? Se tiver alguma dica de como posto o arquivo agradeço. No link acho que dá para baixar para darem uma olhada no que fiz.



    Arquivo que estou com problema
    avatar
    cesarelias
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/04/2014

    Importar várias guias de uma planilha excel para access Empty importar

    Mensagem  cesarelias 14/10/2015, 01:02

    Caro Amigo,
    acho que descobri o erro. está na declaração do objeto. declare wb com object e o sh também como object.
    testei aqui e funcionou.
    valeu

    Dim wb As Object
    Dim sh As Object



    Dim strValue As String
    Dim strTable As String
    strTable = "tbl_Programas Abertos" 'nome da tabela no seu banco
    Set appExcel = CreateObject("Excel.Application")
    Set wb = appExcel.Workbooks.Open("d:\Downloads.xlsx") 'nome do seu excel e seu diretorio
    For Each sh In wb.Sheets
    Debug.Print sh.Name
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, "d:\Downloads.xlsx", True, sh.Name & "!"
    Next
    wb.Close
    appExcel.Quit
    On Error GoTo 0
    Exit Sub
    End Sub
    avatar
    Nill2013Br
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 14/05/2013

    Importar várias guias de uma planilha excel para access Empty Re: Importar várias guias de uma planilha excel para access

    Mensagem  Nill2013Br 14/10/2015, 14:52

    Amigos após um pouco de pesquisa descobri que precisa entrar no VBA do Access aba ferramentas na guia referência e habilitar o Microsoft Excel 14.0 Office Library para que o Access possa fazer a importação dos dados. Consegui também fazer a importação dos dados, só que na tabela estão ficando muitas linhas vazias entre os intervalos de dados e não esta importando todas as guias do excel. Será que tem limite para importação de guias??? Tem como eliminar estas linhas vazias??


    Segue arquivo com código VBA funcionando e linhas vazias na tabela. Quem puder ajudar agradeço.


    https://onedrive.live.com/redir?resid=DFFEBB004634ED20!2165&authkey=!AHrlhdcSLOCcCP0&ithint=file%2caccdb

    Conteúdo patrocinado


    Importar várias guias de uma planilha excel para access Empty Re: Importar várias guias de uma planilha excel para access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 20:53