VB6 - PESQUISA BD CONFORME INFORMAÇÃO NOS FILTROS

 Tópico anterior Próximo tópico Novo tópico

VB6 - PESQUISA BD CONFORME INFORMAÇÃO NOS FILTROS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#490738 - 15/10/2019 14:08:48

ROBLEDO
LAJEADO
Cadast. em:Janeiro/2019


Última edição em 15/10/2019 18:02:00 por KERPLUNK

 Anexos estao visíveis somente para usuários registrados

Olá.

Tenho uma aplicação em VB6 e estou montando uma consulta em tela com filtros em textbox e Combobox para buscar no access e trazer no listview os dados conforme filtros selecionados.
Gostaria de um auxílio na parte da busca dos dados conforme filtros selecionados.

Quando filtros estão VAZIOS vou considerar como filtrar/trazer TODOS os registros

Quando algum filtro for preenchido filtrar somente o(s) preenchido(s) e trazer no listview. (PRECISO DE AJUDA AQUI)

Acredito que isso deva ser tratado na parte do WHERE da consulta, mas também posso estar enganado e isso deva ser realizado de outra forma. Não estou encontrando a forma correta para que a pesquisa entenda para buscar somente aquele(s) filtro(s) preenchido(s) e os outros (ignorar) da pesquisa.

Anexei a tela para melhor entendimento. (Cada filtro possui uma coluna específica na tabela BD.)




#490744 - 15/10/2019 18:39:56

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
Olá.

Tenho uma aplicação em VB6 e estou montando uma consulta em tela com filtros em textbox e Combobox para buscar no access e trazer no listview os dados conforme filtros selecionados.
Gostaria de um auxílio na parte da busca dos dados conforme filtros selecionados.

Quando filtros estão VAZIOS vou considerar como filtrar/trazer TODOS os registros

Quando algum filtro for preenchido filtrar somente o(s) preenchido(s) e trazer no listview. (PRECISO DE AJUDA AQUI)

Acredito que isso deva ser tratado na parte do WHERE da consulta, mas também posso estar enganado e isso deva ser realizado de outra forma. Não estou encontrando a forma correta para que a pesquisa entenda para buscar somente aquele(s) filtro(s) preenchido(s) e os outros (ignorar) da pesquisa.

Anexei a tela para melhor entendimento. (Cada filtro possui uma coluna específica na tabela BD.)


Não tenho certeza oque vou falar mas penso que vc esta montando a tela primeiro? se sim acho que vc pode estar começando errado antes de tudo monte uma base de dados faça a estrutura recomendo vc usar um banco de dados como o mysql.

E sim tudo pode ser feito no sql



#490748 - 15/10/2019 20:56:49

ROBLEDO
LAJEADO
Cadast. em:Janeiro/2019


Olá
Já tenho a aplicação rodando em rede e com banco de dados access.
Preciso liberar as consultas aos usuários, com os filtros conforme tela enviada anteriormente, porém estou com dificuldades na montagem da pesquisa.



#490753 - 15/10/2019 22:03:11

MARIOANDRADE
SANTO ANTONIO DE JESUS
Cadast. em:Abril/2012


 Anexos estao visíveis somente para usuários registrados

Já pensou na possibilidade de colocar um botão para cada tipo
de busca? Talvez ficasse mais intuitivo:


Cursos de Excel e VB6:
cursoexcelvba.com.br



#490762 - 16/10/2019 08:35:26

ROBLEDO
LAJEADO
Cadast. em:Janeiro/2019


Citação:
:
Já pensou na possibilidade de colocar um botão para cada tipo
de busca? Talvez ficasse mais intuitivo:


O problema da busca individual é que restringe o usuário a usar somente 1 filtro por vez (o que dificulta para o usuário).
No caso em questão o usuário pode selecionar vários filtros e realizar a busca/pesquisa em uma única vez no banco de dados, para que demonstre os registros relacionados a todos os filtros selecionados.



#490764 - 16/10/2019 09:12:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
A coisa é bem trabalhosa pra fazer em VBA. É algo nessa linha:

dim SQL as String
Sql = "select * from minha_tabela"
if txtCoisa1.Text <> "" Or txtCoisa2.Text <> "" Then 'adicionar aqui todos os campos que quiser verificar se tem algo e incluir na query
    'Tem algum campo preenchido, adicionar where
     SQL = SQL & " WHERE "
end if

if txtCoisa1.Text <> "" then
    SQL = SQL + " CampoNaTabela = '" & txtCoisa1.Text & "' AND "
end if

if txtCoisa2.Text <> "" then
    SQL = SQL + " CampoNaTabela = '" & txtCoisa2.Text & "' AND "
end if

'tirar o último "AND"
SQL = Left(SQL, Len(SQL) - 4)

'aqui já pode executar


_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#490769 - 16/10/2019 10:57:44

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


tem muito tempo que nao uso vb6 mas acho que seria tipo assim depois é so você poluir seu listview você pode usar o click do combo

Private Sub Combo1_Click()
string texto=""
texto =Combo1.Text

If texto = "A PAGAR" Then
Connect
rs.Open "SELECT * FROM seubanco de dados WHERE coluna banco de dados ='" & texto & "'" & "order by ordenado por", CON, adOpenStatic, adLockOptimistic
End If
TRATA:
    


em modulo para conectar algum banco de dados

Public CON As ADODB.Connection
Public rs As ADODB.Recordset


Sub Disconnect()
On Error GoTo TrataErro
rs.Close
con.Close
TrataErro:

If Err.Number = 3265 Then
   MsgBox "Erro de dados"
End If


Set rs = Nothing
Set con = Nothing
End Sub


Sub Connect()
On Error GoTo trato
Set CON = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
    Dim sConn As String
        sConn = "DRIVER={MySQL ODBC 3.51 Driver};"
        sConn = sConn & "SERVER=" & ip & ";"
        sConn = sConn & "USER=usuario;"
        sConn = sConn & "PWD=senha;"
        sConn = sConn & "database=basededados"
        CON.Open sConn    'Abre o Banco de Dados
        rs.CursorLocation = adUseClient
trato:
End Sub










#490790 - 16/10/2019 22:14:22

MARIOANDRADE
SANTO ANTONIO DE JESUS
Cadast. em:Abril/2012


Citação:
:
:
Já pensou na possibilidade de colocar um botão para cada tipo
de busca? Talvez ficasse mais intuitivo:


O problema da busca individual é que restringe o usuário a usar somente 1 filtro por vez (o que dificulta para o usuário).
No caso em questão o usuário pode selecionar vários filtros e realizar a busca/pesquisa em uma única vez no banco de dados, para que demonstre os registros relacionados a todos os filtros selecionados.

Você poderia utilizar checkbox´s ao lado de cada combobox e na opção tooltip você colocaria
"incluir este campo na pesquisa" para indicar o que o usuário deseja
incluir na pesquisa, com combobox´s você deverá deixar uma linha em branco
(se estiver utilizando a opção de somente lista) para que o usuário consiga deixar
o conteúdo vazio.


Cursos de Excel e VB6:
cursoexcelvba.com.br



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário