Rapport lijst met velden

Status
Niet open voor verdere reacties.
Daarvoor moet je bij Microsof zijn :) Maar 6.0 is inderdaad de meest recente versie, dus die zou ik inderdaad nemen. Maar dat 2.8 al was aangevinkt is enigszins verontrustend, want dan zou de code moeten werken. Kijk eens wat er gebeurt als je de db compileert met <Foutopsporing>, <db compileren>. Misschien komt hij andere fouten tegen die de processen in de weg zitten.
 
Dit is de code uit jouw voorbeeld, deze werkt ook gewoon in mijn database.
Code:
Option Compare Database

Function VeldenZoeken(Kruistabel As String) As String
Dim i As Integer, x As Integer
Dim sVelden As String

    Set rst = New ADODB.Recordset
    rst.CursorLocation = adUseClient
    rst.Open Kruistabel, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

    For i = 1 To rst.Fields.Count - 1
        If Left(rst.Fields(i).Name, 1) = "A" Then
            If sVelden <> "" Then sVelden = sVelden & ","
            For x = 1 To 3
                sVelden = sVelden & "'" & Chr(64 + x) & Mid(rst.Fields(i).Name, 2) & "'"
                If x < 3 Then sVelden = sVelden & ","
            Next x
        End If
    Next i
    rst.Close
    Set rst = Nothing
    VeldenZoeken = sVelden

End Function

Bij mij code staat er Option Explicit bovenaan.
En geeft dan opeens de melding: Compileerfout: een variabele is niet gedefinieerd

Heb dan nu de variabele rst gedefineerd als Dim rst As ADODB.Recordset.
En de code werkt dan zonder foutmelding.

Is rst op deze manier goed gedefineerd?
 
Helemaal jofel! Je hebt in Access twee methoden om een recordset te definiëren: ADO en DAO. Beide methodes gebruiken (uiteraard) andere commando's, dus als je een ADO commando gebruikt in een niet-specifiek gedefinieerde recordset heb je een probleem, want als je Dim rst As Recordset definieert, dan maakt Access daar een DAO recordset van. Vandaar de foutmelding.
Met Option Explicit geef je aan dat je alle variabelen (goed) moet declareren. Een verkeerd gedefinieerde variabele geeft dan dus een foutmelding. Laat je Option Explicit weg, dan is er geen check en worden alle variabelen geaccepteerd. Het is dus beter om Option Explicit te gebruiken, want dan weet je tenminste dat je project beter gaat werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan