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 :

Activation d'un bouton [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Par défaut Activation d'un bouton
    Bonjour à tous,

    Je réalise une base de données pour une entreprise.
    J'ai donc créée un formulaire d'ajout. Il y a quelques temps tout fonctionnait à merveille et voilà que j'ai modifié ma base et du coup sa ne fonctionne plus.
    Donc dans ce formulaire ajout( qui permet d'ajouter un enregistrement dans une table), il y a deux boutons: un valider et un autre retour.
    Le bouton retour fonctionne parfaitement bien mais celui valider non et quand je clique, il n'y a aucun message d'erreur qui s'affcihe mais simplement les données ne s'ajoutent pas dans la table.

    Je vous laisse le code du bouton valider si cela peut vous aider.

    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
    '==Procédure pour ajouter les informations du formulaire dans la table T_Salarié_Chantier=='
     
    Private Sub Btn_AJout_T_Salarie_Chantier_Click()
    On Error GoTo Erreur
     
     
    '==Vérifier que les champs ne sont pas vides=='
      If IsNull(Me.Affaires_Clients.Value) Or IsNull(Me.Référence_Commande.Value) Then
                MsgBox ("Veuillez remplir les champs")
    End If
     
    '==Déclaration des variables=='
    Dim Db As DAO.Database
    Dim rs As DAO.Recordset
     
    '==Ajout des informations dans la table: T_Salarié_Chantier=='
    Set Db = CurrentDb
    Set rs = Db.OpenRecordset("T_Salarié_Chantier", dbOpenTable, dbSeeChanges, dbPessimistic)
    Set rs = CurrentDb.OpenRecordset("T_Salarié_Chantier")
    rs.AddNew
    rs.Fields("Ref") = Me.Affaires_Clients.Value              'Ajout de la référence dans la table T_Salarié_Chantier
    rs.Fields("Référence Commande") = Me.Référence_Commande.Value    'Ajout de la référence commande dans la table T_Salarié_Chantier
    rs.Fields("Projet") = Me.Nom_Projet.Value                        'Ajout de la description de la commande dans la table T_Salarié_Chantier
    rs.Fields("Client") = Me.Clients.Value
    rs.Fields("LoginSalarié") = Me.Login_Utilisateur.Value              'Ajout du login dans T_Salarié_Chantier
    rs.Update
    MsgBox "L'affaire " & Me.Référence_Commande & " a bien été ajoutée ", vbOKOnly + vbInformation, "Confirmation d'ajout..."
     Exit Sub
    Erreur:
        If Err.Number = 3022 Then MsgBox "Vous avez déjà ajouté cette affaire, veuillez en sélectionner une autre", vbExclamation
    End Sub

    Et je vous laisse aussi la structure de la table qui devrait se compléter en fonction des données de ce formulaire.
    #Ref: numérique
    Référence Commande: texte
    Projet: texte
    Client: texte
    #LoginSalarié:texte

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 129
    Par défaut
    Bonjour,

    La gestion d'erreur est trop limitée puisque seule l'erreur 3022 déclenche un message
    Il faudrait mettre un message générique dans les autres cas pour en savoir plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Erreur " & err.Number & " ligne " & erl & " : "  & err.description
    NB : l'utilisation de erl nécessite de numéroter les lignes de code

    Mais le mieux est de déconnecter "on error goto" lorsque le programme est en développement, ainsi access s'arrête sur l'erreur avec un contexte actif !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Par défaut
    Salut,

    Merci pour cette info je ne connais pas puisque je suis débutante en vba. J'ai donc déconnecter on error GoTo erreur(en le mettant en commentaire), et là il y a apperement une erreur a la ligne:
    rs.Fields("ref") = Me.Affaires_Clients.Value

    L'erreur est erreur exécution 3421, Erreur de conversion de type de données.
    Le champs ref est celui de la table, c'est un numérique, et Affaires_Clients est une zone de liste déroulante qui se met à jour en fonction d'une autre liste déroulante.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Vérifies la propriété Colonne liée de ta zone de liste déroulante Affaires_Clients :
    Elle doit être à 1 pour correspondre à Ref qui est numérique.

    @+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Par défaut
    Merci mademefere c'est exactement sa qui n'allait.
    Mon soucis est que je veux faire plein de truc en même temps et du coup je modifie et par conésquent après je ne sais plus où j'ai apporté des modifications.

    Merci encore à vous deux.

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour Marg0t,

    Essaies de prendre un stylo et une feuille et d'accoucher une structure du développement de ton projet car tu vas t'y perdre à la fin. Ou tu te crées des versions successives qui marchent (par palier ou modification de source).

    Je sais que c'est fun de pouvoir rajouter et supprimer des trucs mais IL FAUT QUE TU PUISSES toujours revenir à une version qui fonctionne (Il n'y a pas de mal à avoir 100 versions évolutives qui marchent). C'est un gain de temps non négligeable.

    Bonne continuation.
    PS : Pour ta requête analyse croisée, est-ce que t'arrives à écrire quelque chose DIRECTEMENT dans la requête (sans passer par le formulaire).

  7. #7
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour Marg0t,

    Essaies de prendre un stylo et une feuille et d'accoucher une structure du développement de ton projet car tu vas t'y perdre à la fin. Ou tu te crées des versions successives qui marchent (par palier ou modification de source).

    Je sais que c'est fun de pouvoir rajouter et supprimer des trucs mais IL FAUT QUE TU PUISSES toujours revenir à une version qui fonctionne (Il n'y a pas de mal à avoir 100 versions évolutives qui marchent). C'est un gain de temps non négligeable.

    Bonne continuation.
    PS : Pour ta requête analyse croisée, est-ce que t'arrives à écrire quelque chose DIRECTEMENT dans la requête (sans passer par le formulaire).

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

Discussions similaires

  1. [Win32] activer/désactiver un bouton
    Par gdpasmini dans le forum MFC
    Réponses: 2
    Dernier message: 07/06/2006, 18h10
  2. Activation d'un bouton en fonction d'une checkbox
    Par zamoto dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/05/2006, 14h19
  3. [Win32] activation d'un bouton
    Par dede92 dans le forum Windows
    Réponses: 2
    Dernier message: 15/04/2006, 11h23
  4. comment activer/desactiver un bouton de controle
    Par OyyoDams dans le forum MFC
    Réponses: 17
    Dernier message: 09/04/2006, 11h15
  5. Réponses: 5
    Dernier message: 19/08/2005, 17h32

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