[ M3RiM @ 18.04.2008. 13:56 ] @
vec sam gledao dosta tema o autonumber-u ali svak daje odgovor "compact and repair"

pravim bazu koja ce vise koristiti kao program u koji se unose neki podaci kako bi se racunale neke stvari. i za svaki novi primjer korisnik ce isprazniti tabelu i unositi nove podatke.

medjutim potrebno mi je da autonumber pocinje svaki put od 1.

e sad bilo bi glupo da ja pisem neka dodatna objasnjenja za to kako korisnik da resetuje autonumber,tj. da dodje do opcije compact and repair.


evo prijedlog. da li mogu da napravim tabelu u koja je prazna. i kada korisnik zeli raditi novi primjer da klikne na dugme koje ce dati opciju da tu tabelu (praznu) presnimi preko tabele u koju se unose podaci. a da mi pri tome forma ne gubi znacaj. mislim da preko forme mogu i dalje unositi te podatke u tu novo snimljenu tabelu, a da mi ta prazna tabela i dalje ostaje ne dotaknuta. i na taj nacin autonumber pocinje od 1 jer se prakticnu u tu tabelu unose tek po prvi put podaci.

da li je to mguce i kako.

hvala
[ domaci_a_nas @ 18.04.2008. 14:59 ] @
To je jako zanimljiv koncept po meni, možda je ono što ti treba DoCmd.CopyObject , "NovaTabela", acTable, "PraznaTabela"

Da su korisnici mojih programa tražili Undo u SubFormi, to jest poništavanje unetih podataka, mislim da bih to mogao da ostvarim jedino preko neke privremene tabele za unos podataka. Problem kod AutoNumber polja je što ako korisnik obriše neki podatak, onda se sekvenca remeti. Mislim da bi ti ipak bilo lakše da dodaš još jedno polje, moguće i Byte i programski da održavaš sekvencu rednih brojeva, ta operacija se dosta brzo izvršava, praktično trenutno.
[ lukeguy @ 18.04.2008. 15:29 ] @
i ja mislim da za to što tebi treba bolje je da ne koristiš autonumber.
[ M3RiM @ 18.04.2008. 22:41 ] @
pa dobro, meni je svejedno sta koristio, ali recimo neki korisnik ce unijeti 50 unosa, neko drugi ce 150. pa kako da to onda uradim, da mi on automatski unosi onoliko rednih brojeva koliko korisnik unosa zeli unijeti. a da ih nebude viska.
evo to bi bio neki programcic gdje se skoro nikad nebi unosilo preko 150 unosa. ali eto nek to bude to. znaci 150 je dosta. i ako neko unese npr. 68 unosa da zadnji redni broj bude 68 a prvi 1.

:)
[ Getsbi @ 19.04.2008. 06:56 ] @
Za kolonu rednog broja u tabeli odaberi tip podatka Number, Integer (celi brojevi do 36000). Ako neka druga kolona već nije PK, onda ovu postavi da bude primarni ključ.To će obezbediti jedinstvenost zapisa u tabeli po toj koloni.
Na formi za unos u Properties polja rednog broja za osobinu Defolt value postavi:
= Nz(DMax("[PoljeUnosa]";"TabelaIliQuery");0) +1
Tako će ti Access nuditi prvi veći, a redni brojevi će ići od 1 do n u rastućem nizu. Polje Enabled postavi na No, tako da redosled nećeš moći slučajno da pokvariš.
[ domaci_a_nas @ 19.04.2008. 09:29 ] @
Postoji i alternativno rešenje, da na glavnu formu postaviš jedan textbox čiji bi controlsource bio =[Child0].[Form].[SelTop] koji bi ti prikazivao poziciju trenutnog reda, ja sam to uradio pošto mi je trebala maximalna širina subforma.
[ M3RiM @ 20.04.2008. 15:17 ] @
hvala Getsbi. ti si kralj. nemas pojma koliko sam se mucio da bi to postigao i eto ga. hehehe jednostavno.

a ovaj prijedlog od domaci_a_nas nisam probao ali probat cu.

hvala vam momci.
[ Catch 22 @ 22.04.2008. 02:18 ] @
To smo raspravljali nedavno ovde:
http://www.elitesecurity.org/t316473-Polje-AutoNumber-kao

Gde sam dao (nešto proširenu verziju) istog izraza koji još vodi računa i o kalendarskoj godini...
Tj. svake godine započinje brojanje od 1
http://www.elitesecurity.org/p1911629



PS
Mala napomena: PK neka bude posebna ID_NAZIV autonumber kolona, a za redni broj postavi kako je Getsbi predložio
Citat:
odaberi tip podatka Number, Integer (celi brojevi do 36000)

...uz napomenu da samo definišeš u properties: Indexed No Duplicates pošto u istoj tabeli ne možeš da imaš dve autonumber kolone
[ vstefanovicc @ 01.03.2009. 23:10 ] @
Molim Vas pomozite... Nikako mi ne ide da unesem string koji je Getsbi dao. Naime kada pokusam da ga, kako je napisano upisem u Default value pojavi mi se poruka:
"The expression you entered contains invalid syntax.
You omitted an oparand or operator, you entered an invalid character or comma, oryou entered tet without surrounding it in quotation marks."

Molim da mi pomognete oko ovog polja, a ja dostavljam svoju bazu kao osnovu...
[ Getsbi @ 02.03.2009. 07:04 ] @
Getsbi nije rekao da možeš na taj način da kontrolišeš tvoje polje tipa autonumber. Pročitaj temu još jednom.
[ domaci_a_nas @ 02.03.2009. 08:35 ] @
Citat:
Getsbi: Za kolonu rednog broja u tabeli odaberi tip podatka Number, Integer (celi brojevi do 36000).
A lepo kaže na MSDN:
Citat:
Integer variables can hold values between -32,768 and 32,767
P.S. Zar ste očekivali nešto konstruktivno od mene?
[ Trtko @ 02.03.2009. 08:39 ] @
Vjerojatno ti je greška u regional seting , što je i mene zezalo a domac_a_nas uocio,
promaj staviti zarez umjesto ;


= Nz(DMax("[PoljeUnosa]";"TabelaIliQuery");0) +1
= Nz(DMax("[PoljeUnosa]","TabelaIliQuery"),0) +1
[ vstefanovicc @ 02.03.2009. 10:53 ] @
Getsbi, tema i nije vezana za ovo moje pitanje ali si TI dao predlog za kolonu ili polje rednog broja.

Hvala za pomoc, uocio sam da umesto detalja TabelailiQuery treba uneti naziv Tabele u koju se podatak unosi. Ovo kao pomoc za one koji kao i ja znaju vrlo malo o ovim stvarima
Hvala jos jednom.
[ Getsbi @ 02.03.2009. 12:01 ] @
Nikola je u pravu. To sam ja očigledno lupio cifru