Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MS Access - potrebujem dopisat overovacie pravidla

nasiel by sa tu nejaky ochotny clovek ktory by mi pomohol urobit nieco v accesse pretoze uz som fakt zufala potrebujem vyriesit par uloh ku ktorym treba dopisat overovacie pravidla a podobne veci ak sa v tom niekto vyzna a ma trocha casu keby bol taky dobry a napisal by mail kde by som mu to poslala zeby sa na to pozrel vopred moc diky

Změna předmětu, původně: MC Access (host)

Předmět Autor Datum
Toto je veřejná poradna, tak jestli máš konkrétní problém, nestyď se a napiš jej. Na individuální od…
host 13.08.2010 21:08
host
tak teda posielam tie veci keby sa na to niekto pozrel ze ci by to vedel potrebujem urobit tie ulohy…
prisonbreak 13.08.2010 21:16
prisonbreak
Takže nějaký domácí úkol? A vás to ve škole neučili? ::)
host 13.08.2010 21:21
host
da sa to tak povedat ze domaca mali sme z toho hrozne narychlo prednasku a nik tomu nerozumie poriad…
prisonbreak 13.08.2010 21:25
prisonbreak
aha.. "nik tomu nerozumie" ]:) Nevěřím, že vám to nikdo neodpřednášel. Tohle jsou úplné základy tra…
touchwood 14.08.2010 16:01
touchwood
bude mi s tym prosim niekto vediet pomoct ci nie pozeral sa uz niekto na to kto vie robit v accesse
prisonbreak 13.08.2010 21:49
prisonbreak
Měl bych nejprve dotaz. V databázi jsou dotazy, formulář a sestava. Jsou to vzory, nebo jsi to už sa…
uri 14.08.2010 13:25
uri
ale to je tak strašně jednoduché, na to stačí 30 minut, stačí to naklikat. To "nejhorší" je použití…
touchwood 14.08.2010 15:36
touchwood
SELECT KLIENTI.OBEC as bydlisko, Count(KLIENTI.OBEC) AS Pocet_klientov FROM KLIENTI INNER JOIN TRANS…
touchwood 14.08.2010 15:42
touchwood
diki moc ze si sa na to pozrel ale to co si mi popisal tak sa z toho moc nevyznam tak ci by si mi as…
prisonbreak 15.08.2010 11:45
prisonbreak
promiň, ale ti si to tam nedokážeš dát sama? Vždyť jsou to 2 kliknutí (označit text, ctrl+c, nový do… poslední
touchwood 15.08.2010 11:47
touchwood

aha.. "nik tomu nerozumie" ]:) Nevěřím, že vám to nikdo neodpřednášel.

Tohle jsou úplné základy transakčních dotazů.. co vás teda učili? A proč sis to nenastudovala na netu? Zrovna v Accessu se tyhle pakárny dělají strašně jednoduše pouhým přetahováním políček, jen čas od času je potřeba dopsat nějaký ten vzoreček.

Měl bych nejprve dotaz. V databázi jsou dotazy, formulář a sestava. Jsou to vzory, nebo jsi to už sama vytvořila ? Relace je vytvořena tebou ? Pokud jsou to vše jen vzory od zadavatele, tu máš SQL dotaz na první otázku:
SELECT Month([TRANSAKC]![DATUM]) AS Měsíc, Sum([TRANSAKC]![SUMA]) AS SUMA
FROM TRANSAKC
WHERE (((TRANSAKC.DATUM) Between #1/1/1995# And #12/31/1995#))
GROUP BY Month([TRANSAKC]![DATUM])
ORDER BY Month([TRANSAKC]![DATUM]);
Stručně vysvětlení: Podmínka WHERE určuje rozsah transakce, Sum je součet transakcí, GROUP BY Month slučuje do jednotlivých měsíců a ORDER BY Month je vzestupné seřazení dle měsíce.

SELECT KLIENTI.OBEC as bydlisko, Count(KLIENTI.OBEC) AS Pocet_klientov
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.OBEC;
SELECT Count(TRANSAKC.CAS) AS Pocet_dopoledne
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
HAVING (([cas]<=12));
SELECT Year([DATUM_NAR]) AS rok, Count(Year([DATUM_NAR])) AS pocet
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY Year([DATUM_NAR]);
SELECT Month([DATUM_NAR]) AS rok, Count(Year([DATUM_NAR])) AS pocet
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY Month([DATUM_NAR]);
SELECT KLIENTI.MENO, UCase([PRIEZVISKO]) AS UCPRIEZ, KLIENTI.DATUM_NAR, KLIENTI.OBEC
FROM KLIENTI
GROUP BY KLIENTI.MENO, UCase([PRIEZVISKO]), KLIENTI.DATUM_NAR, KLIENTI.OBEC;
SELECT KLIENTI.OBEC, Sum(TRANSAKC.SUMA) AS SumOfSUMA
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.OBEC, TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=Yes));
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, Month([DATUM_NAR]) AS mesic, KLIENTI.OBEC
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, Month([DATUM_NAR]), KLIENTI.OBEC
HAVING (((Month([DATUM_NAR]))=5));
SELECT KLIENTI.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.PSC
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.PSC, Right([psc],2)
HAVING (((Right([psc],2))="01"));
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, KLIENTI.OBEC, TRANSAKC.VKLAD, Sum(TRANSAKC.SUMA) AS SumOfSUMA
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, KLIENTI.OBEC, TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=Yes));
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, (Date()-[datum_nar])/365 AS vek
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, (Date()-[datum_nar])/365
HAVING ((((Date()-[datum_nar])/365)<40));
SELECT Count(TRANSAKC.VKLAD) AS CountOfVKLAD
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=Yes));
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, Count(TRANSAKC.VKLAD) AS CountOfVKLAD
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=Yes))
ORDER BY Count(TRANSAKC.VKLAD) DESC;
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, Sum(TRANSAKC.SUMA) AS SumOfSUMA
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=No))
ORDER BY Sum(TRANSAKC.SUMA);
SELECT KLIENTI.MENO
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO;
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, KLIENTI.OBEC, (Date()-[datum_nar])/365 AS vek
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.DATUM_NAR, KLIENTI.OBEC, (Date()-[datum_nar])/365
HAVING (((KLIENTI.OBEC)="Bratislava") AND (((Date()-[datum_nar])/365)<30));
SELECT TRANSAKC.CISLO_UCTU, KLIENTI.HESLO
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY TRANSAKC.CISLO_UCTU, KLIENTI.HESLO, Len([heslo])
HAVING (((Len([heslo]))<5));
SELECT TRANSAKC.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.HESLO
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY TRANSAKC.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, KLIENTI.HESLO, Len([heslo])
HAVING (((Len([heslo])) Is Null));
SELECT KLIENTI.MENO, KLIENTI.PRIEZVISKO, Sum(TRANSAKC.SUMA) AS SumOfSUMA
FROM KLIENTI INNER JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU
GROUP BY KLIENTI.MENO, KLIENTI.PRIEZVISKO, TRANSAKC.VKLAD
HAVING (((TRANSAKC.VKLAD)=Yes))
ORDER BY Sum(TRANSAKC.SUMA);
SELECT TRANSAKC.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, Sum(TRANSAKC.SUMA) AS SumPlus, Sum(TRANSAKC_1.SUMA) AS sumMinus, [sumplus]-[summinus] AS stav
FROM TRANSAKC AS TRANSAKC_1 RIGHT JOIN (KLIENTI LEFT JOIN TRANSAKC ON KLIENTI.CISLO_UCTU = TRANSAKC.CISLO_UCTU) ON TRANSAKC_1.CISLO_UCTU = KLIENTI.CISLO_UCTU
GROUP BY TRANSAKC.CISLO_UCTU, KLIENTI.MENO, KLIENTI.PRIEZVISKO, TRANSAKC.VKLAD, TRANSAKC_1.VKLAD
HAVING (((Sum(TRANSAKC.SUMA))>0) AND ((Sum(TRANSAKC_1.SUMA))>0) AND ((TRANSAKC.VKLAD)=Yes) AND ((TRANSAKC_1.VKLAD)=No))
ORDER BY [sumplus]-[summinus] DESC;

edit: názvy polí si uprav podle zadání. Nijak jsem to neoptimalizoval.

edit2: Ověřovací pravidla se používají při vstupu dat, nikoli při tvorbě dotazů. ;-)

diki moc ze si sa na to pozrel ale to co si mi popisal tak sa z toho moc nevyznam tak ci by si mi aspon dve ulohy nemohol uz priamo do accessu spravit a pripojit do prilohy aby som podla toho vedela lebo ja mam access 2007 v cestine a ty si mi tam po anglicky pisal a neviem kde co mam dat teraz tak ak by si bol taky dobry aby som nejaky vzor mala strasne moc dakujem

Zpět do poradny Odpovědět na původní otázku Nahoru