Discussion:
Pierwsze kroki i pierwsze pytanie
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
f***@wp.pl
2009-05-06 13:19:29 UTC
Witam
Raczkuje dopiero i proszę o wyrozumiałość

potrzebuje zrobić w accessie coś takiego:
posiadam dwa pliki exela
w jednym znich znajduje się lista kontrachentów pewnego handlowca z nr
tych kontrachentów przypisanych z bazy firmy,
a w drugim lista dokumentów WZ pewnej grupy kontrachentów z nr. WZ-tki
które zostały wypisane przez tego handlowca.

Chodzi mi o to by oddzielć na bazie kontrachentów na których dany
handlowiec wypisał WZ-tki

interesuje mnie sprawdzenie ile dany handlowiec zrobił zamówień samemu
a ile zostało mu dopisanych przez dział handlowy

Pozdrawiam
Krzysztof
Krzysztof Naworyta
2009-05-06 18:10:01 UTC
Juzer Użytkownik <***@wp.pl> napisał

| Raczkuje dopiero i proszę o wyrozumiałość

Więc na początek zadanie uprościmy co nieco...

| potrzebuje zrobić w accessie coś takiego:
| posiadam dwa pliki exela
| w jednym znich znajduje się lista kontrachentów pewnego handlowca z nr
| tych kontrachentów przypisanych z bazy firmy,
| a w drugim lista dokumentów WZ pewnej grupy kontrachentów z nr. WZ-tki
| które zostały wypisane przez tego handlowca.
|
| Chodzi mi o to by oddzielć na bazie kontrachentów na których dany
| handlowiec wypisał WZ-tki
|
| interesuje mnie sprawdzenie ile dany handlowiec zrobił zamówień samemu
| a ile zostało mu dopisanych przez dział handlowy

a) Importujesz obydwa pliki/arkusze do access'a do dwóch osobnych tabel
(z poziomu access'a po prostu Plik > Pobież dane zewnętrzne >
Importuj...)

b) Pierwszą nazwij tKontrahenci, drugą tWZki

c) Otwierasz projekt nowej kwerendy

d) w górnej części okna z prawej myszy wybierasz dodaj tabelę (wstawiasz
diagramy obydwóch tabel)

e) w obydwóch tabelach jest pewnie pole, które wskazuje na coś co
unikalnie określa kontrahenta (powiedzmy NR_kontrahenta, albo po prostu
Kontrahent)
Z diagramu jednej tabelki ciągniesz to pole do drugiej nad pole
analogiczne. Puszczasz myszkę i pojawia się połączenie między tymi dwoma
polami.


f) Z diagramu tabeli tKontrahenci ciągniesz do siatki w dolnej części okna
pole "*" (gwiazdka reprezentuje wszystkie pola tabeli)

g) i to prawie wszystko. Połączenie takie określa: pokaż wiersze z
wybranych tabel/tabeli, gdzie odpowiednie pola są równe.

Ale Ty chcesz tylko wiersze z pola tKontrahenci, i to bez powielania ich
tyle razy ile im wystawiono WZ-tek.

h) W górnej części okna (tam gdzie są diagramy tabel) w dowolnym pustym
obszarze klikasz prawą myszą i wybierasz właściwości.

i) Ustawiasz "wartości unikalne" na Tak.

j) Uruchamiasz kwerendę i cieszysz się efektem!



Aby uzyskać kontrahentów dla których nie było w-z'ek robi sie dość
podobnie, ale trzeba zmienić rodzaj sprzężenia...
O tym w następnej lekcji ... ;)
--
KN

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
f***@wp.pl
2009-05-06 19:34:56 UTC
dzieki wielkie
już testuje
f***@wp.pl
2009-05-08 11:12:58 UTC
Witam ponownie
okazało się ze baza klientów bła zrobiona na podctawie Fak i tych Fak
trochę jest tak samo jak WZtek
jak wyfiltrować by klient pojawił się jednorazowo na liście a nie przy
każdej WZ czy Fak ?
Krzysztof Naworyta
2009-05-08 16:01:51 UTC
Juzer Użytkownik <***@wp.pl> napisał
| Witam ponownie
| okazało się ze baza klientów bła zrobiona na podctawie Fak i tych Fak
| trochę jest tak samo jak WZtek
| jak wyfiltrować by klient pojawił się jednorazowo na liście a nie przy
| każdej WZ czy Fak ?

A masz jakiś podręcznik do access'a ?
Przydałby się :)
Ciężko tutaj od zera zaprezentować wszystkie mozliwe kwerendy...

Ale OK!
Poprzednio umieściliśmy na liście pól * (gwiazdkę), czyli wszystkie pola
tabeli tKontrahenci (rozumiem, że w rzeczywistości powinna nazywać się
tFaktury).

