denial ha scritto:
Scusa, non ho capito. io programmo così, per passione, quando posso (e in questo periodo posso molto ).
Allora siamo in 2 che programmiamo per passione... e purtroppo non sei l'unico che in questo periodo ha molto tempo, pare siano in tanti a buttarsi in cose così... io "purtroppo o per foruna", lo dico perché si può attribuire un senso soggettivo a questo, lavoro senza pausa forse più di prima... ma ti assicuro che ci si può anche dedicare alla pizza però...
denial ha scritto:
non so cosa intendi per "problema che non esiste" nè, tantomeno, per "codice ben fatto" o "tecnico".
avevo anche provato l'opzione commandbutton: l'idea era che cliccandoci sarebbe partitol'sql che avrebbe fatto da filtro MA...il problema si ripone,ovvero nella condizione WHERE dovrei legare le 4 clausole tra loro con l'operatore "AND"..ma se la casella è vuota?
non capisco come ragionare, sono 3 giorni che faccio esperimenti ma nel loop ci sono finito io!
Hai abbozzato un codice inutile, si usa la.collecrion control quando di deve fare un cuclo in vista scala senza avere specificità di controllo...
Nel tuo caso hai 4 o 5 controlli combobox ed ognuna va gestita singolarmente usare un ciclo come hai fatto ti costringerebbe a mettere un passo condizjonale per NOME al fine di comporre la stringa...
Se ctl.Name="nomecampo1" then...
Se ctl.name="nomecampo2".... ecco
Questo rende il ciclo assolutamente inutile non credi.
I filtri o where condition si compongono in.modo molto lineare dal momento che non saranno mai 1500 parliamo al massimo di una decina in una standard visione di progetto, quindi si può semplificare e rendere molto chiaro e leggibile il codice cosi:
Dim strWH As String
If Len(Me!Combo1.Value & vbNullString) > 0 Then strWH = strWH & "campo1=" & Me!Combo1.Value & " and "
If Len(Me!Combo.Value & vbNullString) > 0 Then strWH = strWH & rcampo2=" & Me!Combo2.value & " and "
' qui metti le eventuali altre 77 condizioni.....
If Len(strWH) > 0 Then strWH = Mid$(strWH, 1, Len(strWH) - 5)
Me.Filter = strWH
Me.FilterOn = True
Fai attenzione alla sintassi dei campi oggetto di filtro... nel mio esempio sono Numerici, se fossero stringhe servirebbero gli apicetti se fosse una data quello che serve per le date...