Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 2.618 pregleda

Najnovija ↓

Problem sa pretragom zbog apostrofa 11.07.2011. u 14:43 · pre 186 meseci #1
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.
Potpis
[email protected]=
Re: Problem sa pretragom zbog apostrofa 11.07.2011. u 19:49 · pre 186 meseci #4
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

Potpis
zxz
Re: Problem sa pretragom zbog apostrofa 12.07.2011. u 15:05 · pre 186 meseci #5
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.
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


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


Ostarilo se ali nije s ezaboravilo programirnje :-)

:-)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme