Forum » Programiranje » MS Access
MS Access
alesko ::
Problem v MS Accessu
Projektant v nekem podjetju dela nek projekt. Ta projekt je sestavljen iz glavnega projekta in pa podprojektov. Recimo projektant odpre nov projekt. V njem vnese podatke:
številka projekta, naziv projekta, kdo je risal, kdaj je risal,.... potem vnese še v podatke, kateri podprojekti so vključeni v projekt. Ok? no potem pa mora projektant vnesti še podatke o podprojektu. Podatki so točno enaki, kot pri projektu, razen da vključujejo še številko o podprojektu.
To se pravi, da za projekt rabim dve tabeli in sicer PROJEKT in PROJEKTDELI. Kako pa naj zdaj vključim še PODPROJEKTE zraven. K recimo potem moram pa narediti nek query, ki mi bo poiskal vse komade za celotni projekt tudi v podprojektih. A mi lahko kdo prosim pomaga to rešiti v MS Accessu?
Projektant v nekem podjetju dela nek projekt. Ta projekt je sestavljen iz glavnega projekta in pa podprojektov. Recimo projektant odpre nov projekt. V njem vnese podatke:
številka projekta, naziv projekta, kdo je risal, kdaj je risal,.... potem vnese še v podatke, kateri podprojekti so vključeni v projekt. Ok? no potem pa mora projektant vnesti še podatke o podprojektu. Podatki so točno enaki, kot pri projektu, razen da vključujejo še številko o podprojektu.
To se pravi, da za projekt rabim dve tabeli in sicer PROJEKT in PROJEKTDELI. Kako pa naj zdaj vključim še PODPROJEKTE zraven. K recimo potem moram pa narediti nek query, ki mi bo poiskal vse komade za celotni projekt tudi v podprojektih. A mi lahko kdo prosim pomaga to rešiti v MS Accessu?
Fim ::
Po mojem bo za začetek še najboljše, če poleg omenjenih tabel narediš še eno v kateri boš imel podatke o podprojektih. V tabeli projekti naj bo autonumber polje in to naj ti bo povezava (relacija) s tabelo podprojektov (One to many). Na osnovni formi projektov potem narediš še subformo v kateri so podprojekti in vidiš vse v enem oknu.
V queriju nato vse tri tabele med seboj povežeš in v rezultatu boš dobil tudi vse pripadajoče podprojekte, če boš seveda pravilno nastavil povezave (relacije).
Je pa težko takole na daljavo. Opisana rešitev je čisto polovičarska, ker ne vem kako lahko nastopajo projekti in kakšni podatki se zajemajo. Druga rešitev je tudi v tem, da narediš tabelo v kateri so vsi projekti in podprojekti (šifrant). Iz tega šifranta pa potem vnašaš podatke v projekte ali podprojekte (enako kot zgoraj). Ne vem morda je kdaj lahko projekt tudi podprojekt,.....Glede na to kam vneseš projekt iz šifranta 'projekt' postane Projekt ali Podprojekt. Podprojekt je za nekoga (tistega ki rešuje ta podprojekt) projekt! To se pravi, da so pomembni tudi nivoji...
Na ta način vedno zagotoviš enake podatke in le te vnašaš samo enkrat. Najprej se 'projekt' v šifrantu odpre (osnovni podatki) nato pa se v glavnem oknu vnesejo še ostali podatke (projekt oz. podprojekt izbiraš iz combo polja).
V šifrant daš lahko kakšna kontrolna polja, ki določajo kdaj je kakšen projekt v delu, v kateri fazi je, ali je zaključen, ali je podprojekt (nivo), ...... Ta polja potem uporabiš za filtre v combo boxu......
Tudi to ne vem ali podatki v omenjenih tabelah že obstajajo ali jih boste še vnašali. Ali morda želiš narediti samo query na obstoječih podatkih?
No, kakorkoli že. Morda sem ti dal kakšno idejo, če pa sem mimo udaril, pa še kaj napiši, da se uskladiva .
V queriju nato vse tri tabele med seboj povežeš in v rezultatu boš dobil tudi vse pripadajoče podprojekte, če boš seveda pravilno nastavil povezave (relacije).
Je pa težko takole na daljavo. Opisana rešitev je čisto polovičarska, ker ne vem kako lahko nastopajo projekti in kakšni podatki se zajemajo. Druga rešitev je tudi v tem, da narediš tabelo v kateri so vsi projekti in podprojekti (šifrant). Iz tega šifranta pa potem vnašaš podatke v projekte ali podprojekte (enako kot zgoraj). Ne vem morda je kdaj lahko projekt tudi podprojekt,.....Glede na to kam vneseš projekt iz šifranta 'projekt' postane Projekt ali Podprojekt. Podprojekt je za nekoga (tistega ki rešuje ta podprojekt) projekt! To se pravi, da so pomembni tudi nivoji...
Na ta način vedno zagotoviš enake podatke in le te vnašaš samo enkrat. Najprej se 'projekt' v šifrantu odpre (osnovni podatki) nato pa se v glavnem oknu vnesejo še ostali podatke (projekt oz. podprojekt izbiraš iz combo polja).
V šifrant daš lahko kakšna kontrolna polja, ki določajo kdaj je kakšen projekt v delu, v kateri fazi je, ali je zaključen, ali je podprojekt (nivo), ...... Ta polja potem uporabiš za filtre v combo boxu......
Tudi to ne vem ali podatki v omenjenih tabelah že obstajajo ali jih boste še vnašali. Ali morda želiš narediti samo query na obstoječih podatkih?
No, kakorkoli že. Morda sem ti dal kakšno idejo, če pa sem mimo udaril, pa še kaj napiši, da se uskladiva .
alesko ::
Hmm...ja sej bi autonumber uporabil, samo imam link tabele...tako, da ne vem kako bi autonumber uporabil...:) drgač je pa tko...to bo uporabljalo eno majhno podjetje, ki dela avtomatske stroje...projektant nariše nek dobi projekt recimo varilna linija. In recimo najprej zriše mašino potem pa na koncu mora napisat še kosovnico. Kosovnica zgleda tako, da na njej piše številka projekta, naziv projekta, kdo je risal, kdaj je risal, kdo je pregledal, kdaj je pregledal, DN, št.enot, datum oddaje. POtem pa pod projekt pride najprej seznam podprojektov oz. lahko so še sestavni deli kot je pnevmatika,... no in ta projekt pride potem stistakan na A3...no ko ima prvo stran projekta potem mora pa za vsak podprojekt ponoviti postopek, ker kosovnica vsebuje iste podatke...:) v glavnem upam, da razumete..:) upam, da bi mi lahko kdo pomagal razložiti ta problem..:)
Fim ::
Da imaš linkane tabele je čisto OK. Tabele dopolni v bazi od koder jih linkaš pa bo. Drugače ne bo šlo. Če pa strukture ne smeš popravljati, potem imaš pa problem, ker pa strukture ne poznam ti ne morem svetovati.....
Kakor se meni zdi pa še vedno velja vse zgoraj napisano.
Potrebuješ šifrant projektov in podprojktov kjer se le ti odpirajo (vnesejo v bazo - osnovni podatki). Ko so odprti jih lahko vnašaš v kosovnico, ki je osnovna tabela na katero priključiš še tabelo npr. KosovnicePod. Poveži ju preko neke oznake oz. šifre, ni nujno, da je to autonumber mora pa biti unikatna za vsak projekt tako, da na osnovi tega točno veš kateri podprojekt je obešen na ta projekt (relacija One To Many).
Kar pa se tiče poročila je pa osnova en query skoraj enak query-ju na formi kosovnice. Poveži obe tabeli za kosovnico, dodaj še šifrant projektov za ostale podatke, v WHERE vnesi pogoje za izpis. Na osnovi tega query-a generiraj report, podatke lepo oblikuješ po straneh (heading-i,....) pa je.
Seveda so zadeve v resnici bolj komplicirane, ne vem kaj drugega bi ti še lahko napisal oz. svetoval?!
Kakor se meni zdi pa še vedno velja vse zgoraj napisano.
Potrebuješ šifrant projektov in podprojktov kjer se le ti odpirajo (vnesejo v bazo - osnovni podatki). Ko so odprti jih lahko vnašaš v kosovnico, ki je osnovna tabela na katero priključiš še tabelo npr. KosovnicePod. Poveži ju preko neke oznake oz. šifre, ni nujno, da je to autonumber mora pa biti unikatna za vsak projekt tako, da na osnovi tega točno veš kateri podprojekt je obešen na ta projekt (relacija One To Many).
Kar pa se tiče poročila je pa osnova en query skoraj enak query-ju na formi kosovnice. Poveži obe tabeli za kosovnico, dodaj še šifrant projektov za ostale podatke, v WHERE vnesi pogoje za izpis. Na osnovi tega query-a generiraj report, podatke lepo oblikuješ po straneh (heading-i,....) pa je.
Seveda so zadeve v resnici bolj komplicirane, ne vem kaj drugega bi ti še lahko napisal oz. svetoval?!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Tehnične novosti v Wiki svetuOddelek: Novice / Omrežja / internet | 8024 (6709) | Bistri007 |
» | Indija razvija tablični računalnik za 30 evrovOddelek: Novice / Ostale najave | 7448 (6262) | nekikr |
» | Šifrirni algoritem A5/1, ki se uporablja za šifriranje GSM pogovorov, je padelOddelek: Novice / Zasebnost | 7215 (5129) | poweroff |
» | Izšel KDE 4.0.0 (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 12220 (7538) | kriko1 |