Access : Sql & VBA
Fermé
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
-
6 juin 2013 à 12:24
nippon1944 Messages postés 140 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 4 juillet 2013 - 4 juil. 2013 à 11:14
nippon1944 Messages postés 140 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 4 juillet 2013 - 4 juil. 2013 à 11:14
4 réponses
Bonsoir,
"Access me dit qu'il manque un point virgule, une idée ? "
Non, il ne manque pas un " ; ", mais il y en a deux qui ne devraient pas y être. C'est ceux de la fin de l'expression.
Quand tu convertit ta requête du mode dit "graphique" en mode SQL, Access a la sale habitude d'ajouter ce fichu " ; " à la fin de l'expression; il ne faut donc pas oublier de le retirer quand tu la recopies dans ton code.
L'expression correcte dans sa partie terminale devrait donc être:
Nonobstant la remarque de Blux, je ne vois pas bien ni l'intérêt ni la nécessité d'écrire une requête-ajout pour entrer des données dans des tables quand il suffirait de passer à la ligne suivante pour avoir le même résultat, et si il se pose un problème de clés et de liaisons entre les tables, il suffit de prévoir des contrôles (cachés) dans ton formulaire pour que les numéros se reproduisent d'une table à l'autre.
"Access me dit qu'il manque un point virgule, une idée ? "
Non, il ne manque pas un " ; ", mais il y en a deux qui ne devraient pas y être. C'est ceux de la fin de l'expression.
Quand tu convertit ta requête du mode dit "graphique" en mode SQL, Access a la sale habitude d'ajouter ce fichu " ; " à la fin de l'expression; il ne faut donc pas oublier de le retirer quand tu la recopies dans ton code.
L'expression correcte dans sa partie terminale devrait donc être:
..... =Disponibilite.disponibilite)" & ")"
Nonobstant la remarque de Blux, je ne vois pas bien ni l'intérêt ni la nécessité d'écrire une requête-ajout pour entrer des données dans des tables quand il suffirait de passer à la ligne suivante pour avoir le même résultat, et si il se pose un problème de clés et de liaisons entre les tables, il suffit de prévoir des contrôles (cachés) dans ton formulaire pour que les numéros se reproduisent d'une table à l'autre.
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
6 juin 2013 à 16:25
6 juin 2013 à 16:25
Salut,
pas de AND pour faire deux INSERT INTO, mais deux INSERT INTO à faire l'un après l'autre (runsql à passer deux fois)...
pas de AND pour faire deux INSERT INTO, mais deux INSERT INTO à faire l'un après l'autre (runsql à passer deux fois)...
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
14 juin 2013 à 12:03
14 juin 2013 à 12:03
Maintenant je me suis attelé à la requête du module de recherche, j'ai 8 listes déroulantes pour définir les critères, donc ma question est :
je fait 8 requêtes et les imbriques ou j'essaye de faire une seule requête qui prend en compte tout les choix ?
et si je fait 8 requêtes, je les imbrique comment ?
je fait 8 requêtes et les imbriques ou j'essaye de faire une seule requête qui prend en compte tout les choix ?
et si je fait 8 requêtes, je les imbrique comment ?
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
14 juin 2013 à 12:34
14 juin 2013 à 12:34
je fait 8 requêtes et les imbriques
'marchera pas !
j'essaye de faire une seule requête qui prend en compte tout les choix ?
Oui, tu vas rebosser du VBA pour bâtir ta requête...
'marchera pas !
j'essaye de faire une seule requête qui prend en compte tout les choix ?
Oui, tu vas rebosser du VBA pour bâtir ta requête...
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
14 juin 2013 à 13:17
14 juin 2013 à 13:17
C'est pas le VBA qui me fait peur, c'est le SQL, mais bon je devrais m'en sortir ce coup là :)
Si question, pour mettre des lien hypertext dans une base, faut des quotes, des doubles quote ou c'est de "type" string ?
Si question, pour mettre des lien hypertext dans une base, faut des quotes, des doubles quote ou c'est de "type" string ?
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
14 juin 2013 à 13:36
14 juin 2013 à 13:36
Il existe un type de données nommé 'lien hypertexte', ça devrait répondre à ta question et à ton besoin...
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
14 juin 2013 à 14:20
14 juin 2013 à 14:20
Merci ça j'ai vu, ma question est : c'est de type (pour savoir comment je le rentre dans la base) et accessoirement comment je peux faire pour le faire entrer à l'utilisateur.
Dans un cas idéal : en faisant genre un double clic, ça ouvre la belle boite de dialogue windows, l'utilisateur il cherche son plan (et la photo un peu plus loin mais le principe est le même), il fait "ouvrir" et là paf ça rentre le chemin d'accés du fichier dans la base; et plus tard en mode consultation double clic et paf ça ouvre le fichier direct.
Dans un cas idéal : en faisant genre un double clic, ça ouvre la belle boite de dialogue windows, l'utilisateur il cherche son plan (et la photo un peu plus loin mais le principe est le même), il fait "ouvrir" et là paf ça rentre le chemin d'accés du fichier dans la base; et plus tard en mode consultation double clic et paf ça ouvre le fichier direct.
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
14 juin 2013 à 14:34
14 juin 2013 à 14:34
J'avais pas compris la demande...
Quand tu fais une insertion via INSERT INTO VALUES, la seule chose qui importe est le séparateur/limiteur de données, qui est le 'simple-quote' pour toute valeur de type alphanumérique.
Quand tu fais une insertion via INSERT INTO VALUES, la seule chose qui importe est le séparateur/limiteur de données, qui est le 'simple-quote' pour toute valeur de type alphanumérique.
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
19 juin 2013 à 15:29
19 juin 2013 à 15:29
Une question, pour afficher un résultat de recherche, il vaut mieux un sous-formulaire ou un objet de type listebox ?
la listebox ça risque de faire sale non ?
la listebox ça risque de faire sale non ?
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
19 juin 2013 à 15:35
19 juin 2013 à 15:35
Tout dépend ce que tu veux en faire...
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
19 juin 2013 à 16:01
19 juin 2013 à 16:01
Après recherche, ça change rien, faut une requête en béton est le résultat sera classe ^^
(exemple trouvé dans une appli fournie par mon tuteur, avec tu INNER JOIN et tout, gros taf en vue).
(exemple trouvé dans une appli fournie par mon tuteur, avec tu INNER JOIN et tout, gros taf en vue).
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
Modifié par nippon1944 le 19/06/2013 à 16:37
Modifié par nippon1944 le 19/06/2013 à 16:37
argh, au secours, non c'est juste la position des parenthèses sur les INNER JOIN je pense
SELECT Outils.numero_plan, Type.type, Produit.produit, Secteur.secteur, Poste.poste, Disponibilite.intitule, Controle.controle, Propriete_Etat.propriete, Immobilisation.immo FROM Outils INNER JOIN Type ON Outils.type=Type.N° (INNER JOIN Produit ON Outils.produit=Produit.N° (INNER JOIN Secteur ON Outils.secteur=Secteur.N° (INNER JOIN Propriete_Etat ON Outils.propriete_Etat.Propriete_Etat (INNER JOIN Immobilisation ON Outils.immobilisation=Immobilisation.N°)))) WHERE (((Outils.type)=[cboRechercheType])) OR (((Outils.produit)=[cboRechercheProduit])) OR (((Outils.secteur)=[cboRechercheSecteur])) OR (((Outils.poste)=[cboRecherchePoste])) OR (((Outils.disponibilite)=[cboRechercheDisponibilite])) OR (((Outils.controle)=[cboRechercheControle])) OR (((Outils.propriete_etat)=[cboRechercheEtat])) OR (((Outils.immobilisation)=[cboRechercheImmo])) ORDER BY Outils.numero_plan;
nippon1944
Messages postés
140
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
4 juillet 2013
3
Modifié par nippon1944 le 20/06/2013 à 11:36
Modifié par nippon1944 le 20/06/2013 à 11:36
la syntaxe la plus simple et la plus claire que j'ai pu trouver est
SELECT NOM, PRENOM, AGE, MARQUE, COULEUR FROM PERSONNES INNER JOIN PERSONNE_VOITURE ON ID_PERSONNE = PERSONNE_ID INNER JOIN VOITURES ON ID_VOITURE = VOITURE_ID INNER JOIN COULEURS ON ID_COULEUR = COULEUR_ID WHERE ID_PERSONNE = 3pourtant je fait ma requête il me dit opérateur manquant dans les INNER JOIN...
blux
Messages postés
26543
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 décembre 2024
3 318
20 juin 2013 à 12:48
20 juin 2013 à 12:48
As-tu essayé de préfixer les champs avec les noms de table ?
6 juin 2013 à 22:38
Modifié par Tessel75 le 6/06/2013 à 23:01
Le bouquin où j'ai appris ça est: "Le Grand Livre Access 2002" chez Micro-Application. Ou bien "Access VBA pour les Nuls"
J'ai toujours fait comme indiqué.
Maintenant, je ne prétends pas que c'est l'Evangile.
Modifié par nippon1944 le 7/06/2013 à 11:05
merci à tout les deux pour vos réponses, j'ai oublié de préciser que je travaille avec Access 2010.
J'ai mis un " ; " à la fin de la requête cela fonctionne, ne vous battez pas :)
J'ai créé la requête "à la main", je connais les bases en Sql, amateur éclairé dirons-nous, et je sais pas me servir de l'assistant Access. Je me suis déjà servi d'Access mais ça faisait 3 ans que j'y avait pas touché donc les souvenirs sont loin :/
J'ai décomposer ma requête en tapant les mots clés puis les champs un par un puis fait un essai d'ajout, presque tout mes champs fonctionnent, le truc c'est que le deuxième INSERT ne fonctionne pas.
7 juin 2013 à 11:09
Fais un Msgbox avant et tu verras qu'elle a une structure particulière...
7 juin 2013 à 11:17
Je veux bien essayer de faire plus simple mais comme personne peux m'aider sur mon lieu de stage il me reste que le net pour me dépanner.