Skasuj to, a zamiast tego przenieś do grida tylko te pola, które wskazują
na kontrahenta (nazwisko, imie, identyfikator kontrahenta).
Pomiń te pola, które dotyczą faktury (np: numer_fakt, data, kwota itp.)

Podobnie jak poprzednio, we właściwościach kwerendy wybierz "wartości
unikalne" =Tak.

I już!

Jeśli w projekcie przełączysz się do widoku SQL, zobaczysz mniej więcej
takie coś:

SELECT DISTINCT
tFaktury.nazwisko
, tFaktury.imie
, tFaktury.id_kontrahenta
FROM
tFaktury
INNER JOIN
tWZki
ON
tFaktury.id_kontrahenta = tWZki.id_kontrahenta

W tłumaczeniu na ludzki język:

SELECT DISTINCT - wybierz bez powtórzeń poniższe pola
FROM - z tabel tFaktury i tWZki
INNER JOIN - gdzie odpowiednie pola (id_kontrahenta, id_kontrahenta) są
równe

Gdybyś pominął słowo DISTINCT otrzymałbyś iloczyny kartzjańskie w obrębie
danego numeru kontrahenta.
Przykładowo jeśli w tabeli tFaktury "kowalski" występował 3x, a w tabeli
tWZki wystąpił 2x, to w zbiorze wynikowym otrzymałbyś 6x kowalskiego
(3x2).
--
KN

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
f***@wp.pl
2009-05-08 21:23:43 UTC
Post by Krzysztof Naworyta
| Witam ponownie
| okazało się ze baza klientów bła zrobiona na podctawie Fak i tych Fak
| trochę jest tak samo jak WZtek
| jak wyfiltrować by klient pojawił się jednorazowo na liście a nie przy
| każdej WZ czy Fak ?
A masz jakiś podręcznik do access'a ?
Przydałby się :)
Ciężko tutaj od zera zaprezentować wszystkie mozliwe kwerendy...
Ale OK!
Poprzednio umieściliśmy na liście pól * (gwiazdkę), czyli wszystkie pola
tabeli tKontrahenci (rozumiem, że w rzeczywistości powinna nazywać się
tFaktury).
Skasuj to, a zamiast tego przenieś do grida tylko te pola, które wskazują
na kontrahenta (nazwisko, imie, identyfikator kontrahenta).
Pomiń te pola, które dotyczą faktury (np: numer_fakt, data, kwota itp.)
Podobnie jak poprzednio, we właściwościach kwerendy wybierz "wartości
unikalne" =Tak.
I już!
Jeśli w projekcie przełączysz się do widoku SQL, zobaczysz mniej więcej
SELECT DISTINCT
  tFaktury.nazwisko
, tFaktury.imie
, tFaktury.id_kontrahenta
FROM
  tFaktury
INNER JOIN
  tWZki
ON
  tFaktury.id_kontrahenta = tWZki.id_kontrahenta
SELECT DISTINCT  - wybierz bez powtórzeń poniższe pola
FROM - z tabel tFaktury i tWZki
INNER JOIN - gdzie odpowiednie pola (id_kontrahenta, id_kontrahenta) są
równe
Gdybyś pominął słowo DISTINCT otrzymałbyś iloczyny kartzjańskie w obrębie
danego numeru kontrahenta.
Przykładowo jeśli w tabeli tFaktury "kowalski" występował 3x, a w tabeli
tWZki wystąpił 2x, to w zbiorze wynikowym otrzymałbyś 6x kowalskiego
(3x2).
--
KN
archiwum grupy:http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Ten access mnie pochłonoł jak jakaś gra za młodu :)
z tym tematem sobie poradziłem

tylko nadal mam problem z poprzednim pytaniem
zatrzymałem się w taki miejscu
Loading Image...
zrobiłem "wartości unikalne" na Tak
ale nadal nie widzę różnicy,pewnie dlatego że robie coś źle
ale co ?
Krzysztof Naworyta
2009-05-08 21:47:28 UTC
Juzer Użytkownik <***@wp.pl> napisał

(...)
| Ten access mnie pochłonoł jak jakaś gra za młodu :)

Rozumiem ten ból ;)

| tylko nadal mam problem z poprzednim pytaniem
| zatrzymałem się w taki miejscu
| http://www.ferrer.boo.pl/inne/access.jpg
| zrobiłem "wartości unikalne" na Tak
| ale nadal nie widzę różnicy,pewnie dlatego że robie coś źle
| ale co ?

