[ Wellness @ 16.07.2009. 14:07 ] @
Imam bazu u Access-u, Radnika i problem sa maticnim brojem. Ako otvorim dosije radnika i pokusam da izmenim njegov JMBG
tako sto selektujem jedan broj i ukucam taj isti broj, on mi prijavljuje da ja vec imam radnika sa istim tim maticnim brojem, a to je u stvari taj isti radnik.Meni treba da prijavi samo ako neki drugi radnik ima isti maticni broj.Hvala unapred.
[ Aleksandar Vasic @ 16.07.2009. 14:20 ] @
Jel pitanje u vezi Access-a ili VB6? Ako si radio program u VB6, okaci nam projekat.
[ Wellness @ 17.07.2009. 08:10 ] @
Radim program u VB6, da ali ne mogu da okacim projekat.Nov sam u firmi pa resavam problem sam, pa mi treba mala pomoc.Ako mozete da mi pomognete bio bih vam zahvalan.Pozdrav.
[ captPicard @ 17.07.2009. 08:16 ] @
Napiši ovdje taj dio koda i izgled tablice sa PK i FK.
[ Wellness @ 29.07.2009. 11:28 ] @
Code:
Private Sub MaticniBrojTxt_BeforeUpdate(Cancel As Integer)
If Not IsNull(Me.MaticniBrojTxt) Then
   If ProveraMaticnogBroja([MaticniBrojTxt]) = False Then
      MsgBox vbLf & "MATIÈNI BROJ NIJE ISPRAVAN", vbExclamation, "UPOZORENJE"
      Cancel = True
      Exit Sub
   End If
End If
If DCount("*", "RADNIK", "MaticniBroj =    " & "'" & Me.MaticniBrojTxt & "'" [red]& "RadnikId <>  " & "'" & Me.MaticniBrojTxt[/red]) > 0 Then
   MsgBox vbLf & "VEÆ POSTOJI RADNIK SA MATIÈNIM BROJEM " & Me.MaticniBrojTxt & vbLf & vbLf _
   & "RadnikId : " & DLookup("RadnikId", "RADNIK", "MaticniBroj = " & "'" & Me.MaticniBroj & "'") & vbLf _
   & "Prezime i ime : " & DLookup("Imeprez", "RADNIK", "MaticniBroj = " & "'" & Me.MaticniBroj & "'") & vbLf _
   & "Radni status : " & DLookup("RadniStatus", "RADNIK", "MaticniBroj = " & "'" & Me.MaticniBroj & "'"), vbExclamation, "UPOZORENJE"
   Cancel = True
  
   Exit Sub
End If
    
End Sub


Kao sto vidite dodala sam da ako je RadnikID,koji je iz baze, razlicit od onoga editovanog u TextBoxu i ako ih opet ima vise od 0, da prijavi da vec postoji radnik sa istim maticnim brojem i to je donekle resilo problem.Sada mi kada probam da ukucam JMBG koji je vec otvoren u textBoxu ne prijavljuje da vec postoji takav radnik nego da podatak nije ispravan, sta daradim?

[Ovu poruku je menjao Wellness dana 29.07.2009. u 12:50 GMT+1]

[Ovu poruku je menjao Aleksandar Vasic dana 29.07.2009. u 13:26 GMT+1]
[ djoka_l @ 29.07.2009. 11:53 ] @
Mislim da nisi shvatio koliko ti je ozbiljno pitanje postavio captPicard. Odgovor na tvoj problem jako zavisi od toga kakav je dizajn baze. Moguće je da je JMBG spoljni ključ u desetinama drugih tabela, pa je onda APSOLUTNO ZABRANJENO DA SE ON PROMENI. Zamisli situaciju kada posle izmene JMBG ostane u desetak tabela gomila slogova koji se referenciraju na stari JMBG!!!

Ukoliko je JMBG u tabeli RADNIK primarni ključ i ako se koristi kao spoljni ključ u drugim tabelama, tada jednostavno NE SME DA SE MENJA U TVOJOJ FORMI.
[ Wellness @ 29.07.2009. 11:58 ] @
Nije JMBG primarni kljuc, nego je to RadnikId.
[ djoka_l @ 29.07.2009. 12:17 ] @
OK, to je već druga stvar. Ono što mogu da primetim na prvi pogled je da se procedura ProveraMaticnogBroja poziva sa parametrom [MaticniBrojTxt] dok se na svim drugim mestima koristi Me.MaticniBrojTxt. Ne znam VB, ali to mi jedino bode oči u ovom momentu...
[ Wellness @ 29.07.2009. 12:44 ] @
Nije to u pitanju, to je sve ok.
[ captPicard @ 29.07.2009. 13:30 ] @
Koliko sam shvatio, tvoj problem je šta ti gledaš da li već postoji taj matični broj radnika u bazi nakon šta upišeš istu tu vrijednost u text box. Problem je šta ti upisom te vrijednosti u text box-u nisi promijenila vrijednost u bazi, nego gledaš da li postoji taj JMBG u bazi, a naravno da postoji (čak i da upišeš drugu vrijednost, rezultat je isti).

Ja bi na tvome mjestu to napravio ovako:

Code:
Select JMBG from RADNICI where RADNIK_ID <> :RADNIK


:RADNIK je RADNIK_ID radnika kojeg trenutno editiraš. Tako provjeravaš da li postoji još neki radnik u bazi sa istim matičnim brojem OSIM radnika na kojem se trenutno nalaziš.

[ Wellness @ 30.07.2009. 08:44 ] @
Hvala vam puno, problem je resen.