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 :

prob insert into vba


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut prob insert into vba
    Bonjour,
    voila étant novice en VBA j'ai copier un code inster into afin qu'il soit actif dés que je clic sur un bouton...mais j'ai une erreur... alors je m'explique
    erreur dite:
    erreur d'execution 3061
    trop peu de paramètre, 3 attendus.

    voici ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub DAOajoutMAJ_prod_sorti_click()
     
        Dim db As DAO.Database
        Set db = DBEngine.OpenDatabase(".\gros_proget2.mdb")
        ' Exécution de la requête
        db.Execute "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values ( txt_ref_prod_nomm, txt_ref_cat_prod, txt_prod_base);"
        Debug.Print "Records Affected = " & db.RecordsAffected
        db.Close
     
    End Sub
    J'ai meme essayer avec des guillemets mais ça ne change rien...

    les champs a enregistrer sont numérique.
    les controles (valeur) txt_.... sont des zones de liste à 2 colonnes donc le contenu et une requete de sélection et la première colonne et un numauto...

    En gros je nage dans ce que j'essaye.... mais je doit surement faire une erreur de syntaxe... mais laquel????

    Merci d'avance pour votre aide!!

  2. #2
    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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    salut,
    le code actuel attend en effet que tes txt soient des valeurs...
    en partant du principe que ces valeurs sont celle de ton formulaire en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     db.Execute "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values ( " & Me.txt_ref_prod_nomm.value &"," & Me.txt_ref_cat_prod.value & "," & Me.txt_prod_base &");"
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub DAOajoutMAJ_prod_sorti_click()
     
        Dim db As DAO.Database
        dim iStr_SQL as string
        Set db = DBEngine.OpenDatabase(".\gros_proget2.mdb")
        ' Exécution de la requête
        istr_sql = "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values ( txt_ref_prod_nomm, txt_ref_cat_prod, txt_prod_base);"
        debug.print istr_sql
        db.Execute iStr_SQL, dbfailonerror
        Debug.Print "Records Affected = " & db.RecordsAffected
        db.Close
    End Sub
    Tu te rendras compte que ton SQL, ben, il est tout pourri.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub DAOajoutMAJ_prod_sorti_click()
     
        Dim db As DAO.Database
        dim iStr_SQL as string
        Set db = DBEngine.OpenDatabase(".\gros_proget2.mdb")
        ' Exécution de la requête
        istr_sql = "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values (" &  txt_ref_prod_nomm.value & ", " & txt_ref_cat_prod.value & ", " & txt_prod_base.value & ");"
        debug.print istr_sql
        db.Execute iStr_SQL, dbfailonerror
        Debug.Print "Records Affected = " & db.RecordsAffected
        db.Close
    End Sub
    Après, selon le type de tes champs, il va sans doute falloir jouer de la quote.
    [Access] Les bases du débogage => ici

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    merci de vos réponses....

    Effectivement les erreurs sont logique et j'ai compris le systemes de récupération des variables...
    ceci dis j'ai mis le dernier code de kloum plus complet que ce que j'avais avant...
    mais j'ai une erreur de syntaxe et j'ai cette ligne qui ce met en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     db.Execute iStr_SQL, dbFailOnError
    mais je ne comprend pas l'erreur, car je ne sais pas ce que veulent dire ces commande....
    est ce que l'on pourai me l'expliquer s'il vous plait...

    Merci encore...

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Et c'est quoi l'erreur ?
    [Access] Les bases du débogage => ici

  6. #6
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Par défaut
    il me met:
    erreur d'execution 3134
    erreur de syntaxe dans l'instruction de INSERT INTO
    puis il me surligne en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.Execute iStr_SQL, dbFailOnError
    QU'est ce que ça veu dire???

    Voici le code que j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim db As DAO.Database
        Dim iStr_SQL As String
        Set db = DBEngine.OpenDatabase(".\gros_proget2.mdb")
        ' Exécution de la requête
        iStr_SQL = "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values ( " & Me.txt_ref_prod_nomm.Value & "," & Me.txt_ref_cat_prod.Value & "," & Me.txt_prod_base & ");"
        Debug.Print iStr_SQL
        db.Execute iStr_SQL, dbFailOnError
        Debug.Print "Records Affected = " & db.RecordsAffected
        db.Close
    avec les variable de valeur "me.txt_ref_prod_nomm" ou "txt_ref_prod_nomm" ça me donne la meme erreur....

    je ne sais pas ce que je dois faire!!!

  7. #7
    Invité de passage
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Par défaut
    Je pense qu'il faut mettre un ' avant et après "txt_ref_prod_nomm"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       iStr_SQL = "INSERT INTO tab_sortie ( ref_prod_nomm, ref_cat_prod, ref_prod_base ) values (' " & Me.txt_ref_prod_nomm.Value & "','" & Me.txt_ref_cat_prod.Value & "','" & Me.txt_prod_base & "');"

Discussions similaires

  1. [AC-2007] Problème syntaxe requete INSERT INTO VBA
    Par afrogwada dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/07/2013, 10h44
  2. [VBA]INSERT INTO et récupération d'id auto
    Par norkius dans le forum Access
    Réponses: 8
    Dernier message: 24/02/2013, 20h17
  3. INSERT INTO vba
    Par isabelle b dans le forum VBA Access
    Réponses: 21
    Dernier message: 26/06/2008, 22h12
  4. [VBA-A] INSERT INTO en vérifiant les données avant !!
    Par Rumeurs dans le forum VBA Access
    Réponses: 9
    Dernier message: 12/04/2006, 15h07
  5. [VBA-A] INSERT INTO + PBL DE DOUBLONS
    Par forsay1 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/04/2006, 12h45

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