Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » Generiranje broja dokumenta
pmiroslav 11.05.2012 08:53
Predmet:Generiranje broja dokumenta

Imam 'tblDokumenti' u koju upisujem zajedno više vrsta skladišnih dokumenata:
Predatnica gotovih proizvoda
MeđuskladiÅ¡na otpremnica
Povratnica
Primka

Ovisno o vrsti dokumenta koje određuje izbor sa Combom 'idDokumenta' broj dokumenta (text box 'BrojDok') bi trebao ispred broja imati različiti prefiks

Predatnica gotovih proizvoda > GP*0001
MeđuskladiÅ¡na otpremnica > MO*0001
Povratnica > PO*0001
Primka > PR*0001

Problemi je Å¡to mi se bez obzira na prefiks uvijek generira slijedeći veći broj, a želi bi da mi brojevi idu redom ovisno o prefiksu.

GP*0001; GP*0002; GP*0003
MO*0001; MO*0002

itd

Kod na formi:
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub IDdokumenta_AfterUpdate()
  2. Dim Prefix As String
  3.  
  4. Select Case Me.IDdokumenta
  5.  
  6. Case 2 ' Primka PR
  7. Me.Skladiste_Label.Caption = "KONTO"
  8. Prefix = "PR*"
  9. Me.BrojDok = BrojDokumenta(Prefix)
  10.  
  11. Case 3 'Predatnica GP
  12. Me.Skladiste_Label.Caption = "KONTO"
  13. Prefix = "GP*"
  14. Me.BrojDok = BrojDokumenta(Prefix)
  15.  
  16. Case 4 'Povratnica
  17. Me.Skladiste_Label.Caption = "KONTO"
  18. Prefix = "PO*"
  19. Me.BrojDok = BrojDokumenta(Prefix)
  20.  
  21. Case 10 'Meuskladišna otpremnica
  22. Me.Skladiste_Label.Caption = "SKLADIÅ TE"
  23. Prefix = "MO*"
  24. Me.BrojDok = BrojDokumenta(Prefix)
  25.  
  26. End Select
  27. End Sub

Modul:
PreuzmiIzvorni kôd (vbnet):
  1. Function BrojDokumenta(Pref As String)
  2. Dim Db As Database
  3. Dim SQL As String
  4. Dim Rs As Recordset
  5. Dim i As Integer
  6.  
  7. Set Db = CurrentDb
  8.  
  9. SQL = "SELECT Max(Right(BrojDok,4)) FROM tblDokumenti"
  10. Set Rs = Db.OpenRecordset(SQL)
  11. If Format$(Rs.Fields(0)) <> "" Then
  12. i = Val(Rs.Fields(0))
  13. End If
  14. i = i + 1
  15. BrojDokumenta = Pref & Format(i, "0000")
  16. Rs.Close
  17. Set Db = Nothing
  18. End Function
Prilozi:
PrimjerBrDoc.rar (Velicina datoteke:18.38 KB)

pmiroslav 11.05.2012 11:07
Predmet:Re: Generiranje broja dokumenta

Ipak sam nakon dosta muke našao rješenje. U modulu asm ispravio SQL

SQL = "SELECT Max(Right(BrojDok,4)) FROM tblDokumenti WHERE Left(BrojDok,3)= '" & Pref & "'"

dex 12.05.2012 20:29
Predmet:Re: Generiranje broja dokumenta

Evo ovako je jednostavnije. Obrati paznju da sam u tabelu tblDokumenti dodao polje BrDok kao integer, jer je mnogo komotnije traziti max nedju brojevima. U tabelu tblTransakcijeVrsta dodao sam polje prefix jer mi se tako ucinilo da je najlakse izvuci prefix za odredjenu vrstu dokumenta. Za izvor forme sam postavio QryDokumenti, tako mi je bilo najlakse da izvucem prefix. Pogledaj dogadjaj after update za IDdokumenta na formi. Pozdrav

dex 12.05.2012 20:37
Predmet:Re: Generiranje broja dokumenta

Uf! Dok provalim kako se upladuje
Prilozi:
PrimjerBrDocDex.rar (Velicina datoteke:22.37 KB)

dex 14.05.2012 23:50
Predmet:Re: Generiranje broja dokumenta

Sad je moj red da se zahvalim ZXZ-u jer mi je dao ideju kako da eliminisem polje BrDok i jos uprostim funkciju
Prilozi:
PrimjerBrDocDex2.rar (Velicina datoteke:21.00 KB)

dex 15.05.2012 00:36
Predmet:Re: Generiranje broja dokumenta

Mozda je ipak ispravnije ovo raditi sa max.
Sta ako se neki dokument izbrise?

zxz 15.05.2012 11:20
Predmet:Re: Generiranje broja dokumenta

Jeste u pravu si.
Ako ostoji dozvola brisanja onda treba zadnji last umjesto recordcount.
Ja licno ne dozvoljavam brisaje unesenih skoro nikad.

denoza 22.11.2012 00:47
Predmet:Re: Generiranje broja dokumenta

Može li se ovaj primjer od dexxxl malo prilagoditi viÅ¡ekorisničkom sučelju?

pmiroslav 22.11.2012 13:02
Predmet:Re: Generiranje broja dokumenta

Nije mi jasno Å¡to misliÅ¡ pod 'Prilagoditi viÅ¡ekorisničkom sučelju'
Ovo kako je, treba dobo raditi u takvom sučelju, jedino Å¡to tablice trebaju biti na serveru i linkovane, a kod koji generira broj dokumenta je na formi kod svakog korisnika.

denoza 23.11.2012 22:34
Predmet:Re: Generiranje broja dokumenta

Mislio sam na onu mogućnost da pretpostavimo da 2 korisnika u isto vrijeme odaberu isti dokument.