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

VBA Access Discussion :

Changer valeurs dans table selon case à cocher


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Changer valeurs dans table selon case à cocher
    Re bonsoir,
    j'ai modifié mon message car en me relisant je pense bien que j'ai pas réussi à bien exprimer mon problème.
    Dans mon formulaire en mode tabulaire : J'ai un champ " niveau " avec soit comme valeurs "niveau 1 ; niveau 2 ; niveau 3" (sous forme de liste déroulante)
    J'ai crée un bouton avec le code que je met à la fin
    Je voudrais que quand je clique sur ce bouton
    Si aucune case n 'est cochée Alors
        Message : Merci de cocher !
    Si DES cases sont cochés Alors
        si niveau = niveau 1 alors
           niveau = niveau 2
        si niveau = niveau 2 alors
           niveau = niveau 3 
        si niveau = niveau 3 alors
          Message : Le niveau est terminé
    Fin
    Voici le code que j'ai mis ( il fonctionne juste pour la dernière case que j'ai coché et moi je voudrais que le code réussisse pour TOUTES LES cases que j'ai coché)
    Voilà, j'espère que voudrez bien m'aider
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private CommandePassageNiveau_Click()
    If selection = no Then
    MsgBox ("Veuillez selectionner, les adhérents à faire passer le niveau")
    Else
      Select Case niveau
      Case Is = "niveau 1"
     niveau.Value = "niveau 2"
      Case Is = "niveau 2"
      niveau= "niveau 3"
      Case Is = "niveau 3"
      MsgBox ("Le niveau est terminé")
    End Select
    End If

  2. #2
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    j'ai modifié mon premier message, car je n'ai pas aimé le premier que j'ai fais
    j'espère que vous pourrez m'aider
    Merci

  3. #3
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    bonsoir,
    je verrais plutôt quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private CommandePassageNiveau_Click()
    If selection = no Then
      MsgBox ("Veuillez selectionner, les adhérents à faire passer le niveau")
    Else
      If niveau = "niveau 1" then niveau = "niveau 2"
      If niveau = "niveau 2" then niveau = "niveau 3"
      If niveau = "niveau 3" then MsgBox ("Le niveau est terminé")
    End If
    en utilisant "Select Case" une seule condition est appliquée (Case 1 OU Case 2 mais pas Case 1 et Case 2 si les 2 conditions sont remplies)

    j’espère avoir apporté mon aide ...

  4. #4
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Bonsoir Ovr19
    D'abord merci de m'avoir répondu
    Mais dommage ça ne marche toujours pas
    ça me fait en faîte exactement la même chose qu'avec le code que j'avais mis

    je sélectionne plusieurs adhérents
    je clique sur le bouton pour faire évoluer les niveau 1 par exemple au niveau 2
    ça exécute le code seulement sur le dernier adhérent (ou j'ai coché la case en dernier) et toutes les autres cases qui sont cochés aussi le code ne s'exécute pas
    Je crois bien qu'il faudrait dire
    un : execute le code where selection = yes
    mais je ne sais comment le formuler
    Merci

  5. #5
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    une petite question:
    comment se fait la sélection des adhérents ?
    formulaire continu ou liste

  6. #6
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    c'est un formulaire en mode tabulaire

    caseacocher nom prenom niveau
    caseacocher1 nom1 prenom1 niveau1
    caseacocher2 nom2 prenom2 niveau2
    caseacocher3 nom3 prenom3 niveau3
    caseacocher4 nom4 prenom4 niveau2
    caseacocher5 nom5 prenom5 niveau1
    .................. ........ ............. ...........

  7. #7
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    alors comme ça
    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
    Dim oRst As Recordset
    ' ouvre le recordset
    Set oRst = CurrentDb.OpenRecordset("SELECT * FROM ma_table WHERE ((case_a_cocher_selection) = True)")
     
    ' test si aucune sélection
    If oRst.RecordCount = 0 Then
        MsgBox ("Veuillez selectionner, les adhérents à faire passer le niveau")
        Exit Sub
    End If
     
    ' se place sur le 1er enregistrement
    oRst.MoveFirst
     
    While Not oRst.EOF
        ' si "sélection" est coché
        If oRst!case_a_cocher_selection = True Then
            ' si le niveau est à 1 alors mise à jour vers 2
            If oRst!niveau = "niveau 1" Then
                oRst.Edit
                oRst!niveau = "niveau 2"
                oRst.Update
            ' si le niveau est à 2 alors mise à jour vers 3
            ElseIf oRst!niveau = "niveau 2" Then
                oRst.Edit
                oRst!niveau = "niveau 3"
                oRst.Update
            ' si le niveau est à 3 alors message
            ElseIf oRst!niveau = "niveau 3" Then
                MsgBox ("Le niveau est terminé")
            End If
            ' décoche les cases de la table
            oRst.Edit
            oRst!case_a_cocher_selection = False
            oRst.Update
        End If
        oRst.MoveNext
    Wend
     
    oRst.Close
    Set oRst = Nothing
     
    Me.Requery
    ça devrai marcher (si la case à cocher fait partie de la table)

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 588
    Points
    24 588
    Par défaut
    Bonjour,

    Quelque chose me gène dans le code que tu proposes, c'est la source.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oRst As Recordset
    ' ouvre le recordset
    Set oRst = CurrentDb.OpenRecordset("SELECT * FROM ma_table WHERE ((case_a_cocher_selection) = True)")
    Ici tu proposes d'intervenir sur la table alors qu'on travaille sur les enregistrements d'un formulaire. Peut-être y-a-t 'il un filtre quelconque ?
    Dans le doute il vaut mieux travailler sur le recordset du formulaire, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oRst As Recordset
    ' ouvre le recordset
    Set oRst = me.Recordset
    C'est un détail.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    très juste Loufab, je n'y avais pas pensé
    donc une petite modif pour vérifier qu'il y a au moins une sélection
    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
    Dim oRst As Recordset
    Dim ct As Integer, cf As Integer
    ' ouvre le recordset
    Set oRst = Me.Recordset
     
    ' se place sur le 1er enregistrement
    oRst.MoveFirst
    ct = 0: cf = 0
     
    ' test si aucune sélection
    ' ct = case à cocher au total, cf = case à cocher ayant la valeur 0
    While Not oRst.EOF
        If oRst!selection.Value = False Then cf = cf + 1
        ct = ct + 1
        oRst.MoveNext
    Wend
    If ct = cf Then
        MsgBox ("Veuillez selectionner, les adhérents à faire passer le niveau")
        Exit Sub
    End If
     
    ' se replace sur le 1er enregistrement
    oRst.MoveFirst
     
    While Not oRst.EOF
        ' si "sélection" est coché
        If oRst!selection = True Then
            ' si le niveau est à 1 alors mise à jour vers 2
            If oRst!niveau = "niveau 1" Then
                oRst.Edit
                oRst!niveau = "niveau 2"
                oRst.Update
            ' si le niveau est à 2 alors mise à jour vers 3
            ElseIf oRst!niveau = "niveau 2" Then
                oRst.Edit
                oRst!niveau = "niveau 3"
                oRst.Update
            ' si le niveau est à 3 alors message
            ElseIf oRst!niveau = "niveau 3" Then
                MsgBox ("Le niveau est terminé")
            End If
            ' décoche les cases du formulaire
            oRst.Edit
            oRst!selection = False
            oRst.Update
        End If
        oRst.MoveNext
    Wend
    voilà, j'espère avoir répondu à ta demande
    bon weekend

  10. #10
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Je vous remercie beaucoup pour l'aide et le temps que vous m'avez consacré, c'est très sympa
    Le code fonctionne
    Au début je croyais que ça buguait car le code fait défiler chaque enregistrement de ma table et donc ça prend un temps fou !!!
    Car si il y a 2 ou 3 enregistrements ça se fait vite mais s'il y a 200 enregistrements il faut 1 minute pour que le code passe chaque enregistrement
    Y a pas un moyen que le code s'exécute plus rapidement sans défiler chaque enregistrement ?
    si c'est pas possible que ça aille plus vite et bien tant pis je patienterai
    J'attend votre réponse pour savoir si c'est possible que ça aille plus vite
    ensuite je mettrai résolu
    Merci Ovr19 et loufab

  11. #11
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Re bonsoir
    je joins un fichier test en exemple au code que tu m'as donné
    Le fait que chaque ligne soit détaillée et que ça prenne du temps me gêne un peu
    Y'a pas une manière de faire plus simple et tout automatique ?
    Aussi j'ai remarqué que les enregistrements avec comme valeurs niveau 3 et qui sont cochés
    SI j'ai 100 enregistrements qui sont cochés avec comme valeur niveau 3
    alors je devrais cliqué 100 fois sur le message box (le niveau est terminé)
    voilà les soucis qui me gêne
    le code marche super c'est juste que j'aurai voulu savoir si y avait pas une manière que tout se fasse d'un coup de clique sans que tout ce défile à l'écran
    car dès fois j'ai le sablier et Access ne répond plus, je suis obligé de le fermer en faisant ctrl alt supr
    Merci merci
    si c'est pas possible alors c'est pas grave
    en tout cas merci
    Fichiers attachés Fichiers attachés

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 588
    Points
    24 588
    Par défaut
    Bonjour,
    Dans le code fourni on balaye un recordset, c'est certain qu'il s'agit de la méthode la moins adaptée pour les traitements de masse.

    Voici la correction du code pour accélérer le traitement et éviter ce (double!) balayage disgracieux.

    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
    Private Sub Commande9_Click()
     
    Dim oRst As Recordset
    'Dim ct As Integer, cf As Integer
    ' ouvre le recordset
    Set oRst = Me.Recordset
     
    ' se place sur le 1er enregistrement
     
    'ct = 0: cf = 0
    ' test si aucune sélection
    ' ct = case à cocher au total, cf = case à cocher ayant la valeur 0
    'While Not oRst.EOF
    '    If oRst! = False Then cf = cf + 1
    '    ct = ct + 1
    '    oRst.MoveNext
    'Wend
     
    oRst.MoveFirst
    oRst.FindFirst "selection=true" 'recherche la 1ere selection
    If oRst.NoMatch Then 'il n'y en a pas
        MsgBox ("Veuillez selectionner, les adhérents à faire passer le niveau")
        Exit Sub
    End If
     
    DoCmd.Hourglass True
    DoCmd.Echo False
     
    ' on continue puisqu'on y est
    While Not oRst.NoMatch
            ' si le niveau est à 1 alors mise à jour vers 2
            If oRst!niveau = "niveau 1" Then
                oRst.Edit
                oRst!niveau = "niveau 2"
                oRst.Update
     
            ' si le niveau est à 2 alors mise à jour vers 3
            ElseIf oRst!niveau = "niveau 2" Then
                oRst.Edit
                oRst!niveau = "niveau 3"
                oRst.Update
     
            ' si le niveau est à 3 alors message
            ElseIf oRst!niveau = "niveau 3" Then
               ' MsgBox ("Le niveau est terminé")
     
            End If
            ' décoche les cases du formulaire
            oRst.Edit
            oRst!selection = False
            oRst.Update
     
        oRst.FindFirst "selection=true"
    Wend
    DoCmd.Echo True
    DoCmd.Hourglass False
    End Sub
    Hourglass c'est pour le curseur d'attente.
    Echo on gèle l'écran pour éviter de voir le curseur se déplacer, on gagne ainsi du temps.

    Le premier parcours pour savoir si l'un des record est sélectionné est une très mauvaise habitude, ça fait ramer l'appli inutilement.

    Maintenant pour un vrai traitement de masse il est plus judicieux d'utiliser une requête doublée d'une fonction utilisateur.
    La requête sera basée sur les enregistrements sélectionnés et la fonction s'occupera de la toutouille des niveaux.

    La requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE adherent SET adherent.selection = False, adherent.niveau = ChangeNiveau([niveau])
    WHERE (((adherent.selection)=True));
    Cette requête ne traite que les enregistrements sélectionnés, elle modifie les niveaux et fait la déselection.

    La fonction qui traite les niveaux est à insérer dans un module standard. Attention !! pas un module de classe comme le module de formulaire !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function ChangeNiveau(strNiveau As String) As String
        Select Case strNiveau
           Case "Niveau 1"
             ChangeNiveau = "Niveau 2"
           Case "Niveau 2"
             ChangeNiveau = "Niveau 3"
           Case Else
             ChangeNiveau = strNiveau
        End Select
    End Function
    Le bouton ne sera que le lanceur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim db As Database
    DoCmd.Hourglass True
    DoCmd.Echo False
    Set db = CurrentDb
     
    me.dirty = false 'on force la sauvegarde d'un record en cours de modification
     
    db.Execute "majNiveaux", dbFailOnError  'on traite les niveaux
     
    Me.Requery 'on met à jour le formulaire.
     
    Set db = Nothing
    DoCmd.Echo True
    DoCmd.Hourglass False
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Membre à l'essai
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Loufab ainsi que Ovr19 je vous remercie vraiment pour votre temps et votre aide

    Loufab alors là c'est juste parfait !!!!

    Jai mis du temps à répondre car j'essaye de comprendre
    J'ai pas encore tout compris... je suis dessus actuellement
    Je vais choisir la méthode judicieuse comme tu me le conseille
    C'est exactement ce que je voulais
    Un grand merci
    Bonne soirée à vous
    merci
    merci
    merci
    infini merci

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 588
    Points
    24 588
    Par défaut
    Bon concernant la fonction qui traite les niveaux, je pense qu'il n'y a rien à expliquer. Tu lui fourni une valeur qu'elle te rend transformée.
    Tout ce passe au niveau de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE adherent SET adherent.selection = False, adherent.niveau = ChangeNiveau([niveau])
    WHERE (((adherent.selection)=True));
    Elle traite les enregistrements un à un comme ceci :
    Je ne retiens que ceux qui sont sélectionné (WHERE (((adherent.selection)=True))
    Pour chacun :
    • je mets le champ selection à faux (je déselectionne)
    • je mets la nouvelle valeur de niveau issue de ma fonction à laquelle je viens de fournir la valeur actuelle de niveau.

    donc : valeur actuelle niveau >>> changeniveau
    et Changeniveau >>> nouvelle valeur niveau.

    SQL traite 99% des traitements d'une base de données. les 1% restant sont soit des cas tordus (exceptionnel) soit un problème de conception du modèle de données.
    Si 99% n'est pas atteint c'est que le modèle de données n'est pas bon ou que le développeur à des lacunes en base de données.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  15. #15
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 002
    Points : 24 588
    Points
    24 588
    Par défaut
    Pour éviter les erreurs possibles dues à la rencontre d'un niveau vide (Null) je te conseille de modifier l'appel de la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function ChangeNiveau(strNiveau As String) As String
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function ChangeNiveau(strNiveau As variant) As variant
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/02/2011, 07h45
  2. Réponses: 3
    Dernier message: 29/08/2008, 15h53
  3. Ajout valeur dans table
    Par Gebudi. dans le forum Access
    Réponses: 6
    Dernier message: 09/01/2006, 17h57
  4. Recherche valeur dans table Access
    Par Stefloulou dans le forum Access
    Réponses: 1
    Dernier message: 05/11/2005, 08h45
  5. Insertion valeurs dans table en visual basic
    Par frevale dans le forum Access
    Réponses: 2
    Dernier message: 06/09/2005, 09h23

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