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 :

Insérer des variables dans une Requête


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
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut Insérer des variables dans une Requête
    Bonjour,

    Une question concernant VBA (Access 2003).

    Qu'est ce qui est faux dans ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      val1 = Forms!Formulaire1.Controls("Saisie1").Value
      val2 = Forms!Formulaire1.Controls("Saisie2").Value
      val3 = Forms!Formulaire1.Controls("Saisie3").Value
      val4 = Forms!Formulaire1.Controls("Saisie4").Value
      sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES (val1, val2, val3, val4);"
      DoCmd.RunSQL sql
    A l'exécution, Access me redemande les valeurs val1 à val4 alors qu'elles ont déjà été entrées dans mon formulaire.

    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES (" & val1 & ", " & val2 & ",  " & val3 & ",  " & val4 & ");"
    Dans ton code Val1 à Val4 n'était pas interprété car il était vue comme du texte.

    Ceci dit pourquoi ne pas utiliser un formulaire lié ?

    Ceci te permettrai de mettre directement les champs de la table 1 sans avoir à écrire une seule ligne de code.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut INSERT VALUES variables
    Bonjour,
    Merci d'avoir répondu.

    J'avais déjà essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES (" & val1 & ", " & val2 & ",  " & val3 & ",  " & val4 & ");"
    mais lorsque je clique sur le bouton du formulaire, j'ai le message d'erreur suivant : "Erreur de syntaxe (opérateur absent) dans l'expression 'Mon texte 1'.

    "Mon texte 1" est la valeur chargée dans la variable var1.

    J'aimerais surtout comprendre pourquoi je tourne en rond sur ce point particulier, avant de choisir une autre stratégie. La base incriminée (2003) est visible en http://www.planete-bleue.net/bd1.mdb (0.184 Mo).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    Fin de cauchemar, je viens de trouver la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES (" & "'" & val1 & "'," & "'" & val2 & "'," & "'" & val3 & "'," & "'" & val4 & "');"
    Il ne faut pas s'y perdre entre les , les ' et les ".
    Merci pour ton aide précieuse qui m'a fait explorer des pistes inimaginables. les requêtes en PHP sont une promenade de santé à côté d'Access.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Les requêtes Access sont très faciles à écrire à condition de ne pas le faire à la main ... c'est pour cela qu'il y a un éditeur de requêtes en Access où tu peux faire des requêtes extrèmement complexes avec quelques "glisser/coller".

    J'ai personnellement fait une requête avec une quinzaine de tables jointes en environ 1/2h. La même en Oracle et SQL pur et dur a pris 1 journée à mon collègue qui ne jurait que par le SQL. Choisi ton camp camarade :-).

    Une fois ta requête 'crée' tu peux voir le SQL correspondant en chanfgeant l'affichage du mode 'création' au mode 'SQL'.

    Note que certaines requêtes comme celle qui ont des sous-requêtes imbriquées ne peuvent pas être entièrement crées dans l'éditeur de requêtes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    Excellent tuyau, effectivement. Que de temps perdu de mon côté aussi !
    Fini le code pur et dur, au moins sous Access.

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

Discussions similaires

  1. [Débutant] Insérer des variables dans une loop for
    Par WhiteT1ger dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/01/2015, 20h39
  2. Mettre des variables dans une requête SQL
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 20/01/2015, 13h25
  3. insérer des variables dans une table en php
    Par sajodia dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/01/2009, 17h36
  4. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  5. insérer des côtes dans une variable pl/sql
    Par illegalsene dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 14h20

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