Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 16h41   #1
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 43
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 43
Points : 27
Points : 27
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 :
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.
Dormeur74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 17h22   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Code :
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/07/2011, 07h41   #3
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 43
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 43
Points : 27
Points : 27
Par défaut INSERT VALUES variables

Bonjour,
Merci d'avoir répondu.

J'avais déjà essayé
Code :
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).
Dormeur74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 08h27   #4
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 43
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 43
Points : 27
Points : 27
Fin de cauchemar, je viens de trouver la solution :

Code :
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.
Dormeur74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 13h59   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/07/2011, 07h51   #6
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 43
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 43
Points : 27
Points : 27
Excellent tuyau, effectivement. Que de temps perdu de mon côté aussi !
Fini le code pur et dur, au moins sous Access.
Dormeur74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h34.


 
 
 
 
Partenaires

Hébergement Web