Przeczytaj jeszcze raz mój poprzedni post.
Potem jeszcze raz i jeszcze raz.
--
KN

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
f***@wp.pl
2009-05-12 12:16:33 UTC
witam
zrobiłem troszke inaczej, z instrukcji tych które mi podałeś i
powstały mi dwie wersje które zapsałem do exela
pierwszy to baza klientów zrobiona z WZ-tek czyli obsługiwane przez
danego handlowca,
drugi to baza kontrachentów zrobiona na podstawie wszystkich FAK-tur
wypisanych w biurze,
i pytanie ostatnie jak wyfiltrować z tych dwuch plików klientów nie
obsługiwanych przez handlowca
z moich wyliczen już wyszło że jest ich ok 50 ale szukanie nazw
ręcznie troche zajmuje
Krzysztof Naworyta
2009-05-12 21:24:54 UTC
Juzer Użytkownik <***@wp.pl> napisał

| zrobiłem troszke inaczej, z instrukcji tych które mi podałeś i
| powstały mi dwie wersje które zapsałem do exela
| pierwszy to baza klientów zrobiona z WZ-tek czyli obsługiwane przez
| danego handlowca,
| drugi to baza kontrachentów zrobiona na podstawie wszystkich FAK-tur
| wypisanych w biurze,

Czyli powiedzmy tKlienci_z_WZtek i tKlienci_z_Faktur

Rozumiem, że tabele już nie zawierają kilku wierszy z tym samym klientem.

| i pytanie ostatnie jak wyfiltrować z tych dwuch plików klientów nie
| obsługiwanych przez handlowca

Odpowiedź jest krótsza niz pytanie: Uzyj kreatora kwerend!
A dokładniej: jest tam pozycja "kwerenda wyszukująca niepasujące dane"

| z moich wyliczen już wyszło że jest ich ok 50 ale szukanie nazw
| ręcznie troche zajmuje

Jeśli zacząłeś uzywać access'a to powinieneś już rozumieć, że jest to
zajefajny programik, który zwalnia z robienia czegoś ręcznie.
Nawet na tabelach które mają po milion rekordów/wierszy.

Rozwiązanie w postaci kwerendy (widok SQL) wygląda następująco:

Select
f.*
From
tKlienci_z_Faktur As f
LEFT JOIN
tKlienci_z_WZtek As wz
On
f.id_klienta = wz.id_klienta
WHERE
wz.id_klienta is NULL

Tłumaczenie na nasze:
- pokaż wszyskie wiersze z tabeli tKlienci_z_Faktur (zaaliasowanej jako
"f")
- oraz wszystkie wiersze z tabeli tKlienci_z_WZtek (zaaliasowanej jako
"wz")
pod warunkiem, że ich kolumna id_klienta jest zgodna, a jak nie ma
odpowiednika to pokaż NULL.
(LEFT JOIN)

- Ale! Pokaż tylko te pozycje, gdzie po stronie wz nie ma odpowiedników w
kolumnie id_klienta
(wz.id_klienta IS NULL)

Jak przełączysz do QBE, to zobaczysz jakie to proste.
Można to zrobić też inaczej, ale jak na druga lekcję to wystarczy :)
--
KN

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
f***@wp.pl
2009-05-12 22:10:02 UTC
a co do poradnika jaką lekture byś polecił o accessie?
Krzysztof Naworyta
2009-05-12 23:51:45 UTC
Juzer Użytkownik <***@wp.pl> napisał
| a co do poradnika jaką lekture byś polecił o accessie?

Dowolną! Wybierz się do Empiku i sam sprawdź!
Oczywiście z czasem i tak kupisz inne pozycje.
--
KN

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Przemysław Rachwał
2009-05-13 06:30:07 UTC
Post by Krzysztof Naworyta
| a co do poradnika jaką lekture byś polecił o accessie?
Dowolną! Wybierz się do Empiku i sam sprawdź!
Oczywiście z czasem i tak kupisz inne pozycje.
Krzysztofie napisz własną - masz ku temu odpowiednie kompetencje
masz wiedzę i lekkość pisania - dobrze by się sprzedała
--
Przemek

"Non sunt multiplicanda entia sine necessitate"
http://vbamania.blogspot.com
Krzysztof Naworyta
2009-05-13 19:04:42 UTC
Juzer Przemysław Rachwał <***@gmail.com> napisał

(...)
||| a co do poradnika jaką lekture byś polecił o accessie?
||
|| Dowolną! Wybierz się do Empiku i sam sprawdź!
|| Oczywiście z czasem i tak kupisz inne pozycje.
|
| Krzysztofie napisz własną - masz ku temu odpowiednie kompetencje
| masz wiedzę i lekkość pisania - dobrze by się sprzedała

Bardzo miłe. Dziękuję!
--
KN
f***@wp.pl
2009-05-27 11:35:52 UTC
witam ponownie
mam kolejny problem z tymi samymi dokumentami:
jest lista dokumentów WZ za okres 4 mieś pewnych klientów z podanymi
kwotami ich zamówien, potrzebuje zrobić coś takiego by z dok WZ
powstało coś w rodzaju bazy klientów z podanymi obrotami za ten okres

pzodr