[ sanibo @ 08.10.2002. 12:52 ] @
1.Kako da nateram Access da broji od 0001 a ne od 1. Znaci potrebno mi je kod unosa da za prvi unos bude 0001, sledeci automatski 0002,.....itd.

Hvala i pozdrav
[ degojs @ 08.10.2002. 18:53 ] @
Brojevi u bazi mogu da budu 1,2.. a ono sto tebi treba jeste da samo
te brojeve pravilno formatiras prilikom ispisa.
[ Simke @ 09.10.2002. 09:19 ] @
Jel mislis na Autonumber field u tabeli?
[ sanibo @ 09.10.2002. 09:37 ] @
Da nebi bilo lose ako bi mogao Autonumber, ili sa nekom funkcijom da imam brojanje unosa polja ali da bude kao sto rekoh 0001,0002, ......itd, znaci kad unosim u neku tabelu podatke da on broji recorde na moj nacin, a ujedno to bi mi bio PK-primarni kljuc.
[ dwarf @ 09.10.2002. 17:18 ] @
Dakle, kada otvoris tabelu u Design modu, i kliknes na polje koje ti je AutoNumber, videces dole u prikazu jedno polje koje se zove Format. Ne znam da li je to to, ali lupi tu "F1" i dobices podatke ocustom formatima. Dalje ces morati sam.

Ako nemas instaliran Help za Access ili ga instaliraj ili idi na MSDN pa pokusaj to tamo da nadjes.
[ Simke @ 09.10.2002. 20:29 ] @
Autonumber ti nece pomoci, tako da ces morati da probas sledece.
Moraces da napises funkciju koja pravi string (ne broj), posto ako stavis 000 ispred broja access ce izbaciti te nule. U posebnoj tabeli recimo stavi jedno polje koje ce sluziti kao counter, koji ce ta funkcija da poveceava za 1 i da pravi string od toga. Onda taj string lepo stavis u tvoju tabelu (text field naravno).
Nije uopste komplikovano, skoro sam radio nesto slicno gde je svaki broj morao ispred sebe da ima "N", pa ako te zanima mogu da iskopam code i da ga postavim ovde.
[ sanibo @ 10.10.2002. 06:24 ] @
I mislio sam da je neka f-ja u pitanju, jer mi autonumber izbacivao one nule ispred broja, pa ako te ne mrzi Simke nabaci ovde svoj kod da pogledam kako to ide.
Hvala, pozdrav
[ Simke @ 10.10.2002. 20:12 ] @
Public Function GetNSequence() As String
'This function is used to provide the next N packet number to be used
gstrFunctionName = "GetNSequence"
gstrModuleName = "basGeneralFunctions"

On Error GoTo ProcError

Dim dbTSPE As Database
Dim rsSettings As Recordset
Dim strPacketNo As String
Dim intStrLength As Integer
Dim varNumSequence As Variant
Dim strLastPacketNo As String

Set dbTSPE = CurrentDb()
Set rsSettings = dbTSPE.OpenRecordset("tspeSettings", dbopendynaset)
With rsSettings
If .RecordCount = 0 Then
MsgBox "System settings have not been defined! Please contact technical support.", vbCritical + vbOKOnly, "Packet Entry"
Exit Function
Else
.MoveFirst
.Edit
If IsNull(!nsequence) = True Then
'Starting up program for the first time?
'use N0 as first packet no.
!nsequence = "N0"
strPacketNo = "N0"
Else
'extract the number from a string and increase by one to get the next number in sequence
strLastPacketNo = !nsequence
intStrLength = Len(strLastPacketNo)
varNumSequence = Right(strLastPacketNo, intStrLength - 1)
varNumSequence = varNumSequence + 1
strPacketNo = "N" & varNumSequence
!nsequence = strPacketNo
End If
.Update
.Close
End If
End With

Set rsSettings = Nothing
Set dbTSPE = Nothing

GetNSequence = strPacketNo

ProcExit:
Exit Function

ProcError:
Dim intError As Integer
intError = ErrorHandler(gstrFunctionName, gstrModuleName)
GoTo ProcExit

End Function

Evo funkcije, u ovom slucaju stavlja se N pre broja. Ti ces morati da citas string s leve strane, dok ne naidjes na nulu. Ako ce program koristiti 2 ili vise usera, kada funkcija vrati rezultat nije lose da proveris da li se taj string vec ne nalazi u bazi, i ako vec jeste tu onda pozovi funkciju opet.
[ sanibo @ 11.10.2002. 06:05 ] @
Hvala Simke, sad cu da probam kako ce to kod mene da bude.
pozdrav, sanibo
[ stojce @ 20.10.2002. 20:19 ] @
Samo format!

Right("00000" & oRs.Fields("RBroj"), 5)

- oRs.F...=1
rezultat "00001"
[ degojs @ 21.10.2002. 07:06 ] @
Ajme ljudi..
Lepo smo savetovali formatiranje, pa je stojce predlozio jedno resenje. Drugo bi bilo koristenje format( x,"0000") u samom Access-u.
Potrebno je samo formatirati ono sto se nalazi u auto-number koloni. Dakle, trkom u Query builder, dodaj novu kolonu:

NovaKolona:format(autoID,"000000000")

i problem resen ('autoID' je ime auto-number kolone).

pozdrav