mario | 27.04.2011 08:58 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Hvala. Ovo je super. Kada sam htio napraviti ovaj pregled krenuu sam preko Queria i to je bilo sve ok. Grupiram preko datuma i to šljaka. Međutim to se pokazalo malo težim kad imam više tablica s različitim datumima. Datumi se neki poklapaju, a neki ne. (npr.DatumPiljenja=DatumTiplanja<>DatumSpajanja), a htio bih da budu u istom redu kada se datumi poklapaju Datum VrijemPiljenja VrijemeTiplanja VrijemAluminija 26.4.2011 100 50 27.4.2011 80 60 28.4.2011 80 80 Da to radim u ORACLU napisao bih mu sql koji bi napravio datume u nekom zadanom periodu between :dat_od and :dat_do, a na njega bi prikačio preko qyeria ostale tablice s tim da bi se prikazivali samo oni datumi za koje postoje podaci u tablicama .Šaljem Vam primjer jednog triggera da vidite kako to izgleda na nivou Oracl Forme. To je trigger koji kontrolira šifru_artikla. To kako sam zamislio izgleda slićno kao u formi1_1. Tu je problem što se mora napisati takvih polja bar 14 i pitanje je kako izbjeći npr.nedjelju. Je li moguće u queriu napisati to isto ako ima više tablica. U prilogu je ova forma i primjer SQL iz ORACLE na nivou jednog Fielda i sliku moje forme u oraclu za prodaju u maloprodaji. Pozdrav |
|
Prilozi: primjer.zip (Velicina datoteke:321.83 KB) |
zxz | 27.04.2011 09:32 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Citat: Between naredba postoje i u accessovom Sql-u. Skoro sve naredbe SQL-a su iste u Oracle MsSQL MySQL pa i u access bazi.Da to radim u ORACLU napisao bih mu sql koji bi napravio datume u nekom zadanom periodu between Ne moras nista stavljati u zagrade ako stvarno ne treba zagrada ali kada pravis query sa vizardom onda on to stavi i gdje treba i gdje netreba. Zagrade se stavljaju u oba slucaja na ista mjesta tj. kada hoces da odvojis nesto od neceg drugog ili da spojis. Pisanje procedura je različito Pa tako MsSql-u mozes pisati procedure na nivo same baze a u accessu za to ti sluzi vb i msvaku proceduru mozes pozivati direktno iz samog SQl-a. Mi SQL saljemo bazi kao string i baza ga izvrsava te vraca rezultat. Ostali objekti forme i kontrole na njima se razlikuju od programskog jezika do programskog jezika. Kod tebe je tabela pogresno kreirana. Mogao si imati jednu tabelu Zahvata u kojoj bi bilo dva polja: Zahvat_ID Naziv_Zahvata 1 Vrijeme pilanja 2 Vrijeme timplanja itd... Sad bi u ovoj tabeli imao: Datum ZahvatiID Vrijeme Ovim nacinom postizes i to da nisi ogranicen zahvatima te ukoliko se pojavi novi sam korisnik ga moze dodati a postizez i konzistentnost. Naravno da se moze napraviti i ovako kako si ti to zamislio ali mislim da je ovo mnogo ispravnije. |
mario | 27.04.2011 15:22 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Ja se s Vama slažem da bi to bilo bolje. Radim par formi koje su specifićne po radnim mjestima i univerzalnu formu. U svakoj formi ima puno podataka i mislio sam da ne prekrcam tablice-bazu. Uopće nemam pojma do koje količine podataka baza funkcionira. Na taj sistem što ste predložili sam išao kad su u pitanju šifarnici, prava djelatnika na prijave za stroj. U jednom tekstu ste dobro napisali da je najteži dio posla sve prvo dobro osmisliti. Da u tablicama imam samo vremena, i datume to bi bilo okej., međutim u svakoj tablici ima i drugih podataka kao što su. Rad,Nal, VrstaMaterijala,Brojkomada,duzinaTraka, a na žalost ti podaci nisu jednoznaćni za svaki stroj. U tablicama osim tih općih podataka procese koji su vezani na određeni stroj Pila - piljenje, kantiranje :PilaNalozi - poceta, gotovo, user,pauze proizvodnja - pripremu, tiplanje, spajanje, montažu :ProizvodnjaNalozi - pocetak, gotovo,pauze CNC ALuminij itd. Za svaku sugestiju koja dobro dođe unaprijed zahvaljujem U prilogu sam posalo par slika kako te forme izgledaju i njihove međusobne veze. Pitanje.1. Na koji način se resetira automatski ID u tablicama odnosno vraća na nulu. To se vjerojatno nalazi u nekoj od sistemskih tablica. Pokušavam što više proučavati Vaše primjere iz Škole, i drugih Tema da što manje gnjavim. Pozdrav |
|
Prilozi: ScreenShot018.zip (Velicina datoteke:1.20 MB) |
zxz | 27.04.2011 17:21 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Dosta toga je uradjeno i bilo sta da se krene zahtijevalo bi mnoge promjene. Imas ovdje dva primjera baza za proizvodnju pa mozes vidjeti koncept. Id mozes restartovati ako pobrises podatke iz tabele i odradis kompakt baze ili pak pobrises polje te napravis novo. Par puta sam napomenuo da se tabele nemogu napraviti za jedno popodne. Treba prvo izuciti i pokupiti sav materijal koji se tice samog rada jer mi uglavnom pravimo program za ljude koji vec rade taj posao koji samo treba prilagoditi da se to sto se prije radilo rucno radi na racunaru. U vecini slucajeva krene se u izradu aplikacije a nezna se nista o tome. Druga stvar koju treba znati a to je baze podataka. Tabele poed relacijske veze 1 na vise mogu biti vezane i 1-1 medjutim to rijetko kada vidim. Nikada ne treba stavljati u naziv polja neki podatak koji nije stalan odnosno podatak ili grupa podataka koji bi se u dogledno vrijeme mogli i mijenjati. Primjer: Nemozemo stavljati polja za imena artikala. Sta ce se desiti ako treba dodati novi artikal. To bi iziskivalo i promjenu aplikacije. U tvom slucaju su to zahvati. Pilanje Timplanje itd.. Sutra neka dodje do prosirenja proizvodnje doci ce i do novih zahvata i to korisnik nece moci dodati. Forme nisu nosioci podataka one sluze samo za unose i prglede podataka. tabele su te koje cuvaju podatke a podaci su bogatstvo a ne aplikacija. Ona se moze i promijeniti. Ukoliko imamo kao sto si gore naveo za neke objekte nesrodna polja onda se napravi jos jedna tabela u kojoj se prenese kljuc objekta i jos 2 polja se dodaju. jedno polje bi bilo opisno a drugo vrijednost toga opsia. Primjer: Strojjevi: StrojId NazivStroja Tip tez duz sirina Druga tabela: DodatniPodaci. StrojID Naziv Opis StrojID brojOrtaja a u opis 3200 StrojIID SNagaMotora 65 StrojID JedmjSnage KW StrojID vrsta pogona Elektro StrojID BrojNaplatka 13 itd.. Znaci drugi red bi bio kao naziv polja a u drugom vrijednost. |
mario | 27.04.2011 19:02 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Hvala na odgovoru. Sve što ste rekli stoji. Imao sam nedavno priliku vidjeti jedan Austrijski program, koji radi na osnovu nespecifiranih poslova. Proučavajući ga došao sam do zaključka da bi samo za unošenje svih podataka trebao 1 djelatnik koji bi se samo tim bavio. Kod mene je malo specifićna situacija što se tiće par osnovnih strojeva, znamo točno koji podaci su nam potrebni. Mogao sam napraviti podjelu kao što ste naveli međutim to bi zahtjevalo puno radnih naloga (do 10) po jednom glavnom nalogu (30-50 dnevno), ukupno 70-80. Zbog toga sam to tako koncipirao da u samo 4 forme se može sve napraviti, bar za glavne strojeve. Svaki od strojeva ima dvije tablice tzv glavne tablice koje su povezane ID + pomoćne (spremaju se samo ID-ovi-vrstaStroja, Sifarnici, Materijali, useri, pauze,vrstaPosla itd.). Mi u firmi pola ovih stvari unosimo preko Excel tablica. Sad radim na tablicama koje će biti univerzalne za sve one poslove koji su stalni i koji se svakodnevno mogu dodati-promjeniti, a ne iziskuju puno podataka (čišćenje, održavanje, rad na manjim strojevima, pakiranje, otprema itd.) . Složio sam pregled vremena kao u Formi1_1 za 30 dana, s tim da prepoznaje kada je nedjelja. Tu ste mi puno pomogli. Tu bi se dalo još popraviti da zna da za taj dan nema naloga, ali na tome ću kasnije raditi. Imat ću još par pitanja u vezi sintaxi u proceduranma SQL, ali Vas više neću gnjaviti Pozdrav |
mario | 28.04.2011 18:23 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Poštovanje, evo mene opet. Uspio sam prebaciti određeni dio u stariju verzijz. Sve tablice i forme se nisu mogle prebaciti. Sad možete malo pogledati kakoto izgleda. Imam jedan problem, kod tmpVar koje sam jučer napomenuo. Radim logiranje po pojedinom stroju odnosno i pauzr su uključene u to. U formi LoginStroj1 (GlavniMeni) imam polje RadnoMj(Stroj) u kojem biram vrstu stroja. Nakon toga polje User gdje bi se trebalo pokazati samo oni Useri koji mogu na tom stroju raditi. U tablici SifarnikUser određujem na kojem stroju može tko raditi. User polje je definirano preko Queria koje ima filrter TmpVar(stroj), poslije update polja Radno.Mj. Primjer. Biram Raskrajač pojave se dva user u izboru i to je OK Tmp,Var=1 Nakon toga se izabere drugi stroj i pojavi se opet User koji je definiran za taj stroj, što je OK., međutim i na prvom polju se promijeni user jer je sad novi Tmp.User=3. To je sasvim logićno i jasno. Otvorio sam polje u formi Proceduramjesto(radnoMjesto) koja u to pilje smješta ispravan ID od stroja. Sad je pitanje na koji način da to polje iskoistim u queriu za User, odnosno mogu li se u procedurama stvarati TmpVar, koji će se koristiti u drugim aplikacijama. Glupo pitanje znam da može. Primjer. Na 1 stroj se prijavljuju 2 Usera , ili na različitim strojevima se u isto vrijeme prijavljuju različiti useri. Postoji li neki način da se TmpVar (globalne varijable) vežu na taj način. Primjer. Forma4 - glavni radnik na pili, i pomoćni se upisuju da su počeli raditi na stroju u donjem dijelu. Pomoćni se samo prijavljuje i upisuje pocetak, pauza,Gotovo Glavni upisuje pocetak., gotovo u donjem dijelu dok u gornjem upisuje po pojedinom nalogu pocetak,pauza,gotovo. Pritom se upisuje i User u taj dio tablice. Fakat sam zakoplicirao stvar s ovim objašnjenjima. Nisam siguran hoćete li se u ovome moći snaći. Ako bar ništa komentar. Pozdrav Pozdrav |
|
Prilozi: Pitanje1111.zip (Velicina datoteke:582.03 KB) |
zxz | 29.04.2011 16:51 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Ako ima neko ovu vecu verziju accessa neka pogleda ovo. |
mario | 29.04.2011 22:01 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Napravio sam i snimio u nižoj verziji ono što sam htio pitati. U formi LoginStroj1 imam polje RadnoMj(Stroj) u kojem biram vrstu stroja. Nakon toga polje User gdje bi se trebalo pokazati samo oni Useri koji mogu na tom stroju raditi. U tablici SifarnikUser određujem na kojem stroju može tko raditi. User polje je definirano preko Queria koje ima filrter po polju BrojStroja (iz procedure). Primjer. Biram Raskrajač pojave se dva user u izboru i to je OK Stroj=1 Nakon toga se izabere drugi stroj i pojavi se opet User koji je definiran za taj stroj, što je OK., međutim i na prvom polju se promijeni user jer je sad novi Stroj=2. To je sasvim logićno i jasno. Otvorio sam polje u formi Proceduramjesto(radnoMjesto) koja u to pilje smješta ispravan ID od stroja. Sad je pitanje na koji način da to polje iskoistim u queriu za User, odnosno mogu li se u procedurama stvarati TmpVar, koji će se koristiti u drugim aplikacijama. Glupo pitanje znam da može. Primjer. Na 1 stroj se prijavljuju 2 Usera , ili na različitim strojevima se u isto vrijeme prijavljuju različiti useri. Postoji li neki način da se TmpVar (globalne varijable) vežu na taj način, odnosno da kad se prijavljuju na pauzu da se preko TmpVar. vezu Useri Napomena vise djelatnika če koristiti jedno računalo i biti će istovremeno prijavljeni na različitim Rad.Mjestima i u isto vrijeme ih više biti na pauzi. Pozdrav |
|
Prilozi: Database40.zip (Velicina datoteke:48.30 KB) |
mario | 13.05.2011 16:21 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Može mi neko reći zbog čega ne mogu snimiti formu, odnosno kada je hoću snimiitii ništa se ne događa, a prilikom zatvaranja neće se snimiti. Hvala |
mario | 13.05.2011 16:24 |
---|---|
Predmet:Re: Pomoć oko sintaxe SQL i Procedure Nadopuna kad kažem neće se snimiti mislim prilikom promjene na samoj formi a ne spremanje podataka. |