foutmelding:variable niet type variant

Status
Niet open voor verdere reacties.

RSpan

Gebruiker
Lid geworden
10 jun 2009
Berichten
166
Beste forumleden

bij het gebruik van de resetknop in een formulier waarbij de cbox leeg gemaakt moet worden krijg ik de foutmelding "u probeert een NULL-waarde toe te wijzen aan een variabele die niet van het gegevenstype Variant is" ik heb de code hieronder gezet.
deze code gebruik ik in andere formulieren ook (met andere namen natuurlijk) en daar werkt hij probleemloos.
Ik kan de fout niet vinden, misschien kijk ik er overheen, misschien dat iemand anders het zo ziet.

ik ben benieuwd naar jullie reacties

Groet
René

Code:
Private Sub Pagina83_Click()
Private Sub cmdReset1_Click()
    Me.CboSelectName1 = Null
    
End Sub

Private Sub cmdGenerateReport11_Click()
    On Error GoTo Err_cmdGenerateReport11_Click

    Dim stDocName As String
    Dim stWhere As String
   
        If IsNull(Me.CboSelectName1) Then
            MsgBox "U moet nog een keuze maken"
         Else
            If Not IsNull(Me.CboSelectName1) Then
                stWhere = "[OrganisatieID]=" & Me.CboSelectName1 & " And "
                blnTrim = True
            End If
             
                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
    
                                     
                stDocName = "rptfactOrg2"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
                'DoCmd.OpenReport stDocName, acViewNormal, , stWhere
                DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", False
                DoCmd.Close
                          
                
            End If
        
    
Exit_cmdGenerateReport11_Click:
    Exit Sub

Err_cmdGenerateReport11_Click:
    MsgBox Err.Description
    Resume Exit_cmdGenerateReport11_Click

End Sub
 
mischien kun je het veld omzetten naar een ander gegevenstype, of een waarde invullen die geen betekenis heeft (zoals een spatie ofzo)
 
Moet dat niet



Of



zijn?

Ik heb je beide voorbeelden geprobeerd maar dit werkt niet.
Bovendien werkt deze code in een ander formulier wel zie voorbeeld.
Vandaar mijn vraag ik heb van alles geprobeerd maar blijf deze foutmelding krijgen en ik zie niet waar ik het verkeerd doe.

deze werkt wel.

Code:
Private Sub Sortering_op_eigen_vervoer_Click()
Private Sub cmdResetEV_Click()
        Me.Evervoer = Null
   
End Sub

Private Sub cmdGenerateReport3_Click()
    On Error GoTo Err_cmdGenerateReport3_Click

    Dim stDocName As String
    Dim stWhere As String
   
        If IsNull(Me.Evervoer) Then
            MsgBox "U moet nog een keuze maken"
         
         Else
            
                If Not IsNull(Me.Evervoer) Then
                    stWhere = "[Eigen vervoer]=" & Me.Evervoer & " And "
                    blnTrim = True
                End If

          
                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
    
                                     
                stDocName = "RptFreelancrsKeuze"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
                '  DoCmd.OutputTo acOutputReport, stDocName, acFormatPDF, "", True
                    DoCmd.Close
                            
            End If
          
    
Exit_cmdGenerateReport3_Click:
    Exit Sub

Err_cmdGenerateReport3_Click:
    MsgBox Err.Description
    Resume Exit_cmdGenerateReport3_Click

End Sub

deze werkt niet.

Code:
Private Sub Sortering_op_Plaats_Click()
Private Sub cmdResetPl_Click()
        Me.CboSelectPlaats = Null
   
End Sub

Private Sub cmdGenerateReport1_Click()
    On Error GoTo Err_cmdGenerateReport1_Click

    Dim stDocName As String
    Dim stWhere As String
   
        If IsNull(Me.CboSelectPlaats) Then
            MsgBox "U moet nog een keuze maken"
         
         Else
            
                If Not IsNull(Me.CboSelectPlaats) Then
                    stWhere = "[plaatsenID]=" & Me.CboSelectPlaats & " And "
                    blnTrim = True
                End If

          
                    If blnTrim Then
                        stWhere = Left(stWhere, Len(stWhere) - 5)
            End If
    
                                     
                stDocName = "RptFreelancrsKeuze"
                DoCmd.OpenReport stDocName, acPreview, , stWhere
               
                            
            End If
          
    
Exit_cmdGenerateReport1_Click:
    Exit Sub

Err_cmdGenerateReport1_Click:
    MsgBox Err.Description
    Resume Exit_cmdGenerateReport1_Click

End Sub


ik ben al een week bezig de fout te vinden maar het lukt me niet
ik hoop dat iemand het ziet

groet
René
 
Laatst bewerkt:
Heb je al geprobeerd de db te compileren met <Foutopsporing>, <... compileren>?
Vaak verschijnen dit soort foutmeldingen die niks met de oorzaak te maken hebben...
 
Heb je al geprobeerd de db te compileren met <Foutopsporing>, <... compileren>?
Vaak verschijnen dit soort foutmeldingen die niks met de oorzaak te maken hebben...

bij de foutopsporing geeft hij aan "er wordt End Sub verwacht"
Nu weet ik niet waar er nog meer End Sub moet komen maar moet elke private Sub een End Sub hebben.
bij de melding wordt een gedeelte (de eerste regel)van de code geselecteerd zie voorbeeld.
Code:
Private Sub Pagina38_Click()
Private Sub cmdReset_Click()
    Me.cboSelectName = Null
    Me.cboSelectWeek = Null

End Sub
 
Deze melding houdt in, dat er dus ergens een routine zit die niet deugt. De compiler stopt inderdaad op de plek waar het fout gaat, dus daar moet je het probleem oplossen.
Elke (Private) Sub moet inderdaad een End Sub hebben:

Private Sub Pagina38_Click()
End Sub

Private Sub cmdReset_Click()
Me.cboSelectName = Null
Me.cboSelectWeek = Null
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan