Erreur d’exécution '13' : incompatibilité de Type (Vba Access)

Résolu
Nizar1969 -  
 Nizar1969 -
Bonjour,
sur mon procédure je reçois cette Erreur
Erreur d’exécution '13' : incompatibilité de Type
Private Sub Form_Load()
Dim iSconnect As Boolean
iSconnect = IIf("nomUsser_G" <> "", True, False)
If (iSconnect = True) Then
hasAccess iduser_G, Me
Else
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "UL_Login"
End If
End Sub

j en sais rien d'ou se produit cette erreur
merci de votre aide

6 réponses

  1. RV71 Messages postés 620 Date d'inscription   Statut Membre Dernière intervention   31
     
    Bonjour,

    1/ merci d'utiliser les balises de code quand tu postes.......... du code
    https://www.commentcamarche.net/infos/25911-ccm-astuces-et-conseils-pour-la-redaction/#code

    2/ sur quelle ligne survient l'erreur ?
    Si c'est sur la ligne que tu as soulignée, qu'il y a t'il dans "nomUsser_G" (les " " ne sont-ils pas de trop) ?
    Essaies en mettant un msgbox(nomUsser_G)

    Aussi, pourquoi ne pas faire le test directement ainsi :
    if nomUsser_G<>"" then
    ......
    else
    .......
    end if
    
    


    A+
    0
  2. Nizar1969
     
    Bonjour
    Merci pour votre repense ,ensuit
    par ce que j'ai déjà déclare ( hasAccess) dans une Module tel que
    tel que
    '************* La Fonction hasAcces Management les Utilisateurs jobs Formulaires ******
    Public Sub hasAccess(idUser As Integer, frm As Form)
    Dim isConnect As Boolean
    isConnect = IIf(nomUser_G = "", False, True)
    If (isConnect = False) Then
    DoCmd.Close acForm, frm.Name
    DoCmd.OpenForm "UL_Login"
    Else
    Dim idRole As Integer
    Dim acces, modif As Boolean
    idRole = DLookup("idRole", "Users", "idUser=" & idUser)
    acces = DLookup("Acces", "AccesForms", "idRole=" & idRole & " and FormName='" & frm.Name & "'")
    modif = DLookup("Modif", "AccesForms", "idRole=" & idRole & " and FormName='" & frm.Name & "'")
    If (acces = False) Then
    Form_A_Menu.txtErreurAcces = " Vous n avez pas le droit d'acces au Formulair " & frm.Name
    DoCmd.Close acForm, frm.Name
    DoCmd.OpenForm "A_Menu"
    Else
    Form_A_Menu.txtErreurAcces = ""
    Dim ct As Control
    For Each ct In Forms(frm.Name)
    If (ct.ControlType = 104) And ct.Name <> "btndisconnecte" And ct.Name <> "btnChercher" Then
    ct.Enabled = modif '**** ce peut être True ou False

    End If

    Next
    End If

    End If
    End Sub

    Donc j ai applique la procéder

    Private Sub Form_Load()
    Dim iSconnect As Boolean
    iSconnect = IIf("nomUsser_G" <> "", True, False)
    If (iSconnect = True) Then
    hasAccess iduser_G, Me
    Else
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "UL_Login"
    End If
    End Sub
    a toutes les formule de mon application , au Evénement Sur chargement : mais quand je Click sur n'apport qu'il bouton a partir de formulaire A_Menu
    je reçois ce : Erreur d’exécution '13' : incompatibilité de Type
    j'en sais si la procéder manque t elle d'une déclaration DAO
    merci de votre aide
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bonjour,
      à quelle ligne l'erreur se produit-elle?
      as-tu bien
      option explicit
      en début de module?
      merci d'utiliser "basic" quand tu partages du vba.
      au lieu de
      isConnect = IIf(nomUser_G = "", False, True)

      je pense plus clair
      isConnect = nomUser_G <> ""

      et, au lieu de
      If (iSconnect = True) Then

      If iSconnect Then

      et au lieu de
      If (isConnect = False) Then

      If not isConnect  Then
      0
  3. Nizar1969
     
    Bonjour
    l'erreur ce produis au niveau
    isConnect=iif(nomUser_G <> "",True,False)

    merci
    0
  4. RV71 Messages postés 620 Date d'inscription   Statut Membre Dernière intervention   31
     
    Bonjour,
    le module fonctionne ?
    Dans le module tu as
    isConnect = IIf(nomUser_G = "", False, True)


    alors que dans le load() tu as
    iSconnect = IIf("nomUsser_G" <> "", True, False)

    (il y a des " " et un s en plus)

    Donc où cela fonctionne t-il pas ?
    Avant la ligne où il y a l'erreur mets un msgbox (nomuser_G ou nomUsser_G)...

    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. RV71 Messages postés 620 Date d'inscription   Statut Membre Dernière intervention   31
     
    Aussi, pourquoi tu déclares ta variable isconnect au niveau du module et une seconde fois dans les évènements du form...
    0
  7. Nizar1969
     
    Bonjour
    merci Beaucoup pour votre remarque
    2- par ce que j' ai déclare Option Explicit
    merci infiniment
    mon problème était erreur orthographe
    grâce a vous je m'éclairé
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu alors marquer la discussion comme résolue?
      0
      1. Nizar1969 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour
        merci
        Ok
        0