IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[VB.NET] La variable est innaccessible en raison de son niveau de protection


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Points : 34
    Points
    34
    Par défaut [VB.NET] La variable est innaccessible en raison de son niveau de protection
    Bonjour à tous,

    Je fais une application en vb.net 2010 avec une basse access 2010.
    J'utilise une boulce For Each qui me pose aucun prolème dans un de mes formulaires mais pour ce qui concerne l'autre, il me dit que m'a variable n'est pas déclarer ou bien qu'elle est innaccessible en raison de son niveau de protection.

    Les deux variables en questions sont en rouge.
    Voici le code (procédure) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Private Sub selectedActes()
            'Parcourir la liste des actes jusqu'à ce qu'il y a un item de sélectionné
            For i = 0 To lstSelectActes.SelectedItems.Count - 1
                'Récupérer le numéro du rééducateur connecté
                For Each dtr In dts.Tables("acte").Rows
                    Dim varNoReeducateur As String = String.Empty
    
                    If String.Compare(dtr("nomReeduc"), frmBReeducateur.lblAfficherReeducConnecter.Text) = 0 Then
                        varNoReeducateur = dtr("noReeduc")
                        Exit For
                    End If
                Next
    
                'Une fois le numéro du rééducateur trouvé
                If Not String.IsNullOrEmpty(varNoReeducateur) Then
                    firstSQL = "SELECT noUsager, nomUsager, prenomUsager, noReeduc, noSem, mois, typeSemaine, deplacements, visitesMedicales, journeesExceptionnelles, rencontreFamilles, reunions, interventiontsTelephoniques, nbActe FROM acte WHERE noReeduc = ?"
                    dta.SelectCommand.CommandText = firstSQL
                    dta.SelectCommand.Parameters.Add("@pNoReeduc", OleDbType.Integer).Value = varNoReeducateur
                    dta.Fill(dts, "acte")
    
                    'Récupérer tous les enregistrements de la tables correspondants au numéro du rééducateur
                    For j = 0 To dts.Tables("acte").Rows.Count - 1
                        'Récupérer les champs de la tables acte dans des variables
                        Dim varNoUsager As Integer = dts.Tables("acte").Rows(j).Item("noUsager")
                        Dim varNomUsager = dts.Tables("acte").Rows(j).Item("nomUsager")
                        Dim varPrenomUsager As String = dts.Tables("acte").Rows(j).Item("prenomUsager")
                        Dim varNoReeduc As Integer = dts.Tables("acte").Rows(j).Item("noReeduc")
                        Dim varNoSem As Integer = dts.Tables("acte").Rows(j).Item("noSem")
                        Dim varMois As String = dts.Tables("acte").Rows(j).Item("mois")
                        Dim varTypeSemaine As String = dts.Tables("acte").Rows(j).Item("typeSemaine")
                        Dim varDeplacements As Integer = dts.Tables("acte").Rows(j).Item("deplacements")
                        Dim varVisitesMedicales As Integer = dts.Tables("acte").Rows(j).Item("visitesMedicales")
                        Dim varJourneesExceptionnelles As Integer = dts.Tables("acte").Rows(j).Item("journeesExceptionnelles")
                        Dim varRencontreFamilles As Integer = dts.Tables("acte").Rows(j).Item("rencontreFamilles")
                        Dim varReunions As Integer = dts.Tables("acte").Rows(j).Item("reunions")
                        Dim varInterventiontsTelephoniques As Integer = dts.Tables("acte").Rows(j).Item("nbActe")
                        Dim varNbActe As Integer = dts.Tables("acte").Rows(j).Item("nbActe")
    
                        'Préparer la comparaison entre les enregistrements de la table acte et la liste
                        Dim varActe = varNomUsager & " " & _
                                            varPrenomUsager & " " & _
                                            varNoSem & " " & _
                                            varMois & " " & _
                                            varNbActe
    
                            Dim varSelectedActes As String = lstSelectActes.SelectedItem
    
                        'Comparaison entre les enregistrements de la table acte et la liste
                        If varSelectedActes = varActe Then
    
                            'Récupérer les données a modifiées
                            frmModifReeduc.cbBoxSelectionnerEnfant.SelectedItem = varNomUsager & " " & varPrenomUsager
    
                            frmModifReeduc.txtNoCalendarSemaine.Text = varNoSem
    
                            frmModifReeduc.TxtDeplacementsDomicile.Text = varDeplacements
                            frmModifReeduc.txtVisitesMedicales.Text = varVisitesMedicales
                            frmModifReeduc.txtJourneeExceptionnelles.Text = varJourneesExceptionnelles
                            frmModifReeduc.txtRenccontreFamilles.Text = varRencontreFamilles
                            frmModifReeduc.txtReunions.Text = varReunions
                            frmModifReeduc.txtInterventionsTelephoniques.Text = varInterventiontsTelephoniques
    
                            frmModifReeduc.lblAfficherTotalSemaine.Text = varNbActe
    
                            frmModifReeduc.Show()
                        Else
                            MsgBox("Hum... La variables et l'enregistrement sélectionner ne correspondent pas !")
                            frmModifReeduc.Hide()
                        End If
                    Next
                End If
            Next
        End Sub
    A savoir que le code qui fonctionne dans l'autre formulaire est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    'Récupérer le numéro du rééducateur afin d'afficher ses enregistrements ou Usager
            fourthSQL = "SELECT noReeduc, nomReeduc, idReeduc FROM reeducateur"
            dta.SelectCommand.CommandText = fourthSQL
            dta.Fill(dts, "reeducateur")
     
            Dim varNoReeducateur As String = String.Empty
     
            For Each dtr In dts.Tables("reeducateur").Rows
     
                If String.Compare(dtr("idReeduc"), frmIdentification.mdtIdentifiant.Text) = 0 Then
                    varNoReeducateur = dtr("noReeduc")
                    Exit For
                End If
     
            Next
     
            If Not String.IsNullOrEmpty(varNoReeducateur) Then
     
                firstSQL = "SELECT noUsager, nomUsager, prenomUsager, noReeduc, noSem, mois, typeSemaine, deplacements, visitesMedicales, journeesExceptionnelles, rencontreFamilles, reunions, interventiontsTelephoniques, nbActe FROM acte WHERE noReeduc = ?"
                dta.SelectCommand.CommandText = firstSQL
                dta.SelectCommand.Parameters.Add("@pNoReeduc", OleDbType.Integer).Value = varNoReeducateur
                dta.Fill(dts, "acte")
     
                For i = 0 To dts.Tables("acte").Rows.Count - 1
                    'Récupérer tous les champs de la table acte dans des variables
                    Dim varNoUsager = dts.Tables("acte").Rows(i).Item("noUsager")
                    Dim varNomUsager As String = CStr(dts.Tables("acte").Rows(i).Item("nomUsager"))
                    Dim varPrenomUsager As String = CStr(dts.Tables("acte").Rows(i).Item("prenomUsager"))
                    Dim varNoReeduc As Integer = CInt(dts.Tables("acte").Rows(i).Item("noReeduc"))
                    Dim varNoSem As Integer = CInt(dts.Tables("acte").Rows(i).Item("noSem"))
                    Dim varMois As String = CStr(dts.Tables("acte").Rows(i).Item("mois"))
                    Dim varTypeSemaine = dts.Tables("acte").Rows(i).Item("typeSemaine")
                    Dim varDeplacements = dts.Tables("acte").Rows(i).Item("deplacements")
                    Dim varVisitesMedicales = dts.Tables("acte").Rows(i).Item("visitesMedicales")
                    Dim varJourneesExceptionnelles = dts.Tables("acte").Rows(i).Item("journeesExceptionnelles")
                    Dim varRencontreFamilles = dts.Tables("acte").Rows(i).Item("rencontreFamilles")
                    Dim varReunions = dts.Tables("acte").Rows(i).Item("reunions")
                    Dim varInterventiontsTelephoniques = dts.Tables("acte").Rows(i).Item("interventiontsTelephoniques")
                    Dim varNbActes = dts.Tables("acte").Rows(i).Item("nbActe")
     
                    frmSelectActe.lstSelectActes.Items.Add(varNomUsager & " " & _
                                                                        varPrenomUsager & " " & _
                                                                        varNoSem & " " & _
                                                                        varMois & " " & _
                                                                        varNbActes)
                Next
    End If
    Quelqu'un aurait-il une solution au problème s'il vous plait ???

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Hello,

    Tu déclares ta variable dans la boucle For Each ce qui fait que, une fois que ton process sort de cette boucle, la variable en question cesse d'exister.
    Dans le code qui fonctionne, tu déclares la variable hors de la boucle. C'est pour cela que ça fonctionne.

    Si tu déclares une variable dans une fonction/procédure/boucle/structure de contrôle(if/select case), cette variable cesse d'exister aussitôt que tu en sors.
    Kropernic

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en informatique
    Inscrit en
    Juillet 2013
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Etudiant en informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 102
    Points : 34
    Points
    34
    Par défaut
    Ça faisait longtemps ,
    Je suis sur ce projet depuis un petit moment du coup je ne vois même plus ce qui à sous mon nez

    Merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Erreur "inaccessible en raison de son niveau de protection"
    Par Heavy Metal Hero dans le forum C#
    Réponses: 2
    Dernier message: 02/05/2014, 09h44
  2. CS0122: .. est inaccessible en raison de son niveau de protection
    Par laurent12345 dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 13/12/2011, 12h39
  3. Erreur "inaccessible en raison de son niveau de protection"
    Par perdos dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/08/2007, 16h43
  4. [net][Sockets] Quel est le nombre maximal de threads?
    Par itsmii dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 06/05/2004, 10h48
  5. [VC++ .NET] mais où est passée SignedXML ???
    Par benoitB dans le forum MFC
    Réponses: 4
    Dernier message: 30/04/2004, 08h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo