» »

MS Access - help me

MS Access - help me

buhica1 ::

Nisem preveč verziran v Accessu in hočem dobit en podatek pa ne vem kako.
Imam recimo bazo strank videoteke. Vsaka stranka lahko vzame naenkrat več kaset. Rad bi dobil podatek števila strank, ki imajo izposojeno kako kaseto (končno me zanima procent strank, ki imajo kaj izposojenega (ne procent vseh izposojenih kaset). Sliši se enostavno, toda...8-O ;((

Za vsak nasvet vnaprej hvala
lp Buhica

ghibly ::

Narediš query --> v eno kolono daš count na vse stranke --> v drugo kolono daš count le na stranke, ki imajo izposojeno kaseto (z iif funkcijo) --> nato deliš ti dve koloni in dobiš %.

Simple as that....

buhica1 ::

Baza podatkov o izposojenih kasetah posebna baza (drugi Table; s splošno je povezana z poljem ime in priimek stranke). Lahko podrobneje razložiš tale iif stavek (mogoče if stavek) v query???

hvala in lp
Buhica

ghibly ::

Torej, če sem razumel imaš v splošni vse stranke, v drugi pa le izposojene? Če je tako, potem je še bolj enostavno.

Naredi query (upam, da veš kako), nato v načinu design view poveži obe tabeli po polju, ki ga imata skupnega - verjetno priimek na način --> join properties include all records from "polje v tabeli, kjer imaš vse stranke" and only those records from "polje v tabel, kjer imaš le stranke z izposojeno kaseto".

Ko je ta povezava v queryju sestavljena vneseš polje priimkov iz prve tabele in polje priimkov iz druge tabele v query. Nato kliknes ikonico z znakom "grški suma", pokazala se ti bo nova vrstica v "Total". V tej vrstici izbereš "count" za oba polja tabel (v prvem polju ti bo seštelo vse kupce, v drugem polju pa le tiste z izposojeno kaseto. Potem napišeš funkcijo v tretji kolini, ki bo sledeča: Delez: [ime drugega polja]/[ime prvega polja] ter nastaviš properties polja na percentage.

Tako dobiš procent kupcev, ki imajo izposojeno kaseto napram vseh kupcev.

Zgodovina sprememb…

  • spremenil: ghibly ()

buhica1 ::

Prvo hvala za tvojo pomoč. Naredil sem tako kot si napisal. V bazi strank imam 10 strank. V bazi izposoj pa ima ena stranka 2 ena pa 1 film.
Ko naredim query brez formule za izračun mi pokaže prvi count 11 (!!!) in drugi count 3 (!!!). Pravilno bi moralo biti 10 in 2. Če pa vnesem še formulo pa mi javlja napako data mysmatch...

And now ???

lp Buhica

ghibly ::

to je pa malo čudno, da ti pokaže count 11, če je strank le 10. Si ziher, da si dal count na priimek in ne na izposojene filme ter da si zvezal polja pravilno.

Drugače pa stisni na "grški suma", da se ti odstrani vrstica "Total". Nato poženi query pa poglej, katere stranke ti pokaže - boš takoj videl, kaj ne štima - zakaj je tam 11 in 3.

Ali imaš več istih strank v tabeli?

buhica1 ::

Te številke mi kaže zato ker ima ena stranka 2 filma in se pojavlja 2-krat v prvem in 2-krat v drugem count-u;(( ;((. Ravno to mi je delalo težave preden sem postavil vprašanje na forumu, namreč da bi se vsak ki ima kaj izposojeno pojavil samo 1-krat in ne tolikokrat koliko kaset ima izposojenih...:'( :'( :'(

lp Buhica

ghibly ::

Aha, pol pa naredi 2 querya:

prvi naj bo tak, kot smo zgoraj napisali, le da pod "Total vrstico" namesto "count" nastaviš na "group by" --> tako ti bo vse podvojene združilo skupaj.

Nato narediš drugi query (ki bo vezan na tega prvega) in tam daš "count" --> tako bi moglo kazati pravilno.

Še vedno ne razumem, zakaj imaš 2x napisano stranko v prvi tabeli "seznam strank" --> razumem v drugi, ker sta 2 filma, ma v prvi?

Zgodovina sprememb…

  • spremenil: ghibly ()

buhica1 ::

Ja hvala to z dvema queryema dela. Toda še vedno mi javlja napako data type mismatch in criteria expression če dam formulo v tretjo kolono "Delež: [ime prve kolone]/[ime druge kolone]" da bi mi izračunalo procent. Kaj naj v tej tretji koloni vpišem pod vrstico Total (v prvih dveh imam seveda Count)???

Dodajam: Mi je uspelo...:D
Namesto "Delež: [ime prve kolone]/[ime druge kolone]" mora biti "Delež: [Countofime prve kolone]/[Countofime druge kolone]" in v vrstica Total mora biti prazna...:)) 8-) ;)

Krull zares še enkrat hvala za pravo on-line pomoč...
lp
Buhica

Zgodovina sprememb…

  • spremenil: buhica1 ()

ghibly ::

Malenkost:))

dodal bi še, da "CountOf ime kolone" je v bistvu ime kolone.
če bi uporabil (ne v tvojem primeru, ker ne bi delalo) namesto "count" denimo "sum" bi bilo ime kolone "SumOf ime kolone", ker ime kolone v queriju ni definirano, ampak privzeto iz imena polja od tabele (z nekaterimi izjemami).

En nasvet, če boš še kdaj delal v accessu: vedno poimenuj na novo imena kolon v queryjih, še posebej tiste kolone, ki vsebujejo kot rezultat numerične znake --> naprimer "AA: ime prve kolone", "BB: ime druge kolone", tretji stolpec za delež pa bi tako bil "Delez: [AA]/[BB]. Tako se izogneš onemu "CountOf", "SumOf", "LastOf",...ipd, pred nazivi.

P.S. Če napišeš enačbo v kolono, se pod vrstico "Total" nastavi Expression, deluje pa tudi, če pustiš prazno, kot si že ugotovil.

Zgodovina sprememb…

  • spremenil: ghibly ()

buhica1 ::

Thanks...

Še en citat iz starega YU-filma: "Svakoga dana u svakom pogledu sve više napredujem..."
:)) :) ;)
lp Buhica


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

finančno planiranje

Oddelek: Loža
303875 (2641) Nemelk
»

pomoč v MS access - filtriranje, zaščita baze, dodeljevanje uporabnikov in pravic

Oddelek: Programiranje
101323 (1169) dvojka
»

Pogojno oblikovanje Excel 2007

Oddelek: Programska oprema
73468 (3368) smetko
»

[Excel]Vrednost celice = ime dokumenta

Oddelek: Programska oprema
314748 (4170) veteran
»

[MS Access] distinct tabela iz miljon tabel

Oddelek: Programiranje
91296 (1124) dudi

Več podobnih tem