Afhandeling van Quote in Me!<veldnaam> bij een rs.FindFirst

Status
Niet open voor verdere reacties.

bikerron

Gebruiker
Lid geworden
9 mei 2009
Berichten
236
Hallo,

Een Formulier waarmee ik namen opzoek uit een tabel loopt stuk op het feit dat er de naam begint met een Quote
Ik gebruik de volgende VB code:
Code:
 Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Naamcascowerf] = '" & Trim(Me![Kiescascowerf]) & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Als ik naar de inhoud kijk van Me![kiescascowerf] dan zie ik als eerste teken een Quote, hetgeen klopt.
Blijkbaar moet ik nog iets doen aan rs.Findfirst "[Naamcascowerf]....

Enig idee hoe ik dit kan verhelpen?

Ron
 
Weinig aan te doen; de apostroph zit nu eenmaal in de naam, en is in Access een beschermd teken. Je zou de tekst middels een recordset eerst kunnen vervangen door een woord, iets als:

Code:
Set rs = db.OpenRecordset("select * from " & strTable & " order by " & strField & " desc;")
   rs.MoveFirst
   Do While Not rs.EOF
        rs.Edit
        rs.Fields(strField).Value = Replace(rs.Fields(strField).Value, "'", "apostrof")
        rs.Update
dan je zoekactie, en dan weer terugzetten:
Code:
        rs.Edit
        rs.Fields(strField).Value = Replace(rs.Fields(strField).Value, "apostrof", "'")
        rs.Update
 
Michel,
Bedankt voor alweer een oplossing.
Maar toch nog even een vraag. Er wordt "gezeurd" over: Do zonder Loop
Ik heb een Exit Do geplaatst maar die zal dan wel verkeerd staan, op diverse locaties binnen deze "gebeurtenis".
(nog even een tussen vraag: Is het misschien "sneller / efficiënter" als ik dit in een SQL afhandel i.p.v. binnen VB?)

Code:
Private Sub Kiescascowerf_AfterUpdate()
 ' De record zoeken die overeenkomt met het besturingselement
    Dim rs As Object

 'Afhandeling records met Apostrof

Set rs = db.OpenRecordset("select Naamcascowerf from " & Cascowerven & " order by " & Naamcascowerf & " desc;")
   rs.MoveFirst
   Do While Not rs.EOF
        rs.Edit
        rs.Fields(Naamcascowerf).Value = Replace(rs.Fields(Naamcascowerf).Value, "'", "apostrof")
   [B] Exit Do[/B]
   rs.Update

   
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[Naamcascowerf] = '" & Trim(Me![Kiescascowerf]) & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
  
  ' Expose the new list of contacts
    Me.Kiescascowerf.Requery
    Me.Kiescascowerf.Dropdown
    
    
End Sub

Ron
 
De Exit Do stopt na het eerste record; lijkt mij niet de bedoeling. Waarom zit-ie er überhaupt tussen?
 
Klopt; lees je code er op na: er zit geen LOOP in. Dus je start een loop zonder een End clausule.
 
Andere benadering, en een stuk eenvoudiger en safer.
Vervang jouw code:
rs.FindFirst "[Naamcascowerf] = '" & Trim(Me![Kiescascowerf]) & "'"

Door:
rs.FindFirst "[Naamcascowerf] = " & chr$(34) & Trim(Me![Kiescascowerf]) & chr$(34)
of
rs.FindFirst "[Naamcascowerf] = '" & Replace(Trim(Me![Kiescascowerf]),"'","''") & "'"

Beide oplossingen werken, zelf gebruik ik de 1ste.
 
Laatst bewerkt:
Harry,

Je geboden oplossing werkt. (Ik heb de eerste genomen.) Zeer bedankt.

Michel, ook jij bedankt voor het meedenken.


Ik sluit de vraag

Ron
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan