Imam problem kada vrsim pretragu po glumcu ali samo kod onih u cijem imenu ima apostrov (O'Hara), ja sam pokusavao sam nekako to da resim ali mi ne ide. Ako neko bude mogao to da mi resi bio bih mu zahvalan. Samo bih molio ako je moguce da se ne menja struktura pretrage.
Problem sa pretragom zbog apostrofa
Zaključano
Zakačeno
Probaj sa \'
Ja bi da ostane samo apostrof ako moze.
Potpis
Code:
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Dim Kriterija
Dim Pozicija As Integer
Me.TraziFilm = ""
Kriterija = Me.TraziGlumac
Start:
Pozicija = InStr(1, Kriterija, "'")
If Pozicija > 0 Then
Kriterija = Left(Kriterija, Pozicija - 1) & "?" & Mid(Kriterija, Pozicija + 1)
GoTo Start
End If
stLinkCriteria = "((QFilm.Glumac Like '*" & Kriterija & "*'))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Dim Kriterija
Dim Pozicija As Integer
Me.TraziFilm = ""
Kriterija = Me.TraziGlumac
Start:
Pozicija = InStr(1, Kriterija, "'")
If Pozicija > 0 Then
Kriterija = Left(Kriterija, Pozicija - 1) & "?" & Mid(Kriterija, Pozicija + 1)
GoTo Start
End If
stLinkCriteria = "((QFilm.Glumac Like '*" & Kriterija & "*'))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Potpis
zxz
Svi zaboravili da se moze koristiti i " umesto '
I svi smo zaboravili da se znakovi ' ili " u stringu z apretrazivanje zamenjuju dupliranim znakovima ' postaje '' a " postaje ""
Evo kako radi, prva iteracija. Upotrebimo " za string delimiter i onda ce ' da prodje glatko.
Kljuc je ovde:
stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
"" ispred * se prevodi u "*
"' posle * se prevodi u *"
medjutim ovo nece proci ako je me.TraziGlumac na primer o"hara umesto o'hara. Zato je bolje uraditi ovako:
stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"
Provereno, radi. Dakle, ovako:
Ostarilo se ali nije s ezaboravilo programirnje :-)
:-)
I svi smo zaboravili da se znakovi ' ili " u stringu z apretrazivanje zamenjuju dupliranim znakovima ' postaje '' a " postaje ""
Evo kako radi, prva iteracija. Upotrebimo " za string delimiter i onda ce ' da prodje glatko.
Code:
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Me.TraziFilm = ""
stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Me.TraziFilm = ""
stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Kljuc je ovde:
stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
"" ispred * se prevodi u "*
"' posle * se prevodi u *"
medjutim ovo nece proci ako je me.TraziGlumac na primer o"hara umesto o'hara. Zato je bolje uraditi ovako:
stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"
Provereno, radi. Dakle, ovako:
Code:
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Me.TraziFilm = ""
' stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Private Sub TraziGlumac_AfterUpdate()
Dim stLinkCriteria As String
Dim ImaNema As Integer
Me.TraziFilm = ""
' stLinkCriteria = "((QFilm.Glumac Like ""*" & Me!TraziGlumac & "*""))"
stLinkCriteria = "((QFilm.Glumac Like ""*" & Replace(Me!TraziGlumac, Chr(34), Chr(34) & Chr(34)) & "*""))"
MsgBox stLinkCriteria
ImaNema = DCount("[Glumac]", "QFilm", stLinkCriteria)
If ImaNema = 0 Then
MsgBox "Nema tog glumca", vbCritical, "Poruka"
Exit Sub
Else
Me.Filter = stLinkCriteria
Me.Uslov.Requery
DoCmd.ApplyFilter , stLinkCriteria
Me.ObrisiUslov.Visible = True
End If
End Sub
Ostarilo se ali nije s ezaboravilo programirnje :-)
:-)