Probleme de variable Public sous Access 2010

Résolu
benpourquoi Messages postés 10 Statut Membre -  
benpourquoi Messages postés 10 Statut Membre -
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. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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 ?
    0
  2. benpourquoi Messages postés 10 Statut Membre
     
    Bonjour et merci de me repondre ,
    Oui j'ai mis un msgbox et j'ai bien ma valeur
    Merci a toi
    0
    1. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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 ?
      0
  3. benpourquoi Messages postés 10 Statut Membre
     
    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
    0
    1. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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...
      0
  4. benpourquoi Messages postés 10 Statut Membre
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. benpourquoi Messages postés 10 Statut Membre
     
    une derniere chose , si je lance mon Form F_Revendeurs directement et donc ma variable public = "" le test ne plante pas !!!!
    Merci
    0
  7. benpourquoi Messages postés 10 Statut Membre
     
    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
    0
    1. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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...
      0
  8. benpourquoi Messages postés 10 Statut Membre
     
    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
    0
    1. blux Messages postés 5031 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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.
      0
  9. benpourquoi Messages postés 10 Statut Membre
     
    j'ai fouillé partout pas de variable identique. De plus je tiens ma liste de variables à jour
    Merci
    0