Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kopiranje recorda?

[es] :: Access :: kopiranje recorda?

[ Pregleda: 3511 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ja Paranoik
Subotica

Član broj: 59132
Poruke: 6
*.ptt.yu.



Profil

icon kopiranje recorda?10.07.2005. u 01:23 - pre 228 meseci
Potrebno mi je da sacuvam sve izmene kao i datume tih izmena na zapisima. Kapiram da mi je potrebna nova tabela u koju bi smestao izmene, samo kako?
Da li to treba da bude kopiranje recorda koje uzgred nisam uspeo da uradim ili postoji nesto elegantnije?

Pre oko dva meseca sam ovde nasao nesto slicno, ali tada mi nije trebalo, vrtim se vec dva sata i ne mogu da nadjem, pa ako moze bar link na temu...

please...
 
Odgovor na temu

Ja Paranoik
Subotica

Član broj: 59132
Poruke: 6
*.ptt.yu.



Profil

icon Re: kopiranje recorda?12.07.2005. u 02:13 - pre 228 meseci
Nesto sam prevrtao po knjigama i help-u i cini mi se da sam promasio temu i da kopiranje rekorda u sustini i nije moguce? Bar ne kako je mali Perica zamisljao.

Ok, preformulisacu pitanje:
Kako elegantno sacuvati istoriju promena na zapisima koji se retko menjaju?

Konkretno u evidenciji vozila, veoma retko se moze desiti da dodje do promene registarske oznake vozila ili jednom godisnje se menja broj polise osiguranja i sl.
Podaci o vozilima su smesteni u jednu tabelu. Primary key je broj sasije vozila.

Nakon pet godina rada hteo bih da vidim koliko je km preslo jedno vozilo na jednoj relaciji i to sa starim i novim registarskim brojem?

Mislim da me razumete... treba mi samo ideja kako sacuvati istoriju izmena...

Please, please, please !!!
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: kopiranje recorda?12.07.2005. u 19:39 - pre 228 meseci
Istorija promena na zapisima je potezak zadatak i na vecim sistemima nego sto je Access. Ukratko, nam elegantnog resenja z atvoj problem u Accessu. elegantno resenje bi bilo ono gdese uslovi zadaju na nivou tabela, bez pisanja koda. Dakle, kod moras da pises, a to moze na nekoliko nacina, a dacu ti dva. Ako neko ima bolju ideju, slobodno se javite

Ovako, istorija bilo kakvih promena na zpisu cuva se na jedan nacin, istorija promena na nekom posebnom polju cuva se na drugi nacin.

Nacin prvi, za bilo kakve promene:
Zamisli na trenutak da nisi u Accessu nego u MS SQL. MS SQL moze da detektuje automatski prirodu promene (update/delete) i shodno tome moze na primer ceo rekord (stanej pre promene) da zapise u neku tabelu tblMytable_History, Table tblMyTable_History ima identicnu strukturu kao tblMyTable (cija se istorija zeli cuvati), plus dva polja DatumUpisaUIstoriju i neki AutoNumber, cisto da broji rekorde. E, u Accesu to ne moze nas nivou tabela, ali moze da se izvede na nivou aplikacije. Ovo vredi pod uslovom da niko, ama bas niko, nikada, ali zaista nikada, ne ode direktno u tabele i menja/brise podatke. Primer ovoga imas na jednom Access web sajtu (Google "Allen Browne" ili idi na top temu Korisni linkovi pa na mvp.org i trazi odatle)

Nacin drugi, za promene na nekom posebnom polju:
Uvedes tabelu tblTabliceSasija sa poljima
SasijaID -- broj sasije, kao u tabeli tblVozila
TablicaID -- broj tablice, ako u tabeli tblTablice
OdDatuma -- kad je tablica stavljena na sasiju
Kilometraza -- citanje kilometraze na dan kad je tablica zakacena na vozilo
U ovoj tabeli SasijaID mora da bude Unique, a isto tako i TablicaID mora da bude Unique. Nije dovoljno da kombinacija (TablicaID,SasijaID) bude jedinstvena, jer bi to dozvolilo da se jedna ista tablica nakaci na vise vozila.
Onda uvedes tabelu tblSasijeTablicaIstorija u koju upisujes novi rekord kad god se u tabeli tblTabliceSasija promeni neko od polja SasijaId ili TablicaID. Ovde je potrebno i dovoljno da imas jedinstvenu kombinaciju SasijaID,TablicaID.
Kad ti treba odgovor na pitanje koje si postavio, malo se mucis sa kverijima i dobijes odgovor. Verovatno ces morati da radis neki UNION izmedju dve tabele, pa da gledas koji ti rekrdi padaju u zadati interval.
Ovo ti je us sustini prvi slucaj, samo za jedno ili dva polja.

A mozes i svaki put kad se menja veza Sasija/Tablica da cuvas rekorde u istoj tabeli. Trebaju ti dva datuma, datum pocetka veze Sasija/Registracija i datum kraja. Rekordi koji imaju NOT NULL u oba datuma se neaktivni, to je bilo pa proslo.
Proizilazi da u svakom rekordu mora da postoji DatumPocetka, a ne mora i DatumZavrsetka. I ni slucajno ne stavlja flag polje "Aktivan", to ionako znas na osnovu dva datuma. Niti Tablica niti sasija ne smeju da se dozvole u nekom novom rekordu ukoliko u tabeli postoji rekord gde je DatumZavrsetka NULL, jer je tada ta tablica/sasija jos uvek aktivna negde drugde. i ne sme DatumPocetka za bilo koji rekord da bude manji od datuma Zavrsetka u neaktivnim rekordima gde se ta sasija/tablica pojavljuju. To ti je kao da cuvas UNION kveri koji sam pomenuo gore, u istoj tabeli odmah.

Sve ovo ne moze automatski u Acessu, nego na nivou aplikacije. Zato preporucujem da ili posao odradis u SQL serveru (jedan dodje i uz Access) ili da povremeno proveravas valjanost podatka (odnosi datuma i tako to)

Ako vec mora Access, ja bih radio prvo resnje, sa dve tabele, lakse je i manje se zapetljas.

:-)

 
Odgovor na temu

gosha
Zemun

Član broj: 2384
Poruke: 589
*.dialup.sezampro.yu.



+40 Profil

icon Re: kopiranje recorda?12.07.2005. u 19:42 - pre 228 meseci
Ja mislim da tebi ne valja dizajn tabela i da ti uopste ne treba pracene izmena.
Ako sam dobro razumeo temu ovako bi trebalo da izgledaju tabele:


1 tabela vozila:

Broj sasije, tip vozila, marka vozila i td.


2 tabela registracije vozila:

Broj sasije, broj reg.oznake i td. (sve ono sto se moze promeniti prilikom registracije)

i td.

n tabela Polise
nn tabela lica ili osiguranici

i td.


Pozdrav Goran.

PS. Relacije su valjda jasne. Nema nikakve potrebe za pracenjem izmena.

[Ovu poruku je menjao gosha dana 12.07.2005. u 20:45 GMT+1]
JokeJunky :)

Mrzim sublimirane marketinske poruke.
 
Odgovor na temu

Ja Paranoik
Subotica

Član broj: 59132
Poruke: 6
*.ptt.yu.



Profil

icon Re: kopiranje recorda?13.07.2005. u 00:05 - pre 228 meseci
Hvala veliko!

Shvatio sam sustinu price iz primera na "Allen Browne", ostaje mi samo da odvojim vremena da to pokusam da prilagodim mojim potrebama. Kada uspem javicu sta i kako sam uradio.
U svakom slucaju, za sada sve ide na Access, pa kako mi bog da, obzirom da sam u celoj prici pocetnik a SQL ne znam ich.

Stvar je u tome sto mi je osnovno zanimanje daleko od racunara (sto ste po problematici vec shvatili), pa i nemam previse vremena za ucenje.... a voleo bih...

Gosha,
vec sam razmisljao i o tome da promenim strukturu i podelim sve na vise tabela, ali sam odustao obzirom da mi je vozni park heterogen cak i po vlasnickoj strukturi i da trenutno imam preko 60 tabela i relationship mi izgleda kao neko delo modernih slikara pod naslovom "terija haosa"...

Aplikacijom pokrivam kompletan poslovni proces transportnog odeljenja jedne proizvodjacke kuce, koja ima 300 svojih vozila i angazuje isto toliko prevoznika po razlicitim shemama, oko 400 vozaca i 100 dobavljaca ostalih usluga. Kada ovo ovako kazem i sam se uplasim, ali na bazi radim vec 9 meseci, prosla je vec neke test faze u praksi i nadam se da ce biti gotova do kraja godine... obzirom na tempo mog ucenja...



Ne zelim da se iko ovde oseti prozvanim ili uvredjenim, ali na ovaj posao sam se bacio iz prostog razloga sto IT sektor u mojoj firmi, kada sam im dao projektni zadatak koji sam pisao mesec dana, kao odgovor na celu pricu dobio odgovor da im za to treba puno vremena i puuuno para i pitanje da li to mogu odraditi valjano ili ce angazovati profi kucu da napravi softver vredan mnogo eura itd itd... Tada sam rekao sebi e neces majci, ima da radi i to u Accessu... prvenstveno sto to vec vodim sa dva momka i 5 Excel fajlova od po 40 MB... jedino sto nam za svodjenje racuna i statistika treba 5 dana rada na kraju svakog meseca.

Taj dan sam otisao u prvu knjizaru i kupio dve knjige: Acces za neupucene i Access Biblija... to je bilo pre 10 meseci, juce sam kupio VBA za pocetnike...

I koancno, za ovaj forum sam saznao pre 2 meseca i mnooogo ste mi pomogli i zelim da vam se lepo zahvalim i pozelim da ova stvar traje dugo, dugo...

Eto, malo sam sebi dao na slobodi da si olaksam dusu, mozda ovo nije mesto za ovakve govorancije, ali cini mi se da trenutno i nemam skim osim sa vama da podelim muku a da ne pomisle "ovaj je ili lud ili laze cim zine".

Svaka cast momci !



p.s. ukoliko bilo ko misli da je ovaj tekst suvisan, neka javi bice obrisan... makar morao da molim moderatora da ga obrise.

Pozdrav.
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: kopiranje recorda?13.07.2005. u 13:19 - pre 228 meseci
Svaka ti cast za ovo:
Citat:
Ne zelim da se iko ovde oseti prozvanim ili uvredjenim, ali na ovaj posao sam se bacio iz prostog razloga sto IT sektor u mojoj firmi, kada sam im dao projektni zadatak koji sam pisao mesec dana, kao odgovor na celu pricu dobio odgovor da im za to treba puno vremena i puuuno para i pitanje da li to mogu odraditi valjano ili ce angazovati profi kucu da napravi softver vredan mnogo eura itd itd...

Nazalost, vecina IT grupa se ponasa tako. cast izuzecima, ocena se ne odnosi na individualne programere, nego na IT kao sektor. Uglavnom ne postoji razumevanje poslovnog procesa koji treba podrzavati (pisuci aplikacije zasnovane na projektnom zadtku), a cesto ni zelje da se biznis proces prouci i razume. Sve se svodi na onu "daj mi specifikacije, pa cu te kriviti kasnije da specifikacije nisu bile jasne, ili cu traziti mnooogo vremena i para". Zato pametni momci cesto kazu
Citat:
e neces majci, ima da radi i to u Accessu...

U praksi, aplikacije koju napisu ljudi iz prakse, iz nuzde, su najbolje. Mozda se ne primene najsavremeniji i najelegantniji algoritmi, mozda se ne uradi sve u najmodernijim alatima, nema sve cake i kerefeke, ali ima jednu vaznu osbinu - RADI ONO STO KORISNIKU TREBA.

Samo napred, guraj i otimaj se, a mi cemo ti pomoci odavde koliko god mozemo.
 
Odgovor na temu

banem
Kikinda

Član broj: 16619
Poruke: 583
*.smin.sezampro.yu.



+15 Profil

icon Re: kopiranje recorda?13.07.2005. u 14:01 - pre 228 meseci
Nadam se da nećeš pogrešno razumeti. Ali, pisanje dobre aplikacije zaista košta mnogo.
Zašto? Odgovor je: zato što košta mnogo!

A zašto košta mnogo? Zato što ljudi cene svoje znanje i vreme. Znanje se stiče godinama, nebrojenim satima čitanja literature i praktičnog rada. Zato što fakultet košta, nije za džaba. Zato što nije dosta napraviti sa Wizardom bazu za kućnu fonoteku i sebe proglasiti programerom. Zato što... razloga ima mnogo.

