[ mika @ 15.06.2004. 09:32 ] @
Pozdrav. Imam sledeci iritirajuci problem: forma prikazuje neke podatke, i u footeru forme imam Combo box koji bi trebalo da filtrira dotične podatke. OK, stavio sam u AfterUpdate property tog combo box-a sledeći kod:

Code:

    Me.Filter = "[Date]='" & "*." & Me.Combo31.Value & ".*'"
    Me.FilterOn = True


... i ne radi kako treba. Malo sam prelistao forum, i neko je napisao da je potrebno da datum bude uokviren u "#" znake, probao sam i to i neće. Greška koja se javlja jeste (nešto najgluplje): "You cancelled the previous operation.", Runtime error, error code 2001.

Verovatno je glupo rešenje ali ja ne znam kako da ga pronađem. Ima li neko ideju?

Pozdrav i hvala!
[ Zidar @ 15.06.2004. 19:57 ] @
Izraz u filter garantovano nece da radi. Greska 2001 se javila zato sto naredba Set Filter On nije mogla da se izvrsi zbok lose zadanog filtera. Probaj da stavis datum izmedju # znakova, ali da je formatiran po Americki "mm/dd/yyyy".

Drugo resnje: u bazi znanja imas primer sa RecordsetClone metodom. Forma se ne filtrira nego se pozicionira na rekord izabran u kombo boxu. To sa filterom nisam siguran da uvek radi. Znam doduse da u jednoj knjizi na srpskom bas tako daju resenje, pomocu filtera, ima to i na netu, ali ne znam gde, neko je to na forumu bio ostavio.
[ mika @ 16.06.2004. 13:53 ] @
Da, znam za taj primer, ali meni je forma prikazana kao continuous, tj. imam prikazanih više slogova, a hoću da ograničim da mi prikaže samo deo od tih slogova. Otprilike kao što radi funkcija AutoFilter u Excell-u.

Probao sam i da uokvirim u "#" znake, zajedno sa formatom dd/mm/yyyy ali na žalost neće da radi. Kada stavim znakove "#" javi mi se syntax error, a kada stavim obične jednostruke navodnike, javi mi se greška 2001. Poludeću!
[ mika @ 16.06.2004. 15:06 ] @
Ok, pošto sam eksperimentisanjem došao do rešenja, hajde da podelim to sa vama.

U helpu lepo piše (što sam i pročitao, ali nisam "video"), da u Filter property ide isti tekst kao iza WHERE klauzule. Dakle, kada sam konačno shvatio to, rešenje se samo nametnulo: koristi se LIKE umesto "=", i kod koji se stavlja u AfterUpdate property od combo boxa je:

Code:

    Me.Filter = "[date] Like '*." & Me.ComboDate.Value & ".*'"
    Me.FilterOn = True


... uz preporuku da je poželjno postaviti Combo sa dve kolone, u prvoj koloni je neki ID a u drugoj natpis. Prva kolona se ne vidi.

Konkretno, ja sam napravio da mi dotični Combo filtrira ispis po mesecima, a kao prvu stavku sam stavio (All), i kao ID sam stavio "*", prosto da mi prikaže sve datume.

Mislim da ne bi bilo loše da ovo neki od moderatora edituje i postavi u Access bazu znanja, čini mi se da se relativno često javlja ovo kao problem.


Pozdrav i hvala!
[ Zidar @ 21.06.2004. 13:44 ] @
Kazi nam sta u stvari zelis da uradimo? Da li zelsi da stavimo u bazu znanja da se moze koristiti i Filetr za pozicioniranje baze na zeljeni slog ili nesto drugo?

Usput, ni jednom nam nisi rekao u tvom primeru da je tvoje polje Datum tekstualnog tipa. Ja se nekako uvek upecam i kad ljudi nazovu nesto Datum, uvek verujem da je to polje tipa DateTime. Ovako si nas samo zbunio i itrosili smo vreme i nismo ti dali odgovor koji ti je trebao.
[ mika @ 24.06.2004. 12:47 ] @
Xex, pa štos je u tome da je polje Datum baš Date/Time tipa, a ne txt.

Ovaj kod koji sam ja napisao čini da automatizuje filtriranje. Da pojasnim, ako imamo sledeću tabelu, koju prikazuje forma kao "continuous":

Code:

+----+----------+---------+
| Id |  Datum   | Podatak1|
+----+----------+---------+
|   1|01.01.2004|   12222 |
|   2|10.03.2004|  blabla |
|   3|08.03.2004| test    |
|   4|08.04.2004|  122333 |
.
.
.



... i u Combo box postavimo kao podatke ("Januar", "Februar", . . . , "Decembar"), zatim na AfterUpdate property ComboBox-a postavimo gornji kod, zatim testiramo postavljanjem Combo-a na "Mart", dobićemo u formi rezultat:

Code:

+----+----------+---------+
| Id |  Datum   | Podatak1|
+----+----------+---------+
|   2|10.03.2004|  blabla |
|   3|08.03.2004| test    |
+----+----------+---------+


Dakle, prikazao nam je samo podatke iz marta meseca, razumeš? Naravno ovo je primer za Date/Time polje, a može da se generalizuje za bilo koji tip polja. Dakle, ekvivalent Excel-ove komande AutoFilter. Potrebno je još samo podesiti Combo da ima dve kolone, prva je broj meseca (i ona je značajna, dakle od 1 do 12) a druga je ona što se "vidi", dakle Januar, Februar...

Malo sam konfuzno objasnio, nadam se da ste razumeli!