Centar za edukaciju-BiH



#1 16.04.2014 10:33
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Redni brojevi, kako izbjeći greÅ¡ku?
Pozdrav.

U funkciji imama dio kojim određujem broj gotovinskog računa:
PreuzmiIzvorni kôd (vbnet):
  1. Dim I As Integer
  2. I = DMax("[FiskalniBroj]", "tblProdaja") + 1
  3. Me.FiskalniBroj = I

Brojevi idu u nizu 1,2,3,4 itd.
U par navrata dogodilo se iz meni nepoznatog razloga da se jedan broj preskoči, a kako brojevi računa moraju imati jedinstveni slijed, to se ne smije događati.
Ima li prijedlog kako da spriječim preskakanje broja.
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 16.04.2014 10:34 od strane pmiroslav. ↑  ↓

#2 16.04.2014 11:57
nevsad Van mreze
Clan
Registrovan od:01.09.2010
Postovi:231


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
I =nz(DMax("[FiskalniBroj]", "tblProdaja")) + 1

ja koristim jos nz

pokusaj
pozdrav
↑  ↓

#3 16.04.2014 12:05
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Do preskakanja bi moglo doci zbog jednovremenosti u mrezi tj. da se desi da dvoje zajedno sa dva razlicita compa rade.
Jos se moze desiti i ako neko udje pa otvori novi rekord te ga pobrise i onda ne izlazi nego nastavi.
Najbolji i najsigurniji nacin je da nema brisanja.

Dobro bi bilo kada bi dokucio kada se to desava pa bi se mozda moglo vise uciniti.
Ovako mozes jos napraviti provjeru tj. da provjris koliko imas rekorda u tabeli jer broj rekorda +1 bi bio tvoj novi broj.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#4 16.04.2014 14:34
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Kaj mene nema preskoknuvajne bidejki kako sto rece ZXZ nema brisejne na racunite , odnosno ima samo korekcija na nekoi polijna dokolku e potrebno, inaku jas kaj mene zemam vo obzir poveke parametri za redniot broj kako sto e Magacinot,Tip na dokument i slicni raboti.
↑  ↓

#5 16.04.2014 16:16
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Citiraj zxz:
Do preskakanja bi moglo doci zbog jednovremenosti u mrezi tj. da se desi da dvoje zajedno sa dva razlicita compa rade.
Jos se moze desiti i ako neko udje pa otvori novi rekord te ga pobrise i onda ne izlazi nego nastavi.
Najbolji i najsigurniji nacin je da nema brisanja.

Dobro bi bilo kada bi dokucio kada se to desava pa bi se mozda moglo vise uciniti.
Ovako mozes jos napraviti provjeru tj. da provjris koliko imas rekorda u tabeli jer broj rekorda +1 bi bio tvoj novi broj.
U ovom slučaju je samo jedan korisnik tako da mogu isključiti uzrok zbog jednovremenosti. Pitao sam korisnika dali se desilo neÅ¡to nepredviđeno a on mi kaže da nije
A Å¡to se tiče provjer koliko ima rekorda i to sam imao:

I = DCount("[FiskalniBroj]", "tblProdaja") + 1

I tu su zapravo počeli problemi

imam recimo : 1,2,3,4,6. Znači zadni broj je 6, a imam pet rekorda pa se ponovo generira broj 6 i dobijem duli broj u primarnom ključu
Pozdrav
↑  ↓

#6 16.04.2014 16:57
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Uf to mijenja stvar ako ima samo jedan korisnik.
Njabolje bi bilo kada bi imao neki laksi primjer ako ne probaj ovako:
Na on current stavi sledeci kod.
I = DCount("[FiskalniBroj]", "tblProdaja") + 1
me.fiskalniBroj.defaultValue=I

Naravno polje FiskalniBroj mora biti zakljucano.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 16.04.2014 18:19
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Jas kaj mene go imam vaka reseno

Smetka_Broj.DefaultValue = SlijedenBroj()

Private Function SlijedenBroj()
Dim Broj As String
Broj = DMax("Smetka_Broj", "tblSmetki", "Magacin=" & Forms![frmLogon]![cboMagacin]) + 1
If IsNull(Broj) Or Broj = "" Then Broj = 1
SlijedenBroj = Broj
End Function
↑  ↓

#8 16.04.2014 20:24
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Stavit ću skraćeni primjer u kojem se javlja problem. Namjerno sam prekočio jedan broj da se vidi Å¡to se deÅ¡ava.

Prilozi:
Informacije o tipu datoteke za:rar  probaMp.rar
Preuzimanja:287
Velicina datoteke:23.63 KB


Pozdrav
↑  ↓

#9 16.04.2014 20:51
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
eve probaj vaka

Prilozi:
Informacije o tipu datoteke za:rar  probaMp.rar
Preuzimanja:307
Velicina datoteke:31.10 KB

↑  ↓

#10 16.04.2014 21:13
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Razlog preskakanja je to sto ako pogrijesis nacin placanja pa se vratis nazad da promijenis sada ce ponovo upisati broj koji je veci ne za 1 od trenutnog.
Najbolje bi bilo staviti sve na dfault value kao sto je Gjoreski predlozio medjutim kod tebe to nemoze koliko sam mogao zakljuciti jer ti ides redno za svaki nacin placanja zasebno pa se nemoze generisati broj prije odabira nacina placanja.
Preostaje ti da ovo svoje pokrpas:
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub NacinPlacanjaID_AfterUpdate()
  2. Dim I As Integer
  3. Dim criterij As String
  4.  
  5. criterij = "NacinPlacanjaID=" & Me.Fiskal    ' Number
  6. I = DCount("[OrderID]", "tblProdaja", criterij) + 1
  7. Select Case Me.Fiskal
  8. Case 1      'Gotovina, fiskalni ra
  9. un
  10.  
  11. If Me.FiskalniBroj = 0 Then
  12.     Me.FiskalniBroj = I
  13. End If
  14.  
  15.     'Me.FiskalFormat = I & "/" & DLookup("OznakaPP", "Q_Firma") & "/1"
  16.  
  17.  
  18. Case Else   'Ostali na
  19. ini plaanja
  20.    
  21. End Select
  22. End Sub

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 7: 10 pm.