[ Untouchabble @ 15.01.2011. 01:01 ] @
| Pretpostavljam da je ovo dosta cesto pitanje:
Imam vise tabela koje istovremeno treba da odgovore na upit (dakle, relativno komplikovan INNER JOIN, tj ja sam to tako izveo).
Da li je moguce uraditi sledecu stvar: isfiltrirati jednu tabelu SQL upitom, pa onda iskoristiti output tog upita kao input za sledeci upit itd. Pretpostavljam da je moguce, ali s obzirom da se ovim vise ne bavim (a i ranije je bilo amaterski), znacilo bi mi ako biste mi bukvalno pokazali na primeru. Da budem iskren, ne znam ni sintaksu za dinamicki query, a stvarno nemam vremena da citam silne tutorijale (dosta mi je hitno).
Pozdrav i hvala! |
[ banem @ 15.01.2011. 01:35 ] @
Najjednostavniji način je da napraviš jedan upit, pa njega iskoristiš u drugom upitu.
Ili, napraviš višestruki upit u jednom, mada to zna da radi sporo ako nije SQL baza u pozadini.
[ Untouchabble @ 15.01.2011. 09:17 ] @
Bas to i hocu, ali kako? Jel ovo tacna sintaksa za dinamicki query:
Code: Dim qdfProba1 As New QueryDef
qdfProba1.Name = "Proba1Query"
qdfProba1.SQL = "SELECT * FROM tblDnevnikPromena WHERE IDObjekat=" & lngIDObjekat & " AND DateValue(Datum)<#" & strDatumOd & _
"# AND DateValue(Datum)<#" & strDatumDo & "#"
qdfProba1.Execute
[ banem @ 15.01.2011. 12:25 ] @
Da, tako nešto radi, ali traži DAO 3.6:
Dim qryDef As QueryDef, strSQL As String
Set qryDef= Object.CreateQueryDef("qryNaziv", strSQL)
Ovde http://www.ozgrid.com/forum/showthread.php?t=45889&page=1 ima još jedan način.
[ Untouchabble @ 15.01.2011. 14:12 ] @
Odlican link, to mi treba!
Kako da obrisem query po zatvaranju aplikacije, posto treba da je dinamicki?
[ banem @ 15.01.2011. 14:49 ] @
DoCmd.DeleteObject acQuery, "qryNaziv"
Dopisano: Po zatvaranju? Mislite tokom zatvaranja? U tom slučaju stavite da se učita jedna forma po pokretanju aplikacije, sakrivena. Njoj u OnUnload Event stavite gornju komandu.
[ Untouchabble @ 15.01.2011. 14:52 ] @
Da, da, pre zatvaranja, naravno, lapsus...
Hvala puno!
[ Untouchabble @ 16.01.2011. 21:58 ] @
Nov problem:
pokusavam da objedinim dva SELECT upita UNION ALL komandom - izvrsava se neverovatno sporo!
Ne znam u cemu je problem, jer se pojedinacni upiti izvrsavaju gotovo trenutno. Kod je krajnje elementaran:
Code: SELECT * FROM qryUnetoCisto ORDER BY Uneto DESC
UNION ALL SELECT * FROM qryUnetoPrenos
ORDER BY Uneto DESC;
[ banem @ 16.01.2011. 22:40 ] @
A ako izbaciš ORDER BY?
[ Untouchabble @ 16.01.2011. 22:41 ] @
Nema razlike :[
[ Getsbi @ 17.01.2011. 06:21 ] @
1. Za početak izbaci iz prvog reda: ORDER BY Uneto DESC. To je nepotrebno i usporava upit.
2. Umesto zvezdice, pokušaj da upišeš samo polja koja ti trebaju u rezultatu. Biće brže.
3. Pitanje je takođe i da li su dobro napisani ulazni quer-y (qryUnetoCisto i qryUnetoPrenos)
[ Untouchabble @ 17.01.2011. 09:24 ] @
1. Izbacio sam ORDER BY iz oba reda, nema razlike.
2. Umesto * naveo sam tri polja koja mi trebaju, medjutim kako upiti i imaju samo ta 3 polja, opet nista nisam postigao.
3. qryUnetoCisto i qryUnetoPrenos se izvrsavaju trenutno kada ih pokrenem pojedinacno.
Postoji li neka alternativa ovome, nesto kao prost APPEND upit (jer se zapisi u podupitima ne ponavljaju)? Zatim bih, kodom ili novim upitom odradio ORDER BY.
[ Getsbi @ 17.01.2011. 09:52 ] @
Probaj da napraviš privremenu tabelu i Append query nad njom.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|