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 :

Erreur d'exécution 3144(UPDATE) Après clique sur annuler [AC-2019]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut Erreur d'exécution 3144(UPDATE) Après clique sur annuler
    Bonjour,

    Je viens vers vous car actuellement sur un formulaire quand je clique sur un bouton cela m'ouvre un inputbox, seulement si je clique sur annuler il me génère cette erreur:
    J'ai déjà essayé les On Error GoTo
    Nom : err.JPG
Affichages : 357
Taille : 15,6 Ko
    Nom : err2.JPG
Affichages : 336
Taille : 85,3 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub ChangPrixAlu_Click()
    On Error GoTo 0
    Dim PrixAlum
     
     
    PrixAlum = InputBox("Entrer le prix au kg de l'Aluminium", "Important", "")
     
    CurrentDb.Execute "UPDATE EnAttPlanification SET PrixAlu = " & PrixAlum & ";"
     
     
     
    Me.Refresh
     
    End Sub
    Auriez vous une idée pour soit ignoré l'erreur ou corriger le problème ?

    Merci par avance de votre aide

  2. #2
    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,

    Il faut vérifier que la valeur saisie n'est pas nulle avant l'exécution de la requête mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ChangPrixAlu_Click()
    On Error GoTo 0
    Dim PrixAlum
     
    PrixAlum = InputBox("Entrer le prix au kg de l'Aluminium", "Important", "")
     
    If Not IsNull(PrixAlum) then
         CurrentDb.Execute "UPDATE EnAttPlanification SET PrixAlu = " & PrixAlum & ";"
    end if
    Me.Refresh
     
    End Sub
    Attention le type de PrixAlu n'est pas correctement défini.

    Cordialement.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut
    Bonjour,

    J'ai copié collé votre code mais j'ai toujours la même erreur lorsque je clique sur Annuler.
    Le type de PrixAlu n'est en effet pas défini car je ne savais pas trop quelle type mettre .

    Cordialement

  4. #4
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 962
    Par défaut
    bonjour,
    tu ne précises pas quel montant est saisi, mais si jamais il y a des décimales, il vaut mieux mettre le montant entre guillemets ou apostrophes, étant donné que la virgule sert de séparateur de valeur dans SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CurrentDb.Execute "UPDATE EnAttPlanification SET PrixAlu = '" & PrixAlum & "';"
    'ou
    CurrentDb.Execute "UPDATE EnAttPlanification SET PrixAlu = """ & PrixAlum & """;"
    Le type de PrixAlu n'est en effet pas défini car je ne savais pas trop quelle type mettre
    à priori, le même type que celui du champ de la table non ?

    Si il n'y a pas de décimales, tu peux déclarer PrixAlum en Long, ou alors en Currency si le prix en contient.

    Autre chose, quel enregistrement doit être mis à jour ? ce n'est pas précisé dans l'instruction

  5. #5
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ChangPrixAlu_Click()
    On Error GoTo 0
    Dim PrixAlum
     
    PrixAlum = InputBox("Entrer le prix au kg de l'Aluminium", "Important", "")
    If StrPtr(PrixAlum) <> 0 Then
         CurrentDb.Execute "UPDATE EnAttPlanification SET PrixAlu = """ & PrixAlum & """"
    End If
    Me.Refresh
    End Sub

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut
    Bonjour à vous,

    Merci tee_grandbois
    Ah pardon en effet je ne précise pas le montant saisi, en effet il peut y avoir des virgules car c'est un prix qui peut varier.
    D'accord parfait merci pour l'info concernant les types de mes variables.
    En effet je ne l'ai pas précisé mais ce sont tous les champs de la table qui change et prenne une nouvelle valeur (en tout cas pour le moment )
    Merci aussi pour les infos concernant le code pour les deux versions comme ça si je veux changer au cas où je les aurait déjà

    Merci hyperion pour le code cela fonctionne.

    Merci à vous pour votre aide !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2022, 11h51
  2. Affichage informationS après clique sur élément
    Par titustitus dans le forum IHM
    Réponses: 4
    Dernier message: 22/05/2008, 22h08
  3. Nouvelle fenetre aprés clique sur bouton
    Par Bikra dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 25/03/2008, 13h45
  4. Réponses: 1
    Dernier message: 22/04/2007, 14h50
  5. [MySQL] Traitement après clique sur bouton submit
    Par H-bil dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/05/2006, 13h29

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