Discussion:
Access: kryteria w kwerendzie
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Aneta
2008-08-20 08:49:03 UTC
Permalink
Witam

Ponieważ dopiero zaczynam pracę na Accesie bardzo potrzebuję pomocy w
utworzeniu kwerendy. Mam tabelę, w której są pola m.in. pola data planowana
oraz data faktyczna. Jakie kryteria powinnam wprowadzić do kwerendy aby po
zapuszczeniu kwerendy pojawiły się pozycje:
- pomiędzy planowaną datą a faktyczną datą jest różnica czasowa do 3
miesięcy. (data faktyczna wykonania czegoś nie przekroczyła 3 m-cy od daty
planowanej).

pozdrawiam
tedmi
2008-08-20 13:11:01 UTC
Permalink
Nie bardzo rozumiem problemu. Czy kwerenda ma wyświetlić różnicę między
datami? Jeśli tak, to czy w dniach czy miesiącach? Czy kwerenda ma wybrać
rekordy z określoną róznicą dat? Proszę o więcej szczegółów.
--
TedMi
Post by Aneta
Witam
Ponieważ dopiero zaczynam pracę na Accesie bardzo potrzebuję pomocy w
utworzeniu kwerendy. Mam tabelę, w której są pola m.in. pola data planowana
oraz data faktyczna. Jakie kryteria powinnam wprowadzić do kwerendy aby po
- pomiędzy planowaną datą a faktyczną datą jest różnica czasowa do 3
miesięcy. (data faktyczna wykonania czegoś nie przekroczyła 3 m-cy od daty
planowanej).
pozdrawiam
Aneta
2008-08-20 13:29:02 UTC
Permalink
Kwerenda powinna pokazać te rekordy z określoną różnicą dat (w miesiącach).
Ale ta druga opcja czyli wyświetlanie różnicy między datami też by była
pomocna.
pozdrawiam
Post by tedmi
Nie bardzo rozumiem problemu. Czy kwerenda ma wyświetlić różnicę między
datami? Jeśli tak, to czy w dniach czy miesiącach? Czy kwerenda ma wybrać
rekordy z określoną róznicą dat? Proszę o więcej szczegółów.
--
TedMi
Post by Aneta
Witam
Ponieważ dopiero zaczynam pracę na Accesie bardzo potrzebuję pomocy w
utworzeniu kwerendy. Mam tabelę, w której są pola m.in. pola data planowana
oraz data faktyczna. Jakie kryteria powinnam wprowadzić do kwerendy aby po
- pomiędzy planowaną datą a faktyczną datą jest różnica czasowa do 3
miesięcy. (data faktyczna wykonania czegoś nie przekroczyła 3 m-cy od daty
planowanej).
pozdrawiam
tedmi
2008-08-20 14:47:05 UTC
Permalink
W widoku projektu kwerendy, nowej kolumnie wpisz:
Pole: =DateDiff("m", [DataFakt], [DataPlan])
Kryteria: <=3
Pokaż: zaznacz aby róznicę dat wyświetlić

Nazwy w [klamrach] to nazwy pól w Twojej tabeli. Klamry należy wpisać. W
kryteriach umieść odpowiednie porównanie - mój przykład znajdzie rekordy
których róznica dat nie przekracza 3 miesięcy.

Problem: Różnica w miesiącach może być myląca. Np. różnica między 31 lipca a
1 sierpnia to JEDEN MIESIĄC, a róznica między 1 lipca i 31 sierpnia również
jeden miesiąc. Może róznica w dniach będzie bardziej odpowiednia? Jeśli tak,
to zmień pierwszy argument funkcji DateDiff na "d" i zmień porównanie w
kryteriach na odpowiednią ilość dni.

Życzę powodzenia.
--
TedMi
Post by Aneta
Kwerenda powinna pokazać te rekordy z określoną różnicą dat (w miesiącach).
Ale ta druga opcja czyli wyświetlanie różnicy między datami też by była
pomocna.
pozdrawiam
Aneta
2008-08-21 07:00:00 UTC
Permalink
Coś się Access buntuje. Pojawia się okienko, że wprowadzone wyrażenie ma
nieprawidłową składnię pominięto operand lub operator, wprowadzono
nieprawidłowy znak itd. Co może być nie tak? Jeśli chodzi o mnie to napewno
zrobiłam wg Twojego wzoru.

W przypadku braku w tabeli daty [DataPlan] chciałabym móc odjął datę
[DataHarmon]. DataHarmon ma być taką alternatywą gdy nie ma DataPlan. Jak to
można zapisać?
Dzięki.
Post by tedmi
Pole: =DateDiff("m", [DataFakt], [DataPlan])
Kryteria: <=3
Pokaż: zaznacz aby róznicę dat wyświetlić
Nazwy w [klamrach] to nazwy pól w Twojej tabeli. Klamry należy wpisać. W
kryteriach umieść odpowiednie porównanie - mój przykład znajdzie rekordy
których róznica dat nie przekracza 3 miesięcy.
Problem: Różnica w miesiącach może być myląca. Np. różnica między 31 lipca a
1 sierpnia to JEDEN MIESIĄC, a róznica między 1 lipca i 31 sierpnia również
jeden miesiąc. Może róznica w dniach będzie bardziej odpowiednia? Jeśli tak,
to zmień pierwszy argument funkcji DateDiff na "d" i zmień porównanie w
kryteriach na odpowiednią ilość dni.
Życzę powodzenia.
--
TedMi
Post by Aneta
Kwerenda powinna pokazać te rekordy z określoną różnicą dat (w miesiącach).
Ale ta druga opcja czyli wyświetlanie różnicy między datami też by była
pomocna.
pozdrawiam
tedmi
2008-08-21 13:12:01 UTC
Permalink
Aby zastąpić DataPlan przez DataHarmon:
=DateDiff("m", [DataFakt], Nz([DataPlan], [DataHarmon]))
Funkcja Nz ma wartość pierwszego argumentu gdy ten argument nie jest pusty,
inaczej drugiego.

