Call functie vanuit recordset

Status
Niet open voor verdere reacties.

test1000

Gebruiker
Lid geworden
7 jul 2017
Berichten
258
Hoi,

Ik open een recordset.
Wanneer de waarde van een veld A is dan call A.
Wanneer de waarde van een veld B is dan call B.

Code:
Set rst = CurrentDb.OpenRecordset("SELECT * FROM ..............
        
            If Not (rst.EOF And rst.BOF) Then
                rst.MoveFirst
                    Do While Not rst.EOF
                        If rst!nummer = "1" 
                            Call Opvullen
                        End If
                        rst.MoveNext
                    Loop
            End If

Code:
Private Sub opvullen()
        Dim naam as string
        Naam = rst!naam
        De code van verwerken
End Sub

Maar hier krijg ik een foutmelding 'Object vereist'.

Wanneer ik de code in de "IF - END IF" plaats werkt het wel.
Dus vermoed dat door de call de waarde van RST! niet meer kent.

Wat kan een oplossing zijn ?
Is het mogelijk om vanuit een recordset een call function aan te roepen ?

Met vriendelijke groeten.
 
Je gebruikt het woord "calll" erg vaak, en elke keer overbodig :). Maar je geeft zelf het antwoord gelukkig al; als je een functie aanroept vanuit een andere functie, dan kun je geen objecteigenschap meegeven, tenzij dat object binnen die andere functie ook is geopend. Bij een recordset kan dat in dit geval niet. Zo moet het wél werken:

Code:
Sub testje()

    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Tabel")
    If Not (rst.EOF And rst.BOF) Then
        Do While Not rst.EOF
            If rst!nummer = "1" Then
                Opvullen rst!naam
            End If
            rst.MoveNext
        Loop
    End If

End Sub

Code:
Private Function Opvullen(str As String)
Dim naam As String
    naam = str
    'Etc.
End Function

Je geeft dus de te behandelen waarde mee als parameter aan de functie.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan