Centar za edukaciju-BiH



#1 30.03.2012 08:04
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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.
Pozdrav
↑  ↓

#2 30.03.2012 09:14
Kiro Van mreze
Clan
Registrovan od:04.02.2009
Postovi:119


Predmet:Re: Zabrana duplog unosa
mislim da ovako

Slicice prilozenih slika:
Capture.jpg
Tip datoteke:Informacije o tipu datoteke za:jpg jpg
Preuzimanja:332
Velicina datoteke:13.52 KB
Velicina slike: 428 x 105 Pikseli

↑  ↓

#3 30.03.2012 09:31
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#4 30.03.2012 09:35
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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

Pozdrav
↑  ↓

#5 30.03.2012 12:30
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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:
Informacije o tipu datoteke za:rar  KupciProba.rar
Preuzimanja:337
Velicina datoteke:46.34 KB


Pozdrav
↑  ↓

#6 30.03.2012 13:23
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


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:
Informacije o tipu datoteke za:rar  KupciProba_2.rar
Preuzimanja:366
Velicina datoteke:64.37 KB


Pozdrav
↑  ↓

#7 31.03.2012 17:39
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


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
↑  ↓

#8 31.03.2012 23:57
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 01.04.2012 08:47
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


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
:-)
↑  ↓

#10 01.04.2012 10:15
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Zabrana duplog unosa
I jedno i drugo je odlično pa sam spojio obadva koda i primjenio ih u svom primjeru.

Prilozi:
Informacije o tipu datoteke za:rar  KupciProba_3.rar
Preuzimanja:355
Velicina datoteke:71.96 KB


Pozdrav
Ovaj post je ureden 2 puta. Posljednja izmjena 01.04.2012 10:20 od strane pmiroslav. ↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 12: 14 pm.