Amelasar 07.04.2011 19:33
Predmet:Provjera podatka u tabeli

Pozdrav svima.

Imam jedan veliki problem.
Na koji nacin mogu provjeriti da li se odredjeni podatak nalazi u tablici?
Ako se podatak nalazi da me pusti dalje a ako ne da napise poruku.

Lijep pozdrav, AMELA.

zxz 07.04.2011 20:05
Predmet:Re: Provjera podatka u tabeli

Ova procedura provjerava dali u nekoj tabeli postoji odredjeni podatak i ako ima vraca true a ako nema false.
Proceduru kopirati u neki modul.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function NadjiVrijednost(ImeTabele As String, ImePolja As String, _
  2.                         Vrijednost As Variant) As Boolean
  3.  
  4. Dim db As Database
  5. Dim rst As DAO.Recordset
  6. Dim SQL, A As Variant
  7. '*****************************************************************************************
  8. 'Ova funkcija sluzi za trazenje zadanog podatka u zadanoj Tabeli u
  9. 'zadatom polju i vraca vrijednost
  10. 'ako ima True i ako nema podatka False
  11. 'Ulazne vrijednosti su: ImeTabela kao string ImePolja kao string i
  12. 'Vrijednost kao trazena vrijednost
  13. 'Ako je vrijednost string onda se pise pod znacimea navoda
  14. 'Ako je vrijednost datum onda se pise kao: "#05/05/2000#"
  15. 'Ako je vrijednost Yes/No onda se pise kao: Yes=-1 No=0
  16. 'Ako je vrijednost broj?ana onda se pise broj bez znakova navoda
  17. 'Autor funkcije(ZXZ)
  18. '********************************************************************************************
  19. Set db = CurrentDb() 'Setovanje baze
  20. A = Val(Vrijednost) 'Brojcana vrijednost ulaznog podatka ako je ima  
  21. If A <> Vrijednost Then 'Ako je brojcana vrijednost razlicita od _
  22.                         vrijednosti onda nije broj
  23. If Left(Vrijednost, 1) <> "#" Then 'Ako je na prvom mjestu znak # _
  24.                                     onda je datum
  25. Vrijednost = "'" & Vrijednost & "'" 'Posto je string treba dodati znake _
  26.                                     navoda " "
  27. End If
  28. End If
  29. SQL = "SELECT " & ImeTabele & "." & ImePolja & " FROM " & ImeTabele _
  30. & " WHERE (((" & ImeTabele & "." & ImePolja & ")=" & Vrijednost & "));"
  31.  
  32. Set rst = db.OpenRecordset(SQL) 'Setovanje tabele
  33.  
  34. If rst.RecordCount = 0 Then 'Ako je broj redova 0 tada
  35. NadjiVrijednost = False ' NadjiVrijednost je False
  36. Else 'Inace
  37. NadjiVrijednost = True 'NadjiVrijednost je True
  38. End If
  39. Set db = Nothing
  40. rst.Close 'Zatvori rekordset(Qyery)
  41. End Function
U tvojoj proceduri napises:
dim a as boolean
a=NadjiVrijednost(ImeTabele As String, ImePolja As String, Vrijednost As Variant) As Boolean
if a=true then
nesto da uradi
else
da uradi nesto drugo
endif

Amelasar 07.04.2011 20:14
Predmet:Re: Provjera podatka u tabeli

Hvala ti puno.

Citat:
a=NadjiVrijednost(ImeTabele As String, ImePolja As String, Vrijednost As Variant) As Boolean

Na toj liniji javlja mi gresku?

Poz

zxz 07.04.2011 20:15
Predmet:Re: Provjera podatka u tabeli

Ako ti treba samo na jednom mjestu moze to i jednostavnije.
Ova procedura se nalazi u koristan kod na forumu i ima strukturu da se moze koristiti sa vise mjesta.
U tvom slucaju bi moglo i ovako:
dim SQL as string
dim Rs as recordset
Dim Db as database
Dim Uslov
Ako je uslov string ide:
SQL="SELECT ImepoljaUslova FROM ImeTabele WHERE ImePOljaUslova='" & ulov & "'"

ako je Broj
SQL="SELECT ImepoljaUslova FROM ImeTabele WHERE ImePOljaUslova="& ulov

ser db=Currentdb()
Set Rs=Db.Openrecordset(SQL)
if rs.Recordcount=0 tnen'znaci nema podataka
ako nema podatka
else
ako ima podatak
endif

zxz 07.04.2011 20:17
Predmet:Re: Provjera podatka u tabeli

a=NadjiVrijednost(ImeTabele As String, ImePolja As String, Vrijednost As Variant) As Boolean
Jesi li ime tabele i ime polja stavile u znake navoda a i vrijednost ako je strin.
Najbolje compaktiraj obrisi ono sto ne treba pa zakaci na forum.

Amelasar 07.04.2011 20:30
Predmet:Re: Provjera podatka u tabeli

Riješila sam sa procedurom:
Citat:
dim SQL as string
dim Rs as recordset
Dim Db as database
Dim Uslov
Ako je uslov string ide:
SQL="SELECT ImepoljaUslova FROM ImeTabele WHERE ImePOljaUslova='" & ulov & "'"

ako je Broj
SQL="SELECT ImepoljaUslova FROM ImeTabele WHERE ImePOljaUslova="& ulov

ser db=Currentdb()
Set Rs=Db.Openrecordset(SQL)
if rs.Recordcount=0 tnen'znaci nema podataka
ako nema podatka
else
ako ima podatak
endif

Hvala.
LP, Amela.