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 » Usporedba stringa
pmiroslav 16.02.2012 22:22
Predmet:Usporedba stringa

Opet ja.
RazmiÅ¡ljam neÅ¡to kako napraviti proceduru koja bi usporedila string koji upisujem u formu, sa stringovima koji su več upisani u tablicu koja je vezana na tu formu i vrati neku poruku ako je string sličan onom koji je več upisan.
Naime imam tablicu tblPartneri i ponekad se dogodi da korisnik upiÅ¡e podatke za partnera koji več postoji pa bi bilo interesantno da dobije poruku da več ima upisa pod tim ili sličnim imenom.
Dali je to moguće s obzirom da partner može biti upisan pod imenom Ivanović Ivan, a novi upis bude Ivanović Ivo.

zxz 17.02.2012 00:07
Predmet:Re: Usporedba stringa

Evo ti procedura na ovom linku.

Nadji Vrijednost

pmiroslav 17.02.2012 12:27
Predmet:Re: Usporedba stringa

Ovo radi dobro ali nije baš to što sam mislio.
Ja bih želio da mi procedura pronađe i string koji je sličan jer kupac može biti upisan kao
Firma doo
a ja upišem
Firma d.o.o. pa to za funkciju nije isto
ili
Ivan Ivanović
i
Ivo Ivanović

evo nešto sam isprobavo u priloženom primju

ili nešto kao iz linka koji asm pronašau Googlanjem. Primjer sa onom formom Text Compare ima uz nju i neki Kod koji ja baš neznam kako koristiti
Text compare link
Prilozi:
Kupci.rar (Velicina datoteke:74.56 KB)

zxz 18.02.2012 16:06
Predmet:Re: Usporedba stringa

Znam sta hoces i razmisljam sta bi bilo najbolje a da ne bude sporo.
Nema nekog kvalitetnog rezultata sto se nebi pretrazila cijela baza svaki puta.
Moglo bi se sa opciom INstr pa pojedinacno traziti svako slovo upisano pa provjeriti napr ako ima 90% pogodaka da to ponudi ili kako je napravljeno u combu i u exelu da nudi priilikom kucanja dok je isto.
Ovo drugo i nebi sporo radilo jer nebi pretrazivao po bazi ali opnda nebi nasao ono d.o.o. ako je upisano vec doo.
Ponudio bi nakon d ali takvih vjerovatno u bazi bude puno i dok ukuca tacku vise ne vrijedi.

zxz 18.02.2012 17:26
Predmet:Re: Usporedba stringa

Evo probaj sa ovim
PreuzmiIzvorni kôd (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3.  
  4. Private Sub txtUpit_BeforeUpdate(Cancel As Integer)
  5. Dim UpitT As String, Slovo As String * 1, Uslov As String
  6. Dim mySQL As String
  7. Dim rs As Recordset
  8. Dim Db As Database
  9. Dim Brojac As Integer, Reper As Integer
  10. Dim I As Integer
  11. Dim Str As String
  12.  
  13.  
  14. UpitT = Me.txtUpit & "*"
  15.  
  16. Str = "/.q,'- "
  17. Brojac = Len(UpitT)
  18.  
  19. For I = 1 To Brojac
  20. Slovo = Mid(UpitT, I, 1)
  21. Reper = InStr(1, Str, Slovo)
  22. If Reper > 0 Then
  23. Uslov = Uslov & "*"
  24. Else
  25. Uslov = Uslov & Slovo & "*"
  26. End If
  27. Next I
  28. Set Db = CurrentDb
  29. mySQL = "SELECT * FROM qryPartneri WHERE Firma Like '" & Uslov & "'"
  30. Set rs = Db.OpenRecordset(mySQL)
  31. If rs.RecordCount > 0 Then
  32. MsgBox UpitT & " Podatak postoji"
  33. Else
  34. MsgBox UpitT & " Podatak ne postoji"
  35. End If
  36. End Sub

pmiroslav 19.02.2012 19:09
Predmet:Re: Usporedba stringa

Citiraj zxz:

Str = "/.q,'- "
Možeš li mi molim te objesniti ovaj dio koda.

zxz 19.02.2012 20:03
Predmet:Re: Usporedba stringa

Da to su ti znakovi koji mogu biti u bazi a stavljas zvjezdicu umjesto njih u pretragi.
Mozes ih prosiriti ili smanjiti po zelji.

pmiroslav 20.02.2012 15:11
Predmet:Re: Usporedba stringa

Primjerio sam da procedura ne prepoznaje riječi koje u sebi imaju slovo LJ kao napr.
Belje
Ljiljana
itd.
Prilozi:
Kupci2.rar (Velicina datoteke:75.32 KB)

zxz 21.02.2012 21:39
Predmet:Re: Usporedba stringa

Evo ti ova procedura.
Mislim da ce ti bolje ova pasati od predhodne pa da ne popravljam nju.
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub txtUpit_BeforeUpdate(Cancel As Integer)
  2. Dim Rs As Recordset
  3. Dim Db As Database
  4. Dim Podatak(1 To 2) As String, Slicni(1 To 5) As String, Znak As String, MsgSlicni As String
  5. Dim I As Integer, Duz As Integer, Poeni As Integer, Stanje As Single, X As Integer
  6. Dim Poz As Integer, StartP As Integer
  7.  
  8. If IsNull(Me.txtUpit) Then GoTo Kraj
  9. Podatak(1) = Me.txtUpit
  10. Duz = Len(Podatak(1))
  11. Set Db = CurrentDb
  12.  
  13. Set Rs = Db.OpenRecordset("SELECT Firma FROM TblPartneri")
  14.  
  15. Do While Not Rs.EOF
  16. Podatak(2) = Rs.Fields(0)
  17.     For I = 1 To Duz
  18.     If I = 1 Then
  19.     StartP = 1
  20.     Else
  21.     StartP = I - 1
  22.     End If
  23.     Znak = Mid(Podatak(1), I, 1)
  24.     Poz = InStr(StartP, Podatak(2), Znak)
  25.     If Poz = I + 1 Or Poz = I Or Poz = I - 1 Then
  26.     Poeni = Poeni + 1
  27.     End If
  28.     Next I
  29.     Stanje = Poeni / Duz
  30.     Poeni = 0
  31.     Poz = InStr(1, Podatak(2), Podatak(1))
  32.     If Poz > 0 Then Stanje = 1
  33.     If Stanje > 0.7 Then
  34.     X = X + 1
  35.     Slicni(X) = Podatak(2)
  36.     End If
  37. Rs.MoveNext
  38. Loop
  39. Rs.Close
  40. If X > 0 Then
  41. For I = 1 To X
  42. MsgSlicni = MsgSlicni & Slicni(I) & vbCr
  43. Next I
  44. MsgBox "Slicni su :" & vbCr & MsgSlicni
  45. End If
  46. Kraj:
  47. End Sub

pmiroslav 22.02.2012 12:28
Predmet:Re: Usporedba stringa

Ovo je odlično. Puno ti hvala.