Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija

[es] :: Access :: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija

[ Pregleda: 2694 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija07.04.2005. u 15:39 - pre 231 meseci
Pozdrav!

Imam dva pitanja:

1. Na headeru forme su mi potrebni trenutni podaci, koji se vuku iz nekoliko query-ja. Forma je bound na neki sasvim drugi query, a ja sam na header pokušao da dodam polje sa RecordSource:

Code:
=qryTest!Field1


...ovo sam dobio kada kliknem na Expression Builder, i ubacim normalno polje.

Međutim, kada pokrenem formu, prikaže mi #Name? umesto sadržaja polja. Query provereno radi, ali ja ne znam kako ovo da rešim.

Alternativno rešenje jeste da za svako ovakvo polje koje mi je potrebno napravim subform koji je bound za odgovarajući query, ali mislim da će ovaj način dosta opteretiti formu koja inače treba da sadrži desetak takvih polja. Ima li neko neki predlog?


2. U tabeli postoje dnevni unosi koji se, naravno, menjaju sa datumom (datumsko polje postoji). Kada mi je potrebno da pronađem današnje unose u query-ju, kucam sledeće:

Code:
... WHERE DatePart("m",tbl1.Datum)=DatePart("m",Now()) 
         AND DatePart("yyyy",tbl1.Datum)=DatePart("yyyy",Now()) 
         AND DatePart("d",tbl1.Datum)=datepart("d",Now())


Ovo mi je prilično rogobatno (ali radi), međutim s obzirom da se ovakav query relativno često izvršava, može li se gornji izraz dodatno optimizovati (da nema "AND"-ova, već da je sve u jednom izrazu?

Hvala!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija07.04.2005. u 18:10 - pre 231 meseci
Ako kontrola na formi (pa makar bila na hederu) treba da pokaze podatke iz forminog record source, radis kao i uvek - navuces kontrolu iz liste polja tvog record source. Ako je kontrola unbound, i treba da cita podatke iz nekih drugih kverija, onda korsiti DLookup i slicno.

Za datume, problemi nastaju kad se koristi Now() jer se tada u igru uvode minuti i sekunde, pa posle treba da se to sve raspetlja. Ako mozes, umesto Now() koristi Date() za unos u tabelu i onda neces imati problem. Da li ti je stvarno bazno da u stoti deo sekunde znas kad je unesen rekord, ako ih vec brojis po danima a ne po satima? Ako bas moras, koristi Format(TvojDatum,"yyyymmdd"). Vidi diskusiju sa Gagom od pre neki dan na tu temu.
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 11:22 - pre 231 meseci
Što se tiče datuma, u unosima mi je bitno da znam tačan trenutak unosa, s obzirom da je to jedan od kritičnih podataka, pa se u default property Datum polja javlja taj now().

Rešio sam problem, u uslovu za dnevni izveštaj javlja se sledeći izraz:

Code:
...WHERE format(tbl1.Datum,"mm.dd.yyyy") = format(now(), "mm.dd.yyyy")


... a za mesečni:

Code:
... WHERE format(tbl1.Datum,"mm.yyyy") = format(now(), "mm.yyyy")


Ovo mi je, ako ne optimizovanije, onda bar preglednije od prethodnih izraza.


Što se tiče unbound polja, to sam rešio preko jedne subforme i dlookup-ova. Lošije je rešenje da ta polja budu na osnovnoj formi (a ne na subformi), jer se u tom slučaju, prilikom svakog scrolla vrši preračun dlookup-ova, a to onda mnogo usporava rad.

Pozdrav i hvala puno!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 13:24 - pre 231 meseci
Yep, to je to :-)

Sto se tice Dlookup, to je sporo u svakom slucaju. Probaj da te vrednosti stavis nekako u data source kveri, pa da se to tamo izracunava. naravno, ne Dlookup u kveri, nego ako moze neki JOIN.

Drugo, ako su te vrednosti nepromenljive tokom rada, mozes na OnCurrent da ih izracunas i dodelis kontroli i onda one sede kao konstante dok se ne pomeris na sledeci rekord.

Mosda je ovo sve losije od resenja koje si nasao, ali eto ti ideja za neku drugu priliku.

:-)
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 13:37 - pre 231 meseci
Razmišljao sam o tome, međutim vrednosti su itekako promenljive u toku rada. Sa svakim unosom, vrednost raste :) i predstavlja dnevnu i mesečnu sumu, tako da nikako ne može da se stavi u query za formu.

