Probleme de variable Public sous Access 2010

Résolu
Bonjour,

Avant tout merci à ceux qui m'aideront

J'ai déclaré une variable public dans un module :

Option Compare Database
Option Explicit

Public TypeUtilisateur As String

Ensuite j'ouvre un formulaire :F_Revendeurs

Dans ma procedure FormLoad j'ai ceci :

If TypeUtilisateur <> "Agent" Then
Me.Modifiable53.Enabled = True
Else
Me.Modifiable53.Enabled = False
End If

A la ligne if TypeUtilisateur <> "Agent" Then
J'ai le message d'erreur "Erreur d'execution 5 (Argument ou appel de procedure incorrect)

et la je seche
Merci d'avance pour votre aide

8 réponses

  1. j'ai fouillé partout pas de variable identique. De plus je tiens ma liste de variables à jour
    Merci
    1. Encore une fois j'ai parlé trop vite : j'ai passé ma variable en integer mais du coup je teste soit la valeur 1 pour "Admin", 2 pour "collaborateur", 3 pour Agent et ca marche"
      Merci pour tout
      1. Modérateur
        Une question : n'existe-t-il pas un autre endroit où cette variable est également définie ?
        Ce qui pourrait expliquer qu'on teste une variable définie localement alors qu'on croit adresser la variable publique.
    2. Blux,
      J'ai changé ma variable Public de String en Integer et ca marche nickel
      C'est à ne rien comprendre.
      En tout cas je tenais à te remercier de ton aide
      Merci
      1. Modérateur
        Comment peux-tu tester qu'un integer contient une valeur de chaine ?
        Au pire, mets-lui le type 'variant', tu n'auras plus de soucis à te faire pour ça...
    3. une derniere chose , si je lance mon Form F_Revendeurs directement et donc ma variable public = "" le test ne plante pas !!!!
      Merci
      1. Meme mess d'erreur à la ligne : If TypeUtilisateur = "Agent" Then

        C'est délirant
        Ce que je ne comprends pas c'est que mon Form F_Utilisateurs appelle mon Form F_General de cette facon et qui contient mon sous Form F_Revendeurs :

        TypeUtilisateur = [Type Util]

        stFormName = "F_General"
        stLinkCriteria = ""

        DoCmd.Close acForm, "F_Utilisateurs"
        DoCmd.OpenForm stFormName, , , stLinkCriteria

        Mais il ne passe pas par mon Form F_General

        Mereci de ton devouement
        1. Merci beaucoup pour ta réactivité

          Ma variable n'est pas dans une fonction
          j'ai du supprimer la ligne je ne sais combien de fois
          J'ai fais ce que tu m'as demandé à savoir affecté ma variable public dans une variable locale.

          Une Question : Je suis allé un peu trop vite dans mon premier message :

          En fin de compte mon Form F_Revendeurs est une Sous-Form d'un formulaire F_General qui lui comporte des onglets dont un contient le Form F_Revendeurs.

          J'ai mis un curseur dans ma procédure Form Load de F_General avec ceci :

          Private Sub Form_Load()

          If TypeUtilisateur = "Agent" Then

          Me!Onglets.Pages(0).Visible = True
          Me!Onglets.Pages(1).Visible = False
          Me!Onglets.Pages(2).Visible = True
          Me!Onglets.Pages(3).Visible = False
          Me!Onglets.Pages(4).Visible = False
          Me!Onglets.Pages(5).Visible = False
          Else
          Me!Onglets.Pages(0).Visible = True
          Me!Onglets.Pages(1).Visible = True
          Me!Onglets.Pages(2).Visible = True
          Me!Onglets.Pages(3).Visible = True
          Me!Onglets.Pages(4).Visible = True
          Me!Onglets.Pages(5).Visible = True
          End If

          End Sub

          Mais l'application ne passe pas par F_General mais directement par F_Revendeurs .

          Y a t-il un lien vace mon bug.
          D'avance je te remercie
          1. Modérateur
            Je ne vois pas pourquoi il y aurait un lien...

            As-tu essayé :

            If TypeUtilisateur = "Agent" Then
                msgbox TypeUtilisateur
            else
                msgbox TypeUtilisateur
            End If


            Qu'on essaye de trouver ce qui cloche...
        2. Bonjour et merci de me repondre ,
          Oui j'ai mis un msgbox et j'ai bien ma valeur
          Merci a toi
          1. Modérateur
            Alors là, je ne vois pas du tout...
            Ta variable n'est pas dans une fonction ?
            Tu as essayé de supprimer la ligne et de la retaper ?
            Si tu déclares une variable locale d'un autre nom que tu remplis, as-tu le même message en faisant le même test ?
        3. Modérateur
          Salut,

          et si tu fais un msgbox TypeUtilisateur avant ton test, tu as quoi à l'affichage ?

          Se pourrait-il que la variable ne contienne rien ?