[ 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 |
[ sanibo @ 08.10.2002. 12:52 ] @
[ 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 Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|