Uhh, mnogo mi spor ovaj FE, moraću da to još malo optimizujem. Kad god kliknem na save form peščanik traje i traje. Obratno, kada i BE i FE prebacim na lokalnu mašinu, radi testiranja, sve poleti... :(

Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 18:00 - pre 231 meseci
Citat:

Uhh, mnogo mi spor ovaj FE, moraću da to još malo optimizujem. Kad god kliknem na save form peščanik traje i traje. Obratno, kada i BE i FE prebacim na lokalnu mašinu, radi testiranja, sve poleti... :(


UVEK ali bas UVEK radirazvoj FE na lokalnoj masini. BE mozes da drzis na severu i tokom razvoja. Ako ti je ceo sistem (Local FE + server BE) spor a brz je kada je sve u lokalu, onda je tvoja mreza jako spora, a to je zadatak za sitem inzenjera da resi. Mozda koristite hubs umesto routers, mozda kablovi nemaju bandwith, mozda je server star i spor. Proveri da li imas sve potrebne indekse. PK nije dovoljno. Sta god je u nekoj tabeli FK, treba da je indeksirano. Svi kveriji koji imaju JOIN - polja u tabelama po kojima se radi JOIN treba da su indeksirana. Gde koristis Dlookup i slicno, polje po kome se daje kriterijum treba da se indeksira. i tako dalje..

:-)
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 18:44 - pre 231 meseci
Naravno da FE stalno radim i razvijam u lokalu, ali je on zakačen na BE koji je aktivan, tj. 95% sam završio s dizajnom baze, i klijenti su već zakačeni na nju, i rade unos, paralelno sa mojim razvojem FE. Ma da ti ne pričam, još sam uradio i dve replikacije BE, na laptop i na jednu udaljenu lokaciju, pa čekam ljude da se vrate i odradim spajanje. I sve to za vreme developmenta FE, strašno.

Inače, ovo za PK ću da te poslušam, jer nisam (iskreno) vodio računa o tome, uradio sam indekse samo na polja po kojima se pretražuje, ne i na PK i FK.

Još neki savet za ubrzanje? Svaka tvoja rečenica mi je zlata vredna, bez preterivanja.


Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 19:32 - pre 231 meseci
Ej, stoj, ako imas PK ne treba ti poseban indeks po tom polju. PK jetse UNIQUE indeks. Moze se desiti da imas negde Autonumber polje, a nisi ga proglaso za index ili PK. Ako je tako, indeksiraj ga ili proglasi za PK.

Ono za indeksiranje po FK i JOIN poljima vazi i dalje. Ao e klijenti ne zale na brzinu, onda je OK. Normalno je da kad radis na zivoj bazi sve ide sporije.

 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.ppp-bg.sezampro.yu.



+15 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija08.04.2005. u 21:23 - pre 231 meseci
Evo i dva blesava saveta. Ako je server NTFS, onda možda mnogo više pomogne nego ako je na FAT32.

1) Stavi BE što "pliće" na putanji. Ako je moguće u prvi nivo direktorijuma (pliće ne treba, jer je glupo držati BE u rootu diska).

2) Skrati naziv BE na 8+3 - ne koristi naziv BE duži od 8 karaktera + 3 za ekstenziju, kao u vreme DOS-a

Na bazi u firmi sam ubrzao rad poprilično, čak sam izmerio i tačan podatak koga se sad ne sećam. Pokušaj da pokreneš jedan upit i izmeriš vreme, zatim učiniš kao pod 1) i 2) i ponovo pokreneš upit i izmeriš vreme. Javi rezultate.
Pozdrav,
Branislav
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija09.04.2005. u 09:59 - pre 231 meseci
@Banem: Ovaj tip sam video na mvps.org, uključujući još neke. Probaću da skratim i ime foldera i ime fajla, pa ćemo videti. Hvala!

@Zidar: Pa naravno, postulat br. 1 za dizajn relacionih baza podatak, jeste da svaki slog ima UNIQUE polje za identifikaciju pojedinog sloga - to je PK. Time sam se vodio od svoje prve dizajnirane baze. Dakle, ne postoji autonumber polje koje nije indeksirano, to se prosto kosi sa mojim shvatanjem baze.

Inače, sada ću da probam za Join i FK polja da ubacim indekse, pa da isprobam performanse.

Hvala ljudi, prosvetliste me!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

[es] :: Access :: Dva Pitanja: RecordSource-na jednom polju, i NOW() funkcija

[ Pregleda: 2694 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.