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 :

[VBA]Requête de Mise à jour de BDD qui ne s'exécute pas


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [VBA]Requête de Mise à jour de BDD qui ne s'exécute pas
    Bonjour tout le monde.

    Depuis plusieurs jours, je cherche à résoudre l'erreur qui se trouve dans mon code VBA.
    Le but de ce code est de récupérer l'identifiant (FormAjListMat) dans une zone de liste et la quantité (FormAJQte1Mat) dans une textbox saisie par un user et de mettre à jour la nouvelle quantité saisie dans la base de donnée.


    Voici, code en question :

    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
    Private Sub FormAjMat_Click()
     
    Dim qte As Integer
    Dim qte1 As Integer
    Dim sql As String
     
    'On récupère la quantitè déjà présente
    qte = "SELECT Quantite FROM materiel WHERE Reference_mat = ' " & FormAjListMat & " ' ;"
    'On lui rajoute la quantitè saisie dans le formulaire
    qte1 = qte + cint(FormAjQte1Mat.Value)
    'On met à jour la quantité du produit dans la BDD correspondant à la référence saisie dans le formulaire
    sql = "UPDATE materiel SET Quantite = ' & qte1 & ' WHERE Reference_mat = ' " & FormAjListMat & " ' ;"
    DoCmd.RunSQL (sql)
     
    End Sub
    En utilisant ce Code j'obtiens une erreur de compatibilité de type à la requête qte, et si je passe toute mes variable en String, l'exécution de ce programme me dis que je vais mettre 0 ligne de ma base de donnée à jour.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Points : 88
    Points
    88
    Par défaut
    1) Pourrais tu mettre ton code entre balises [ CODE ] [ / CODE ] sans les espaces ?
    2) Est ce que cela pourrait provenir de tes ' entre l'attribut Qte ?
    Que donne ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "UPDATE materiel SET Quantite = " & qte1 & " WHERE Reference_mat = ' " & FormAjListMat & " ' ;"

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 651
    Points : 34 364
    Points
    34 364
    Par défaut
    bonjour,
    bienvenue sur DVP
    tu fais une confusion entre la requête et son résultat. Il y a plusieurs petites erreurs facilement améliorables.
    de nombreuses ressources sont à ta disposition notamment
    http://access.developpez.com/faq

    -je te recommande de regarder la fonction DLookup
    -pas d'espaces de partout quand tu fais un test sur un champ texte
    -utilise la fonction CurrentDb.Openrecordset()
    -vérifie que ton champ quantite est de type numérique et pas texte.

    esasie ceci :

    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
    Private Sub FormAjMat_Click()
     
    Dim qte As Integer
    Dim qte1 As Integer
    Dim sql As String
     
    'On récupère la quantitè déjà présente
    qte = Dlookup("Quantite","materiel","Reference_mat = '" & FormAjListMat & "'")
     
    'On lui rajoute la quantitè saisie dans le formulaire
    qte1 = Cint(qte) + cint(FormAjQte1Mat.Value)
    'On met à jour la quantité du produit dans la BDD correspondant à la référence saisie dans le formulaire
    sql = "UPDATE materiel SET Quantite = " & qte1 & " WHERE Reference_mat = '" & FormAjListMat & "';"
    DoCmd.RunSQL (sql)
     
    End Sub

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    jcheck > Merci pour ton code celui ci marche parfaitement et ma gestion d'un parc informatique s'en trouve facilitée \o/. Seulement tu as utilisé plusieurs éléments que je n'ai jamais vu en cours, donc je vais chercher à quoi cela corresponds. Merci pour le coup de main.
    Ensuite avant de poster sur le forum, j'avais cherché dans la FAQ, Tuto, ou autre liens présents dans le premier topic du forum, mais il y avait tellement de sujet traité que je n'ai pas réussi à trouvé celui qui me correspondait.

    Falcdyr> j'avais déjà pensé à cette possibilité mais cela afficher qte et non la valeur de la variable.

    Merci encore pour le coup de main.
    Cordialement.

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

Discussions similaires

  1. requête de mise à jour qui n'a aucun effet
    Par niamo dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/06/2010, 14h00
  2. [AC-2002] requête de mise à jour avec code VBA
    Par sylvie dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/05/2010, 13h56
  3. [AC-2007] Code VBA d'une requête de mise à jour
    Par Crachover dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/03/2010, 19h09
  4. [MySQL] Requête de mise à jour qui n'effectue pas la modif
    Par Zhebulon dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 23/07/2009, 14h54
  5. [SQL] Requête de mise à jour qui ne s'exécute pas !
    Par zoom61 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/08/2007, 11h53

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