COMO EU FACO ESSE IF
tenho 4 campos para ser usados numa WHERE...
tenho 4 checkbox que cada um representa um campo
exemplo:
ai tenho a SQL assim:
Como eu faço caso eu marque 1, 2, 3 ou todos os checkbox?
como eu faria para consultar mais de um campo no WHERE dependendo do check que estiver marcado?
tenho 4 checkbox que cada um representa um campo
exemplo:
dim var_tal as string
if check1.value = checked then
var_tal = [Ô]FABRICANTE= txtCampo1.text[Ô]
elseif check2.value = checked then
var_tal = [Ô]REFERENCIA= txtCampo2.text[Ô]
elseif check3.value = checked then
var_tal = [Ô]CATEGORIA = txtCampo3.text[Ô]
elseif check4.value = checked then
var_tal = [Ô]TAMANHO = txtCampo4.text[Ô]
End if
ai tenho a SQL assim:
SQL = [Ô]Select * from PRODUTOS where [Ô] &var_tal & [Ô][Ô]
Como eu faço caso eu marque 1, 2, 3 ou todos os checkbox?
como eu faria para consultar mais de um campo no WHERE dependendo do check que estiver marcado?
dim var_tal as string
var_tal = 0
SQL = [Ô]Select * from PRODUTOS [Ô]
if check1.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] FABRICANTE= [Ô] & txtCampo1.text
End if
if check2.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] REFERENCIA= [Ô] & txtCampo2.text
End if
if check3.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] CATEGORIA = [Ô] & txtCampo3.text
End if
if check4.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] TAMANHO = [Ô] & txtCampo4.text
End if
var_tal = 0
SQL = [Ô]Select * from PRODUTOS [Ô]
if check1.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] FABRICANTE= [Ô] & txtCampo1.text
End if
if check2.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] REFERENCIA= [Ô] & txtCampo2.text
End if
if check3.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] CATEGORIA = [Ô] & txtCampo3.text
End if
if check4.value = checked then
If var_tal = 0 Then
SQL = SQL & [Ô] Where [Ô]
var_tal = 1
Else
SQL = SQL & [Ô] And [Ô]
Endif
SQL = SQL & [Ô] TAMANHO = [Ô] & txtCampo4.text
End if
Boa noite
Recomendo que faça uma string para pesquisar e uma opção de if conforme abaixo
No caso quando o mesmo estiver [Ô]clicado como verdadeiro[Ô] ele complementa a instrução do Select com os valores o IF para realizar a pesquisa
Veja exemplo, que poderá ser adaptado para o seu caso.
=============================================================================================================
dim sSql as string = [Ô]select * from tb_teste where (ativo= [ô]True[ô])[Ô]
If check1.Checked = True Then sSql = sSql & [Ô] and (FABRICANTE= [Ô] & txtCampo1.text & [Ô])[Ô]
If check2.Checked = True Then sSql = sSql & [Ô] and (REFERENCIA= [Ô] & txtCampo2.text & [Ô])[Ô]
If check3.Checked = True Then sSql = sSql & [Ô] and (CATEGORIA = [Ô] & txtCampo4.text & [Ô])[Ô]
If check4.Checked = True Then sSql = sSql & [Ô] and (TAMANHO= [Ô] & txtCampo4.text & [Ô])[Ô]
[ô]Veja o resultado
msgbox (sSql)
=============================================================================================================
Espero ter ajudado
Recomendo que faça uma string para pesquisar e uma opção de if conforme abaixo
No caso quando o mesmo estiver [Ô]clicado como verdadeiro[Ô] ele complementa a instrução do Select com os valores o IF para realizar a pesquisa
Veja exemplo, que poderá ser adaptado para o seu caso.
=============================================================================================================
dim sSql as string = [Ô]select * from tb_teste where (ativo= [ô]True[ô])[Ô]
If check1.Checked = True Then sSql = sSql & [Ô] and (FABRICANTE= [Ô] & txtCampo1.text & [Ô])[Ô]
If check2.Checked = True Then sSql = sSql & [Ô] and (REFERENCIA= [Ô] & txtCampo2.text & [Ô])[Ô]
If check3.Checked = True Then sSql = sSql & [Ô] and (CATEGORIA = [Ô] & txtCampo4.text & [Ô])[Ô]
If check4.Checked = True Then sSql = sSql & [Ô] and (TAMANHO= [Ô] & txtCampo4.text & [Ô])[Ô]
[ô]Veja o resultado
msgbox (sSql)
=============================================================================================================
Espero ter ajudado
vc terá de fazer alguma verificações para que a query fique certa
Private Sub Command1_Click()
Dim var_tal As String
If Check1.Value = 1 Then
var_tal = var_tal & [Ô]FABRICANTE=[ô][Ô] & txtCampo1.Text & [Ô][ô] and [Ô]
End If
If Check2.Value = 1 Then
var_tal = var_tal & [Ô]REFERENCIA=[ô][Ô] & txtCampo2.Text & [Ô][ô] and [Ô]
End If
If Check3.Value = 1 Then
var_tal = var_tal & [Ô]CATEGORIA=[ô][Ô] & txtCampo3.Text & [Ô][ô] and [Ô]
End If
If Check4.Value = 1 Then
var_tal = var_tal & [Ô]TAMANHO =[ô][Ô] & txtCampo4.Text & [Ô][ô] and [Ô]
End If
var_tal = Left(var_tal, Len(var_tal) - 5)
MsgBox [Ô]Select * from PRODUTOS where [Ô] & var_tal
End Sub
Citação::
vc terá de fazer alguma verificações para que a query fique certaPrivate Sub Command1_Click()
Dim var_tal As String
If Check1.Value = 1 Then
var_tal = var_tal & [Ô]FABRICANTE=[ô][Ô] & txtCampo1.Text & [Ô][ô] and [Ô]
End If
If Check2.Value = 1 Then
var_tal = var_tal & [Ô]REFERENCIA=[ô][Ô] & txtCampo2.Text & [Ô][ô] and [Ô]
End If
If Check3.Value = 1 Then
var_tal = var_tal & [Ô]CATEGORIA=[ô][Ô] & txtCampo3.Text & [Ô][ô] and [Ô]
End If
If Check4.Value = 1 Then
var_tal = var_tal & [Ô]TAMANHO =[ô][Ô] & txtCampo4.Text & [Ô][ô] and [Ô]
End If
var_tal = Left(var_tal, Len(var_tal) - 5)
MsgBox [Ô]Select * from PRODUTOS where [Ô] & var_tal
End Sub
MARCELO, se você me permite, farei uma pequena alteração que resolve o problema da mesma forma que sua indicação:
Private Sub Command1_Click()
Dim var_tal As String
if check1.value+check2.value+check3.value+check4.value = 0 then
msgbox([Ô]Escolha ao menos uma opção!!![Ô])
else
If Check1.Value = 1 Then
var_tal = var_tal & [Ô]FABRICANTE=[ô][Ô] & txtCampo1.Text & [Ô][ô] and [Ô]
End If
If Check2.Value = 1 Then
var_tal = var_tal & [Ô]REFERENCIA=[ô][Ô] & txtCampo2.Text & [Ô][ô] and [Ô]
End If
If Check3.Value = 1 Then
var_tal = var_tal & [Ô]CATEGORIA=[ô][Ô] & txtCampo3.Text & [Ô][ô] and [Ô]
End If
If Check4.Value = 1 Then
var_tal = var_tal & [Ô]TAMANHO =[ô][Ô] & txtCampo4.Text & [Ô][ô][Ô]
else
var_tal = Left(var_tal, Len(var_tal) - 5)
End If
MsgBox [Ô]Select * from PRODUTOS where [Ô] & var_tal
endif
End Sub
Caro colega MENUDO, obrigado por reparar nisto, é facil fazer esta verificação, então vamos lá
a seleção dos checks formam uma string, então basta verificar se esta string foi montada ou não veja
viu como é simples
a seleção dos checks formam uma string, então basta verificar se esta string foi montada ou não veja
Private Sub Command1_Click()
Dim var_tal As String
If Check1.Value = 1 Then
var_tal = var_tal & [Ô]FABRICANTE=[ô][Ô] & txtCampo1.Text & [Ô][ô] and [Ô]
End If
If Check2.Value = 1 Then
var_tal = var_tal & [Ô]REFERENCIA=[ô][Ô] & txtCampo2.Text & [Ô][ô] and [Ô]
End If
If Check3.Value = 1 Then
var_tal = var_tal & [Ô]CATEGORIA=[ô][Ô] & txtCampo3.Text & [Ô][ô] and [Ô]
End If
If Check4.Value = 1 Then
var_tal = var_tal & [Ô]TAMANHO =[ô][Ô] & txtCampo4.Text & [Ô][ô] and [Ô]
End If
var_tal = Left(var_tal, Len(var_tal) - 5)
If var_tal = [Ô][Ô] then
msgbox [Ô]Você não selecionou nenhum item, selecione ao menos um item[Ô], vbCritical,[Ô]Nenhum item Selecionado![Ô])
Exit Sub
End If
MsgBox [Ô]Select * from PRODUTOS where [Ô] & var_tal
End Sub
viu como é simples
Tópico encerrado , respostas não são mais permitidas