Allego tutto il codice della form
ho utilizzato una casella di riepilogo
e quando imposto i filtri la chiave di volta e' questa:
Me.crpAnagrafica.RowSource = myCondTot
Me.crpAnagrafica.Requery
crpAnagrafica ovviamente e' la casella di riepilogo
myCondTot e' la strin SQL per i filtri
questa e' la videata della maschera in questione con tutte le ricerche funzionanti
Option Compare Database
Private Sub crpAnagrafica_AfterUpdate()
Me.Requery
End Sub
Private Sub crpAnagrafica_DblClick(Cancel As Integer)
DoCmd.OpenForm "ModificaAnagrafica"
End Sub
Private Sub Form_Current()
End Sub
Private Sub pulApplica_Click()
Dim myCondTot, myCondTesta, myCondCorpo, myCondCoda
Dim x As Integer
Dim Arry(24, 1) As Variant
Dim Arrx(8, 2) As Variant
myCondTesta = "SELECT * FROM qryAnagrafiche"
myCondCorpo = ""
myCondCoda = " ORDER BY NOME;"
Arry(0, 0) = Me.txtNomeParziale.Value
Arry(0, 1) = " NOME LIKE '*" & Arry(0, 0) & "*'"
Arry(1, 0) = Me.cboFase.Value
Arry(1, 1) = " FASE_CORSO = '" & Arry(1, 0) & "'"
Arry(2, 0) = Me.cboCorso.Value
Arry(2, 1) = " CORSO = '" & Arry(2, 0) & "'"
Arry(3, 0) = Me.cboExPatente.Value
Arry(3, 1) = " EX_PATENTE = '" & Arry(3, 0) & "'"
Arry(4, 0) = Me.txtCitta.Value
Arry(4, 1) = " CITTA = '" & Arry(4, 0) & "'"
Arry(5, 0) = Me.txtTelefono.Value
Arry(5, 1) = " TELEFONO LIKE '*" & Arry(5, 0) & "*'"
Arry(6, 0) = Me.txtEmail.Value
Arry(6, 1) = " EMAIL LIKE '*" & Arry(6, 0) & "*'"
Arry(7, 0) = Me.txtSocial.Value
Arry(7, 1) = " SOCIAL LIKE '*" & Arry(7, 0) & "*'"
Arry(8, 0) = Me.cboSex.Value
Arry(8, 1) = " SEX= '" & Arry(8, 0) & "'"
Arry(9, 0) = Me.txtVTeoriaDal.Value
Arry(9, 1) = " T_VOTO >= " & Arry(9, 0)
Arry(10, 0) = Me.txtVTeoriaAl.Value
Arry(10, 1) = " T_VOTO <= " & Arry(10, 0)
Arry(11, 0) = Me.txtVGuidaDal.Value
Arry(11, 1) = " G_VOTO >= " & Arry(11, 0)
Arry(12, 0) = Me.txtVGuidaAl.Value
Arry(12, 1) = " G_VOTO <= " & Arry(12, 0)
Arry(13, 0) = Me.txtIscrizioneDal.Value
Arry(13, 1) = " DATA_ISCRIZIONE >= " & Arry(13, 0)
Arry(14, 0) = Me.txtIscrizioneAl.Value
Arry(14, 1) = " DATA_ISCRIZIONE <= " & Arry(14, 0)
Arry(15, 0) = Me.txtNatoDal.Value
Arry(15, 1) = " NATO_IL >= " & Arry(15, 0)
Arry(16, 0) = Me.txtNatoAl.Value
Arry(16, 1) = " NATO_IL <= " & Arry(16, 0)
Arry(17, 0) = Me.txtTeoriaStartDal.Value
Arry(17, 1) = " TEORIA_START >= " & Arry(17, 0)
Arry(18, 0) = Me.txtTeoriaStartAl.Value
Arry(18, 1) = " TEORIA_START <= " & Arry(18, 0)
Arry(19, 0) = Me.txtTeoriaEndDal.Value
Arry(19, 1) = " TEORIA_END >= " & Arry(19, 0)
Arry(20, 0) = Me.txtTeoriaEndAl.Value
Arry(20, 1) = " TEORIA_END <= " & Arry(20, 0)
Arry(21, 0) = Me.txtFRosaStartDal.Value
Arry(21, 1) = " F_ROSA_START >= " & Arry(21, 0)
Arry(22, 0) = Me.txtFRosaStartAL.Value
Arry(22, 1) = " F_ROSA_START <= " & Arry(22, 0)
Arry(23, 0) = Me.txtFRosaEndDal.Value
Arry(23, 1) = " F_ROSA_END >= " & Arry(23, 0)
Arry(24, 0) = Me.txtFRosaEndAl.Value
Arry(24, 1) = " F_ROSA_END <= " & Arry(24, 0)
For x = 0 To 24
If Len(Arry(x, 0)) > 0 Then
If Len(myCondCorpo) = 0 Then
myCondCorpo = Arry(x, 1)
Else
myCondCorpo = myCondCorpo & " AND " & Arry(x, 1)
End If
End If
Next x
Arrx(0, 0) = Me.flgAttivo.Value
Arrx(0, 1) = " ATTIVO = True"
Arrx(0, 2) = " ATTIVO = False"
Arrx(1, 0) = Me.flgExtraUe.Value
Arrx(1, 1) = " EXTRA_UE = True"
Arrx(1, 2) = " EXTRA_UE = False"
Arrx(2, 0) = Me.flgAula.Value
Arrx(2, 1) = " LEZIONI_AULA = True"
Arrx(2, 2) = " LEZIONI_AULA = False"
Arrx(3, 0) = Me.flgApp.Value
Arrx(3, 1) = " APP_REG = True"
Arrx(3, 2) = " APP_REG = False"
Arrx(4, 0) = Me.flgScuole.Value
Arrx(4, 1) = " ALTRE_SCUOLE = True"
Arrx(4, 2) = " ALTRE_SCUOLE = False"
Arrx(5, 0) = Me.flgFinanziato.Value
Arrx(5, 1) = " FINANZIAMENTO = True"
Arrx(5, 2) = " FINANZIAMENTO = False"
Arrx(6, 0) = Me.flgSStatino.Value
Arrx(6, 1) = " STATINO IS NOT NULL"
Arrx(6, 2) = " STATINO IS NULL"
Arrx(7, 0) = Me.flgPromo.Value
Arrx(7, 1) = " PROMOZIONI IS NOT NULL"
Arrx(7, 2) = " PROMOZIONI IS NULL"
Arrx(8, 0) = Me.flgAttenzione.Value
Arrx(8, 1) = " NOTE_VELOCI IS NOT NULL"
Arrx(8, 2) = " NOTE_VELOCI IS NULL"
For x = 0 To 8
If Len(Arrx(x, 0)) > 0 Then
If Arrx(x, 0) = "Si" Then
If Len(myCondCorpo) = 0 Then
myCondCorpo = Arrx(x, 1)
Else
myCondCorpo = myCondCorpo & " AND " & Arrx(x, 1)
End If
Else
If Len(myCondCorpo) = 0 Then
myCondCorpo = Arrx(x, 2)
Else
myCondCorpo = myCondCorpo & " AND " & Arrx(x, 2)
End If
End If
End If
Next x
'ora i controlli sono tutti fatti si puo' scrivere la linea sql
If Len(myCondCorpo) > 0 Then
myCondTot = myCondTesta & " WHERE" & myCondCorpo & myCondCoda
Else
myCondTot = myCondTesta & myCondCoda
End If
'e applicarla
Me.crpAnagrafica.RowSource = myCondTot
Me.crpAnagrafica.Requery
End Sub
Private Sub pulApplica_Exit(Cancel As Integer)
Me.Requery
End Sub
Private Sub pulEdit_Click()
DoCmd.OpenForm "ModificaAnagrafica"
End Sub
Private Sub pulReset_Click()
Dim myCondTot
myCondTot = "SELECT * FROM qryAnagrafiche ORDER BY NOME;"
Me.txtNomeParziale = ""
Me.cboFase = ""
Me.cboCorso = ""
Me.cboExPatente = ""
Me.txtCitta = ""
Me.txtTelefono = ""
Me.txtEmail = ""
Me.txtSocial = ""
Me.cboSex = ""
Me.flgAttivo = ""
Me.flgExtraUe = ""
Me.flgAula = ""
Me.flgApp = ""
Me.flgScuole = ""
Me.flgFinanziato = ""
Me.flgSStatino = ""
Me.flgPromo = ""
Me.flgAttenzione = ""
Me.txtVTeoriaDal = ""
Me.txtVTeoriaAl = ""
Me.txtVGuidaDal = ""
Me.txtVGuidaAl = ""
Me.crpAnagrafica.RowSource = myCondTot
Me.crpAnagrafica.Requery
End Sub