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

3 participantes

    Criar tabela a partir de um arquivo com tabelas html (html tables)

    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 11/8/2015, 07:23

    Pessoal bom dia.
    Gerencio uma frota de veículos de uma empresa e estou criando um banco de dados para cruzamento de placas. Porém, o relatório de veículos disponibilizado pelo site da empresa é gerado na forma de um arquivo .html. Esse arquivo contém varias tabelas html (html tables) e quando eu mando importar o arquivo, através da aba "Dados Externos" > "Documento Html", o programa mostra uma lista de tabelas (Table 1, table 2, table 3,....etc) e pede para que eu selecione uma tabela. Mas na realidade eu quero todas as tabelas, mas o access não permite que eu selecione todas. Dessa forma, eu teria que ficar criando as tabelas uma a uma, o que torna impraticável.
    Existe uma forma de importar o arquivo html, criando uma tabela vinculada, com todas as tabelas do arquivo?
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Criar tabela a partir de um arquivo com tabelas htmil (html tables)

    Mensagem  good guy 11/8/2015, 21:25

    Olá Paulo,

    Você já tentou por aqui?

    Barra de Ferramentas:

    Dados Externos=> Mais => Documento HTML => Opção : Vincular à fonte de dados criando uma tabela vinculada.
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 12/8/2015, 07:35

    Olá good guy, obrigado por responder. Foi exatamente o caminho que selecionei para importar o html. Porém o Access só permite que eu vincule uma Tabela html do arquivo, ao invés de todas. Conforme a imagem a seguir: Criar tabela a partir de um arquivo com tabelas html (html tables) 16c2gk2

    Nessa figura, é possivel verificar que o arquivo tem 3 tabelas html (table 1, 2 e 3), porém só me deixa importar uma. O problema maior é que geralmente o arquivo html que eu trabalho vem com mais de 50 tabelas html, e fica inviável fazer uma a uma.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7702
    Registrado : 15/03/2013

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  Alvaro Teixeira 12/8/2015, 08:27

    Olá a todos.
    Paulo, poderia postar um ficheiro html de exemplo com mais que uma tabela.
    Assim será mais fácil para se compreender e testar.
    Abraço
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 13/8/2015, 05:47

    Olá a todos. Ahteixeira, segue o link para download do arquivo. https://drive.google.com/file/d/0B160SBJGVpnxQUZCSjhHaHZJWEU/view?usp=sharing

    Esse arquivo é proveniente de um relatório de uma página na web, onde disponibiliza um arquivo com duzentas placas para relatório. O que eu fiz foi fazer um .bat para concatenar varios arquivos em um só, que é o que estou disponibilizando, sem perda nenhuma nas informações, isto é, são 4 arquivos de 200 placas, concatenados que passam a ter 800 placas.

    No Calc e Excel, consigo vincular esse arquivo na planilha, através de importação, e abre tranquilamente. Já no access é que estou tendo essa dificuldade.

    Qualquer informação, estou a diposição.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7702
    Registrado : 15/03/2013

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  Alvaro Teixeira 13/8/2015, 12:13

    Olá Paulo Monteiro,

    Veja se exemplo abaixo atende o pretendido:

    Código:
    Sub testeLigaHtml()
        'Liga Table
        DoCmd.TransferText acLinkHTML, "", "Table", "C:\Temp\teste.html", True, "Table"
        'Liga Table1
        DoCmd.TransferText acLinkHTML, "", "Table1", "C:\Temp\teste.html", True, "Table1"
        'Liga Table2
        DoCmd.TransferText acLinkHTML, "", "Table2", "C:\Temp\teste.html", True, "Table2"
    End Sub

    Abraço
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 14/8/2015, 20:27

    Olá ahteixeira. Desculpe a demora em responder, pois estou trabalhando em local sem internet, só quando volto pra casa é que realmente posso verificar.

    Funcionou sim, ele criou as tabelas conforme cada tabela html. Obrigado!!!

    Vou agora ver se consigo trabalhar nesse código, pois geralmente o arquivo que eu trabalho, tem mais de 50 tabelas, seria então repetir os comandos do seu exemplo, adicionando table 4, 5, 6,..... até 50, por exemplo?

    O arquivo é o teste.html, teria como fazer uma caixa perguntando qual o arquivo eu desejo acrescentar, entao escolher no diretório? Pois eu gero varios arquivos com nomes diferentes...

    Muito obrigado
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Criar tabela a partir de um arquivo com tabelas htmil (html tables)

    Mensagem  good guy 14/8/2015, 20:52

    Olá Paulo,

    Se me permitem dar um palpite caros colegas.

    Código:

    Private Sub cmdGerar_Click()
    On Error Resume Next
    Call Gerar
    End Sub

    Public Function Gerar()
    On Error Resume Next
    Dim i As Long
    Dim s As Long
    s = Nz(InputBox("Quantas tabelas deseja importar?", "Importando..."))

    For i = 0 To s
    DoCmd.TransferText acLinkHTML, "", "Table " & i, "C:\Temp\teste.html", True, "Table" & i
    Next i
    End Function


    Última edição por good guy em 15/8/2015, 15:05, editado 1 vez(es)
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 14/8/2015, 21:24

    Boa good guy! Isso ficou show de bola.
    Eu fico explicando o que eu quero, mas talvez seja meio censurado, acabando que dou margem para meio entendimento, o colega ahteixeira deu a ideia bem legal e vc aprimorou.

    A unica coisa que percebi foi que, mudando a macro para perguntar qual o arquivo, ele não abriu uma caixa de diretorios para eu seleciona-lo e substituir o nome teste.html. Mas acho que dá pra fazer isso né?

    Abraço e obrigado
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Criar tabela a partir de um arquivo com tabelas htmil (html tables)

    Mensagem  good guy 14/8/2015, 22:40

    Olá Paulo,

    Esqueci-me realmente que seria para abrir o diretório onde está o arquivo. Logicamente com uma imputbox não dá pra fazer isso. Testa o código abaixo e veja se dá certo.

    Código:

    Public Function Gerar()
    On Error Resume Next
    Dim i As Long
    Dim s As Long
    Dim x As String

    s = Nz(InputBox("Qual arquivo deseja importar?", "Importando..."))
    x = Dir("C:\Temp\teste.html")
    DoCmd.TransferText acLinkHTML, "", "Table " & s, x, True, , "Table" & s
    End Function



    Última edição por good guy em 15/8/2015, 14:45, editado 1 vez(es)
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 15/8/2015, 03:06

    Goog guy, boa noite.

    Sou noob no ramo, desculpe. Ele abra a caixa de diálogo pedindo para selecionar o arquivo, mas para eu digitar o caminho no arquivo na caixa, e não uma caixa do explorer, para eu selecionar a pasta e depois o arquivo.... :/

    Pesquisando por aqui, achei alguns exemplos, mas dão erro na hora de testar...

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7702
    Registrado : 15/03/2013

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  Alvaro Teixeira 15/8/2015, 11:59

    Olá a todos
    Bom pitaco Eduardo

    A questão é que o nome da primeira tabela a importar é só Table, ou seja se for 3 tabelas vai ser:
    Table
    Table1
    Table2

    Segue exemplo para teste:

    Código:
    Public Function Gerar()
    'On Error Resume Next
    Dim y, s As Integer
    Dim x As String

    s = Nz(InputBox("Quantas tabelas deseja importar?", "Importando..."))  'Ou
    x = Nz(InputBox("Indique o caminho\nomeFicheiro.html ", "Importando..."))

        For y = 0 To s - 1
            If y = 0 Then
                DoCmd.TransferText acLinkHTML, "", "Table", x, True, "Table"
            Else
                DoCmd.TransferText acLinkHTML, "", "Table" & y, x, True, "Table" & y
            End If
        Next y
     
    End Function

    Nota, quando pedir caminho\NomeFicheiro introduzir por exemplo: C:\Temp\teste.html

    Abraço
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Criar tabela a partir de um arquivo com tabelas html(html tables)

    Mensagem  good guy 15/8/2015, 15:01

    Olá Teixeira e Paulo,

    Realmente se for este o detalhe que estava faltando deve funcionar a sua função. Cometi um erro nesta última função que desenvolvi. Não sei se servirá também. Testa aí Paulo.

    Código:

    Public Function Gerar()
    On Error Resume Next
    Dim s As String  'Ou Variant

    s = Nz(InputBox("Qual arquivo deseja importar?", "Importando...", "teste.html"))

    DoCmd.TransferText acLinkHTML, "", "Table", "C:\Temp\'" & s & "'", True, , "Table"
    End Function
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 15/8/2015, 16:39

    Ahteixeira e good guy, bom final de semana a vocês.

    Funcionou o exemplo do ahteixeira perfeitamente. Entendi que a caixa para informar quantas tabelas desejo importar é para limitar a transferencia de tabelas do arquivo html, informando 100 ele vai de Table até Table99. OK!
    A caixa para informar o nome do arquivo será sempre no diretório "temp" então vou tentar modificar para aparecer o diretório e o "usuário final" apenas digitar o nome do arquivo, sem precisar digitar c:\temp\teste.html.

    Tentei usar alguns exemplos que pesquisei na net para abrir uma caixa de dialogo para seleçao de arquivo, com a função FileDialog, porém sem sucesso.

    Agora minha briga vai ser outra, pois antes eu comparava uma planilha do excel com outra e gerava um relatorio com as placas coincidentes. Agora vai ser um monte de tables rsrsrsrs... Mas acho que isso é questão para outro tópico não é?

    Um abraço a todos...
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7702
    Registrado : 15/03/2013

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  Alvaro Teixeira 15/8/2015, 17:00

    Olá,
    Quanto ao FileDialog, veja no link abaixo como fazer.
    https://www.maximoaccess.com/t8306-resolvidouso-do-application-filedialog-para-selecao-de-arquivos?highlight=filedialog+escolher+ficheiro
    Ficaria bem, de momento estou no telemóvel e não consigo demonstrar.
    Quanto à outra questão, sim , deverá abrir um tópico novo.
    Abraço
    avatar
    paulomonteiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 11/08/2015

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  paulomonteiro 15/8/2015, 17:07

    Obrigado meu amigo, aproveite seu dia. Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7702
    Registrado : 15/03/2013

    Criar tabela a partir de um arquivo com tabelas html (html tables) Empty Re: Criar tabela a partir de um arquivo com tabelas html (html tables)

    Mensagem  Alvaro Teixeira 15/8/2015, 19:19

    Olá, segue abaixo exemplo:
    Código:
    Public Function Gerar()
    'ahteixeira 2015 para maximoaccess

        ' Requer referencia a Microsoft Office 1x Object Library
        Dim fd As FileDialog
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
       
        fd.Title = "selecione o ficheiro"
        fd.Filters.Add "Arquivos html", "*.html", 1

        fd.Show
       
        If (fd.SelectedItems.Count > 0) Then
            Dim y As Integer
            Dim x, s As String
           
            x = fd.SelectedItems(1)
            s = Nz(InputBox("Quantas tabelas deseja importar?", "Importando..."))
           
            If s = "" Or Val(s) < 1 Then Exit Function
           
            For y = 0 To s - 1
                If y = 0 Then
                    DoCmd.TransferText acLinkHTML, "", "Table", x, True, "Table"
                Else
                    DoCmd.TransferText acLinkHTML, "", "Table" & y, x, True, "Table" & y
                End If
            Next y
        Else
            MsgBox "Não foi escolhido nenhum ficheiro", vbInformation, ""
        End If

    End Function

    Não esquecer a referencia a Microsoft Office 1x Object Library
    Abraço

      Data/hora atual: 7/12/2022, 12:46