Da li traži mnogo vremena? Relativno - što si bolji, sa većim znanjem, traje manje vremena. Povežeš vreme i novac i onda je jasno zašto to mora da košta više, kada ti pro radi.

Smatram (lično mišljenje) da je krajnje vreme da stvari postavimo tamo gde treba da budu, da ljudi budu profesionalni a ne majstori bez portfelja. Da za svaki posao postoji majstor koji će ga odraditi najbolje, a svoj rad naplatiti valjano. Ovo je jako bitno kako bi drugi, pa i ti, svoj rad mogli da naplatimo adekvatno.

Ja sam za profesionalnu liniju - *dobar* majstorski rad mora da košta. Nažalost, uvek postoje ljudi koji će degradirati profesiju, ne shvatajući da degradiraju sebe, a kamoli svoje kolege.

Dakle, to je moje mišljenje kojeg, nadam se, nećeš pogrešno razumeti.


Pozdrav,
Branislav
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.privsav.co.yu.



+1 Profil

icon Re: kopiranje recorda?13.07.2005. u 14:20 - pre 228 meseci
Evo da podelim i ja svoje iskustvo kako sam to uradio, po meni jedno od jednostavnijih rešenja.

Dakle, na glavnoj formi - switchboardu postoje npr. dva dugmeta:

- Unos
- Pregled

Kada korisnik klikne na "unos", otvori mu se blanko forma, sa poljima koje čekaju na unos. Ok, korisnik unese sve (ili samo required) podatke, i klikne na "save record". Forma se zatvara, taj record u bazi je snimljen i "zakucan", za svako dalje editovanje potrebno je stisnuti dugme "Pregled".

Kada korisnik stisne dugme "pregled", otvori mu se tabelarna forma sa spiskom svih unosa. Duplim klikom na neki record, otvara se ista forma kao i ova gore, samo filtrirana po ID broju za record za koji smo kliknuli. Korisnik edituje podatke i klikne na "Save record". U tom trenutku:

-Stari podaci se snimaju u tblOldData;(ova tabela ima skoro istu strukturu kao i originalna tabela, eventualno se mogu dodati polja "DatumIzmene" i "OldId" - stari id broj recorda, čisto radi sigurnosti;)
-snima se record, i kao posledica toga,
-Promenjeni podaci se snimaju u tblData.

Ovo je skroooz generalizovani scenario, i vredi za bilo koju bazu podataka, bilo kakvu evidenciju, itd. Možda sam malo konfuzan, pitajte pa ćemo se razjasniti.

Sve promene se evidentiraju lagano pomoću jednostavnog upita.

Osnovni problem kod svih loše napravljenih aplikacija kod kojih treba da se prate promene u recordu jeste što kroz formu za unos mogu da se i edituju podaci, a ovim jednostavnim konceptom se to prevazilazi.



[Ovu poruku je menjao mika dana 13.07.2005. u 15:24 GMT+1]

[Ovu poruku je menjao mika dana 13.07.2005. u 15:27 GMT+1]
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
217.71.52.*

Sajt: www.icentar.ba


+2 Profil

icon Re: kopiranje recorda?13.07.2005. u 23:31 - pre 228 meseci
Imam namjeru da pomognem, naravno ako uspijem.
Nisam cak ni sve procitao, samo dio sto je Zidar iznio i ono je dobar savjet.
Ja cu samo opisati kako sam to ja radio.
Jedan nacin je sto je i Zidar pisao kako to radi sql tj. dase naprave rezervne tabele bez relacijskih veza i bez kljuca pa se u njih smijesta.
Naravno te tabela se moraju nalaziti u drugoj mdb.
Drugi nacin mozda prikladniji ako nema bog zna kakvih izmjena ili bar ne u svim poljima da se napravi tabela u postojecoj bazi i to sa poljima ImeTabele, Imepolja, Izmjena i datum.
Na formi na on enter polja u memorijsku se upisuje vrijednost u tom polju a na on exit se upoređuje i ako nije ista onda se upisuje u ovu tabelu.
Ovo je dobra tema mozda nebi bilo lose jos malo prodiskutovati.

Pozdrav


[Ovu poruku je menjao izonic dana 14.07.2005. u 00:34 GMT+1]
zxz
 
Odgovor na temu

[es] :: Access :: kopiranje recorda?

[ Pregleda: 3511 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.