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 424 : INSERT INTO VALUES VBA [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut ERREUR 424 : INSERT INTO VALUES VBA
    Bonjour,

    je suis en train de construire une BD devant être manipulé (ajout , edit ,...) par formulaire.

    J'ai donc créé un formulaire permettant au user d'ajouter une ligne à une table.
    L'ajout est déclenché par un bouton, mais lors de l'exécutions, ACCESS m'indique un code erreur 424 objet requis.


    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
     
     
    Private Sub BTN_VALIDER_AJOUT_Click()
    Me.Requery
    Dim req1 As String
     
     
    req1 = "INSERT INTO SUIVI_EQUIPEMENT (Zone, FIN, Description, Code, PN, CMS, SN, MOD, CROQUIS, ATA, MODELE, Vendor )" _
    & "VALUES (" & txt_ZONE.Text & "," & txt_FIN.Text & "," & txt_DESCRIPTION.Text & "," & LST_FOURNISSEUR.Text & "," & txt_PN.Text & "
    ," & txt_CMS.Text & "," & txt_SN.Text & "," & txt_MOD.Text & "," & txt_CROQUIS.Text & "," & txt_ATA.Text & "," &  txt_AVION.Text & "," & txt.VENDOR.Text & ");"
     
     
    DoCmd.RunSQL req1
     
    BTN_VALIDER_AJOUT.Enabled = False
    EQUIPEMENT_AJOUT.Visible = False
     
     
     
    End Sub
    Les champs de texte sont tous créés, et la syntaxe à été vérifiée, et ma table autorise les champs vide pour tous les attributs.

    Quelqu'un a -t-il un idée ?

  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,

    La propriété Text est particulière dans son fonctionnement. Fais une recherche dans l'aide avec
    Je te conseille d'utiliser plutôt la propriété Value pour faire référence aux valeurs contenues dans un contrôle ou carrément utiliser uniquement le nom du contrôle.

    De plus, ton expression a priori ne prend pas en compte les types de données que tu as.
    Il faut quotter correctement les arguments :
    - entre guillemets ou apostrophes quand c'est du texte
    - entre croisillons # si c'est une date
    - sans quotes pour les variables numériques.

    Si on considère que tous tes variables sont du texte, le code serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    req1 = "INSERT INTO SUIVI_EQUIPEMENT (Zone, FIN, Description, Code, PN, CMS, SN, MOD, CROQUIS, ATA, MODELE, Vendor )" _
    & "VALUES ('" & txt_ZONE & "','" & txt_FIN & "','" & txt_DESCRIPTION & "','" & LST_FOURNISSEUR & "','" & txt_PN & "','" & txt_CMS _
    & "','" & txt_SN & "','" & txt_MOD & "','" & txt_CROQUIS & "','" & txt_ATA & "','" &  txt_AVION & "','" & txt.VENDOR & "');"
    Utiliser un Debug.Print est une bonne méthode pour "vérifier" ce qu'on a dans une expression SQL.

    Cordialement.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut
    Merci pour ton aide,
    effectivement la déformation du .net ma fait utiliser .text au lieu du .value.
    Mais j'ai utilisé des textbox dans un select sans .value :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql = "SELECT * FROM USER WHERE NOM = '" & Me.ID & "' AND MDP ='" & Me.MDP & "'AND POSTE = 'LOGISTIQUE';"
    Après test il semblerait que ce soit un problème de définition des objets ( la textbox n'est pas reconnu dans le formulaire actif) , je vais tenter le nomformulaire.txt_nom) le nom formulaire remplaçant le ME...

    Affaire à suivre

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut
    J'ai identifié l'erreur , mon control textbox est dans un sous formulaire, il faut donc appeler ce contrôle dans le formulaire ou se situe le sous formulaire.

    déclaration de mes conteneurs :
    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
     
    Option Compare Database
    Public ZONE As String
    Public FIN As String
    Public CMS As String
    Public ATA As Integer
    Public PN As String
    Public SN As String
    Public MODIF As String
    Public CROQUIS As String
    Public MODELE As String
    Public AVION As String
    Public DESCRIPTION As String
    Public CODE As String
    Public VENDOR As String
    sub d'ajout :
    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
     
    Private Sub BTN_VALIDER_AJOUT_Click()
    Me.Requery
    Dim req1 As String
     ZONE = Forms("F_QUALITE").txt_ZONE.Form
     FIN = Forms("F_QUALITE").txt_FIN.Form
     CMS = Forms("F_QUALITE").txt_CMS.Form
     ATA = Forms("F_QUALITE").LST_ATA.Form
     PN = Forms("F_QUALITE").txt_PN.Form
     SN = Forms("F_QUALITE").txt_SN.Form
     MODIF = Forms("F_QUALITE").txt_MOD.Form
     CROQUIS = Forms("F_QUALITE").txt_CROQUIS.Form
     MODELE = Forms("F_QUALITE").txt_MODELE.Form
     AVION = Forms("F_QUALITE").txt_AVION.Form
     DESCRIPTION = Forms("F_QUALITE").txt_DESCRIPTION.Form
     CODE = Forms("F_QUALITE").LST_CODE.Form
     VENDOR = Forms("F_QUALITE").LST_CODE.Form
     
    req1 = "INSERT INTO SUIVI_EQUIPEMENT (Zone, FIN, Description, Code, PN, CMS, SN, MOD, CROQUIS, ATA, MODELE, Vendor, AVION ) VALUES ('" & ZONE & "','" & FIN & "','" & DESCRIPTION & "','" & CODE & "','" & PN & "','" & CMS & "','" & SN & "','" & MODIF & "','" & CROQUIS & "','" & ATA & "','" & MODELE & "','" & VENDOR & "','" & AVION & "',);"
     
     
    DoCmd.RunSQL req1
     
    BTN_VALIDER_AJOUT.Enabled = False
    AJOUT_EQUIPEMENT.Visible = False
     
     
     
    End Sub

    la synthaxe ne fonctionne pas , à l'éxécution j'ai : erreur 2465 , erreur définie par l'application ou par l'objet.

    Connaissez vous la syntaxe pour pouvoir appeler un contrôle d'un sous formulaire dans le code du formulaire père ?

    Même principe que pour de l'objet?

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 8
    Par défaut
    J'ai trouvé !!! la connerie le matin très tôt !

    le code pour ceux que ca peut 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
    Private Sub BTN_VALIDER_AJOUT_Click()
     
    Dim req1 As String
     
    ZONE = Me!AJOUT_EQUIPEMENT.Form!txt_ZONE
     
     
     
     
     FIN = Me!AJOUT_EQUIPEMENT.Form!txt_FIN
     CMS = Me.AJOUT_EQUIPEMENT!txt_CMS
     ATA = Me.AJOUT_EQUIPEMENT!LST_ATA
     PN = Me.AJOUT_EQUIPEMENT!txt_PN
     SN = Me.AJOUT_EQUIPEMENT!txt_SN
     MODIF = Me.AJOUT_EQUIPEMENT!txt_MOD
     CROQUIS = Me.AJOUT_EQUIPEMENT!txt_CROQUIS
     MODELE = AVION
     
     DESCRIPTION = Me.AJOUT_EQUIPEMENT!txt_DESC
     CODE = Me.AJOUT_EQUIPEMENT!LST_FOURNISSEUR.Column(1)
     VENDOR = Me.AJOUT_EQUIPEMENT!LST_FOURNISSEUR.Column(0)
     
    req1 = "INSERT INTO SUIVI_EQUIPEMENT (Zone, FIN, Description, Code, PN, CMS, SN, MOD, CROQUIS, ATA, MODELE, Vendor, AVION ) VALUES ('" & ZONE & "','" & FIN & "','" & DESCRIPTION & "','" & CODE & "','" & PN & "','" & CMS & "','" & SN & "','" & MODIF & "','" & CROQUIS & "','" & ATA & "','" & MODELE & "','" & VENDOR & "','" & AVION & "');"
     
     
    DoCmd.RunSQL req1
    ...

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

Discussions similaires

  1. Erreur: Cannot insert the value NULL
    Par Identifiant dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/06/2007, 13h40
  2. Syntaxe requete SQL insert into dans VBA
    Par @rkane dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/12/2006, 22h03
  3. [SQL]Insert into Values
    Par Pitou5464 dans le forum Access
    Réponses: 10
    Dernier message: 07/08/2006, 12h01
  4. Erreur de syntaxe dans INSERT INTO VALUES
    Par Mariboo dans le forum Access
    Réponses: 4
    Dernier message: 25/05/2006, 18h57
  5. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38

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