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 » Zabrana duplog unosa
pmiroslav 30.03.2012 09:04
Predmet:Zabrana duplog unosa

U tablici tblPartneri imam polje OIB (osobni indentifikacijski broj), to je text polje koje ima 11 karajtera.
Ovo polje može biti popunjeno, a i ne mora. PoÅ¡to u tablici zbog toga ima i nepopunjenih polja ne mogu staviti jedinstveni ključ.
Zanima me dali je moguće napraviti da je prazno polje dozvoljeno, a ako se unese podatak da on ne smije ponavljati.

Kiro 30.03.2012 10:14
Predmet:Re: Zabrana duplog unosa

mislim da ovako
Prilozi:
Capture.jpg (Velicina datoteke:13.52 KB)

zxz 30.03.2012 10:31
Predmet:Re: Zabrana duplog unosa

Koliko znam nemoze ali ima rjesenje.
mas proceduru u oristan kod koja provjerava dali je neki podatak vec unesen i nju mozes staviti na exit polja ili after update mozda bolje da ne provjerava prazne.
Nemogu se sjetiti imena ali pronaci cu ti je ako je ti ne nadjes.
Provjerava u nekoj tabeli u nekom polju dali postoji podata i vraca true ili false.

pmiroslav 30.03.2012 10:35
Predmet:Re: Zabrana duplog unosa

Evo naÅ¡ao sam neÅ¡to u međuvremenu i to radi. Ali htio bi to joÅ¡ malo usavrÅ¡iti pa ću kasnije postaviti pitanje jer sada sam neÅ¡to zauzet
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub OIB_BeforeUpdate(Cancel As Integer)
  2. Dim UNOS As String
  3. Dim stDocName As String
  4. Dim stLinkCriteria As String
  5. Dim stLink As String
  6. Dim rsc As DAO.Recordset
  7.  
  8. Set rsc = Me.RecordsetClone
  9.  
  10. UNOS = Me.OIB.Value
  11.  
  12. stLinkCriteria = "[OIB]=" & "'" & UNOS & "'"
  13.    
  14.     ' Provjera dali u  tblPartneri ve postoji OIB koji se upisuje
  15.  
  16. If DCount("OIB", "tblPartneri", stLinkCriteria) > 0 Then
  17.  
  18. Me.Undo
  19.  
  20. MsgBox "Upozorenje OIB " & UNOS & " ve je ranije upisan." & vbCr & vbCr & "Biti ete preba eni na taj zapis.", vbInformation
  21.  
  22. rsc.FindFirst stLinkCriteria
  23.  
  24. stDocName = "frmKupci"
  25. stLink = "[OIB]=UNOS"
  26. DoCmd.OpenForm stDocName, , , UNOS
  27.  
  28.  
  29. 'Me.Bookmark = rsc.Bookmark
  30. End If
  31. Set rcs = Nothing
  32. End Sub

pmiroslav 30.03.2012 13:30
Predmet:Re: Zabrana duplog unosa

Evo pokušavam nešto napraviti kako bi korisniku pomogao da ne unosi duple podatke o kupcima.
na formi 'Orders by Customer' u polju 'OIB' imam proceduru koja vraća poruku ako novo upisani OIB već postoji u tblPartneri.
Nakon toga fokus se vrati na formu za pretragu partnera. Sada bih želio da kursor ode na taj rekord.
E to je problem!
Prilozi:
KupciProba.rar (Velicina datoteke:46.34 KB)

pmiroslav 30.03.2012 14:23
Predmet:Re: Zabrana duplog unosa

Eta da se ne mučite. Uspio sam naći rijeÅ¡enje i dobro radi, pa ako nekom treba primjer evo ga.
Prilozi:
KupciProba_2.rar (Velicina datoteke:64.37 KB)

roko 31.03.2012 18:39
Predmet:Re: Zabrana duplog unosa

Evo ti funkcija za provjeru valjanosti oiba po zakonu
http://www.regos.hr/...0OIB-a.pdf

Private Function KontrolnaZnamenka(ByVal s As String) As Long
Dim i As Long, n As Long
n = 10
For i = 1 To Len(s)
n = n + CLng(Mid(s, i, 1))
n = n Mod 10
If n = 0 Then n = 10
n = n * 2
n = n Mod 11
Next
n = 11 - n
If n = 10 Then n = 0
KontrolnaZnamenka = n
End Function
Public Function ProvjeriOIB(ByVal s As String) As Boolean
On Error GoTo e
If Len(s) <> 11 Then Exit Function
If Mid(s, 11, 1) <> KontrolnaZnamenka(Mid(s, 1, 10)) Then Exit Function
ProvjeriOIB = True
e:
End Function
Ulaz je
ProvjeriOIB

zxz 01.04.2012 00:57
Predmet:Re: Zabrana duplog unosa

Probaj ovo moje:
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub C_NoviKupac_Click()
  2. On Error GoTo Err_C_NoviKupac_Click
  3.  
  4.     Dim stDocName As String
  5.     Dim stLinkCriteria As String
  6.  
  7.     stDocName = "Orders by Customer"
  8.     DoCmd.OpenForm stDocName
  9.     DoCmd.GoToRecord , , acNewRec
  10.  
  11. Exit_C_NoviKupac_Click:
  12.     Exit Sub
  13.  
  14. Err_C_NoviKupac_Click:
  15.     MsgBox err.Description
  16.     Resume Exit_C_NoviKupac_Click
  17.    
  18. End Sub

PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub OIB_BeforeUpdate(Cancel As Integer)
  2. Dim Rs As DAO.Recordset
  3. Dim Podatak
  4.  
  5. Podatak = Trim(Me.OIB)
  6. If Format$(Podatak) <> "" Then
  7. Set Rs = Me.Form.RecordsetClone
  8. Rs.FindFirst "[OIB] ='" & Podatak & "'"
  9. If Rs.NoMatch Then GoTo Kraj
  10. Me.Undo
  11. Me.Bookmark = Rs.Bookmark
  12. End If
  13. Kraj:
  14. End Sub

roko 01.04.2012 09:47
Predmet:Re: Zabrana duplog unosa

nisi me ubro
tvoj kod je provjera dal postoji u bazi a moj kod je dali je struktura oib-a točna ako upiÅ¡eÅ¡ "00000000000"
program če ti dozvoliti unos ali takav oib ne postoji. Å to ako operator unese krivi oib partnera (recimo zamjeni neke brojke )
za to su ti ove funkcije
:-)

pmiroslav 01.04.2012 11:15
Predmet:Re: Zabrana duplog unosa

I jedno i drugo je odlično pa sam spojio obadva koda i primjenio ih u svom primjeru.
Prilozi:
KupciProba_3.rar (Velicina datoteke:71.96 KB)