Nt. błędu w kwerendzie: Po wpisaniu Pola i Kryteriów różnicy dat, zmień
widok projektu kwerendy na SQL, kopiuj cały tekst, wklej do odpowiedzi do tej
newsgrupy. Wersja Access?
--
TedMi
Post by Aneta
Coś się Access buntuje. Pojawia się okienko, że wprowadzone wyrażenie ma
nieprawidłową składnię pominięto operand lub operator, wprowadzono
nieprawidłowy znak itd. Co może być nie tak? Jeśli chodzi o mnie to napewno
zrobiłam wg Twojego wzoru.
W przypadku braku w tabeli daty [DataPlan] chciałabym móc odjął datę
[DataHarmon]. DataHarmon ma być taką alternatywą gdy nie ma DataPlan. Jak to
można zapisać?
Dzięki.
Aneta
2008-08-22 08:53:01 UTC
Permalink
To jest Access 2000.
Jeżeli mogę się /jeszcze/ podpytać, bo nadal coś nie idzie. Nie bardzo
rozumiem. Czy mam wstawić ten tekst =DateDiff... w SQL? Jeżeli tak to muszę
to pewnie jakość inaczej zapisać. Pytanie jak?
Post by tedmi
=DateDiff("m", [DataFakt], Nz([DataPlan], [DataHarmon]))
Funkcja Nz ma wartość pierwszego argumentu gdy ten argument nie jest pusty,
inaczej drugiego.
Nt. błędu w kwerendzie: Po wpisaniu Pola i Kryteriów różnicy dat, zmień
widok projektu kwerendy na SQL, kopiuj cały tekst, wklej do odpowiedzi do tej
newsgrupy. Wersja Access?
--
TedMi
Post by Aneta
Coś się Access buntuje. Pojawia się okienko, że wprowadzone wyrażenie ma
nieprawidłową składnię pominięto operand lub operator, wprowadzono
nieprawidłowy znak itd. Co może być nie tak? Jeśli chodzi o mnie to napewno
zrobiłam wg Twojego wzoru.
W przypadku braku w tabeli daty [DataPlan] chciałabym móc odjął datę
[DataHarmon]. DataHarmon ma być taką alternatywą gdy nie ma DataPlan. Jak to
można zapisać?
Dzięki.
tedmi
2008-08-22 12:38:02 UTC
Permalink
Tekst który podałem należy wpisać nie w Widoku SQL, tylko w Widoku projektu
(tabularnym). Możliwe że wer. 2000 wymagała innego zapisu. Spróbuj tak:
X: DateDiff("m", [DataFakt], [DataPlan])
lub to drugie wyrażenie,
X: DateDiff("m", [DataFakt], Nz([DataPlan], [DataHarmon]))

gdzie X jest nazwa jaką chcesz widzieć nad columną zawierającą róznicę dat.
Jeśli nadal wystąpi błąd, to wtedy przełącz widok na SQL i prześlij mi cały
tekst kwerendy.
--
TedMi
Post by Aneta
To jest Access 2000.
Jeżeli mogę się /jeszcze/ podpytać, bo nadal coś nie idzie. Nie bardzo
rozumiem. Czy mam wstawić ten tekst =DateDiff... w SQL? Jeżeli tak to muszę
to pewnie jakość inaczej zapisać. Pytanie jak?
Aneta
2008-08-27 06:08:00 UTC
Permalink
Drobna kosmetyka i działa ale tak Wyr1:
DateDiff("m";[DataFakt];Nz([DataPlan];[DataHarmon]))
pozdr i dzięki za pomoc
Post by tedmi
Tekst który podałem należy wpisać nie w Widoku SQL, tylko w Widoku projektu
X: DateDiff("m", [DataFakt], [DataPlan])
lub to drugie wyrażenie,
X: DateDiff("m", [DataFakt], Nz([DataPlan], [DataHarmon]))
gdzie X jest nazwa jaką chcesz widzieć nad columną zawierającą róznicę dat.
Jeśli nadal wystąpi błąd, to wtedy przełącz widok na SQL i prześlij mi cały
tekst kwerendy.
--
TedMi
Post by Aneta
To jest Access 2000.
Jeżeli mogę się /jeszcze/ podpytać, bo nadal coś nie idzie. Nie bardzo
rozumiem. Czy mam wstawić ten tekst =DateDiff... w SQL? Jeżeli tak to muszę
to pewnie jakość inaczej zapisać. Pytanie jak?
tedmi
2008-08-27 15:22:01 UTC
Permalink
Aha, rozumiem. Mój system jest ustawiony na zapis angielski, w którym
argumenty są dzielone przecinkami.
--
TedMi
Post by Aneta
DateDiff("m";[DataFakt];Nz([DataPlan];[DataHarmon]))
pozdr i dzięki za pomoc
Loading...