COMO EU FACO ESSE IF

WEBIER 20/04/2011 19:06:48
#372063
tenho 4 campos para ser usados numa WHERE...

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?

FEDERHEN 20/04/2011 19:27:12
#372064
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


MARCELOSN 20/04/2011 19:34:54
#372068
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
MARCELO.TREZE 20/04/2011 20:42:05
#372079
Resposta escolhida
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
EDERMIR 22/04/2011 08:03:27
#372170
Citação:

:
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



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

MARCELO.TREZE 22/04/2011 11:13:30
#372181
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

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