Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Ajuda com Excel+Access (Código)

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

Vitautas2017
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Sex Jan 05, 2018 8:43 pm

Ajuda com Excel+Access (Código)

Mensagem por Vitautas2017 »

Olá Galera!

Preciso da ajuda de vocês, pesquisei na net e não encontrei nada referente.

No arquivo em anexo, tenho uma planilha em excel e um bd no access.

Nessa planilha, existe um formulário (frmPesquisaNF) meu problema é que não consigo escrever uma sql que traga os valores das colunas/campo correspondentes do ListView.

Alguém poderia dar uma olhada no referido código e tentar resolver esse problema?

OBS: No BD tenho 2 tabelas (com relacionamento de chave primaria para chave estrangeira, ou seja, um para muitos) eu ja tentei usar o INNER JOIN mas não consegui e nem sou familiarizado com isso.

Grato a todos!
Anexos
BASE-ATUAL.zip
(315.88 KiB) Baixado 322 vezes


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
PRMPOKER
Consultor
Consultor
Mensagens: 206
Registrado em: Ter Dez 04, 2012 8:57 am

Re: Ajuda com Excel+Access (Código)

Mensagem por PRMPOKER »

Caro amigo, boa noite!

Posso ajudá-lo, pois esta é uma das minhas especialidades, integrar SQL com excel e access.

Trabalho como freelancer especialmente aqui no site e numa busca simples poderás conferir minhas referências.

Posso fazer um orçamento sem compromisso.

Manda-me um email: paulinhomonteiro@hotmail.com

Um abraço!


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Ajuda com Excel+Access (Código)

Mensagem por Reinaldo »

OBS: No BD tenho 2 tabelas (com relacionamento de chave primaria para chave estrangeira, ou seja, um para muitos) eu ja tentei usar o INNER JOIN mas não consegui e nem sou familiarizado com isso.
Inner Join obriga que somente registros que constem nas duas tabelas sejam mostrados/considerados.
No seu modelo os registros em Cadastro não tem correspondente na Tabela NF, talvez por isso não obteve exito.

Nesse caso proponho utilizar Left Join, assim todos os registros de Cadastro serão mostrados
Contudo ao tentar carregar na listbox/listview registros/campos nulos gera erro que devem ser tratados.
Verifique no anexo se esta em linha com o que espera
A montagem do sql segue:

Código: Selecionar todos

    With Me.lstv
        .ListItems.Clear
        
        sql = "SELECT CADASTRO.CodigoEmpresa, "
        sql = sql & "CADASTRO.NomeDaEmpresa, "
        sql = sql & "CADASTRO.ProcessoAdministrativo, "
        sql = sql & "CADASTRO.TermoDoContrato, "
        sql = sql & "CADASTRO.TermoAditivo, "
        sql = sql & "nf.notafiscal, "
        sql = sql & "nf.valornf, "
        sql = sql & "nf.ProcessoDePagamento, "
        sql = sql & "nf.DataDeEntrada, "
        sql = sql & "nf.Descricao "      'Note que no ultimo termo do select não aplica a virgula
        sql = sql & "from CADASTRO left join NF on CADASTRO.CodigoEmpresa=NF.CodigoEmpresa "
e a inclusãono listview

Código: Selecionar todos

        Dim i As Integer
        For i = 0 To banco.RecordCount - 1
            If Not IsNull(banco(0)) Then
                .ListItems.Add 1, , banco(0)
                .ListItems(1).ListSubItems.Add 1, , banco(2)
                .ListItems(1).ListSubItems.Add 2, , banco(3)
                .ListItems(1).ListSubItems.Add 3, , banco(1)
                If Not IsNull(banco(5)) Then
                    .ListItems(1).ListSubItems.Add 4, , banco(5)
                Else
                    .ListItems(1).ListSubItems.Add 4, , ""
                End If
                If Not IsNull(banco(6)) Then
                    .ListItems(1).ListSubItems.Add 5, , banco(6)
                Else
                    .ListItems(1).ListSubItems.Add 5, , ""
                End If
                .ListItems(1).ListSubItems.Add 6, , banco(4)
                If Not IsNull(banco(7)) Then
                    .ListItems(1).ListSubItems.Add 7, , banco(7)
                Else
                    .ListItems(1).ListSubItems.Add 7, , ""
                End If
                If Not IsNull(banco(8)) Then
                    .ListItems(1).ListSubItems.Add 8, , banco(8)
                Else
                    .ListItems(1).ListSubItems.Add 8, , ""
                End If
                If Not IsNull(banco(9)) Then
                    .ListItems(1).ListSubItems.Add 9, , banco(9)
                Else
                    .ListItems(1).ListSubItems.Add 9, , ""
                End If
Anexos
Nova Planilha - BD.zip
(238.47 KiB) Baixado 325 vezes


Vitautas2017
Acabou de chegar
Acabou de chegar
Mensagens: 3
Registrado em: Sex Jan 05, 2018 8:43 pm

Re: Ajuda com Excel+Access (Código)

Mensagem por Vitautas2017 »

Deu quase certo!

Só não entendi porque o WHERE não funciona 😐

Consigo carregar a listview com os dados corretos mas nao consigo ordena-los

Tem alguma solução para isso?

Grato


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: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Ajuda com Excel+Access (Código)

Mensagem por Reinaldo »

Só montei um pequeno modelo, não me fixei no Where pois não consegui visualizar o que realmente deseja, e como seu modelo praticamente não ha registros...
No listview são carregados os registros conforme o recodset, inclua no select a clausula Order By, para ordenar os registros por um determiinado campo
Depois do From... Where.... Por exemplo ordenar decrescente pelo prazo inicial-->
ORDER BY CADASTRO.PrazoInicial DESC


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