Vba access pb de connection bdd et pb requète
Résolu/Fermé
ffmanfan
-
27 mai 2008 à 09:15
ffmanfan Messages postés 25 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 26 janvier 2010 - 2 juin 2008 à 10:17
ffmanfan Messages postés 25 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 26 janvier 2010 - 2 juin 2008 à 10:17
A voir également:
- Vba access pb de connection bdd et pb requète
- Gmail connection - Guide
- Facebook connection - Guide
- Acer quick access - Forum Logiciels
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
34 réponses
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
27 mai 2008 à 09:32
27 mai 2008 à 09:32
Y'a un truc qui ne va pas marcher, c'est db.execute, qui ne s'applique qu'à un objet de type database, donc je pense qu'un des problèmes vient de la définition de la base courante, que veux-tu faire avec "CurrentProject.Connection" ?
Si tu veux travailler sur la base courante, il faut déclarer "db as database" et mettre "set db=currentdb", ensuite tu pourras exécuter des requêtes...
Si tu veux travailler sur la base courante, il faut déclarer "db as database" et mettre "set db=currentdb", ensuite tu pourras exécuter des requêtes...
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
27 mai 2008 à 09:18
27 mai 2008 à 09:18
Salut,
si tu commençais par nous dire ce qui ne fonctionne pas : quel est le message d'erreur et à quelle ligne ? plutôt que de déposer 100 lignes de code...
si tu commençais par nous dire ce qui ne fonctionne pas : quel est le message d'erreur et à quelle ligne ? plutôt que de déposer 100 lignes de code...
Merci pour la connection, mais maintenant C la ligne pour db.execute qui affiche:
Erreur d'exécution '2185':
Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.
La ligne de code est la suivante:
db.Execute " INSERT INTO TblProduit VALUES LibProduit = " & txtNomPdt.Text & " , N°Catégorie = (SELECT N°Catégorie FROM TblCatégorieProduit WHERE LibCatégorie = " & lstCategorie.Text & " ) , Conditionnement = " & txtConditionnement.Text & " , N°Fournisseur = ( SELECT N°Fournisseur FROM TblFournisseur WHERE RaisonSociale = " & LstFournisseur.Text & " ) , RéfFournisseur = " & txtRefFourn.Text & " , Commentaire = " & txtCommentaire.Text & " ; "
merci d'avance
Erreur d'exécution '2185':
Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.
La ligne de code est la suivante:
db.Execute " INSERT INTO TblProduit VALUES LibProduit = " & txtNomPdt.Text & " , N°Catégorie = (SELECT N°Catégorie FROM TblCatégorieProduit WHERE LibCatégorie = " & lstCategorie.Text & " ) , Conditionnement = " & txtConditionnement.Text & " , N°Fournisseur = ( SELECT N°Fournisseur FROM TblFournisseur WHERE RaisonSociale = " & LstFournisseur.Text & " ) , RéfFournisseur = " & txtRefFourn.Text & " , Commentaire = " & txtCommentaire.Text & " ; "
merci d'avance
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
27 mai 2008 à 12:28
27 mai 2008 à 12:28
je crois que l'action 'execute' met entre () ses arguments
Erreur de syntaxe.
par contre je ne vois pas où car le curseur se place sur INTO. A moin que ce ne soit les & qui posent problème?
voilà le code:
db.Execute (INSERT INTO TblProduit VALUES LibProduit = " & txtNomPdt.Text & " , N°Catégorie = (SELECT N°Catégorie FROM TblCatégorieProduit WHERE LibCatégorie = " & lstCategorie.Text & ") , Conditionnement = " & txtConditionnement.Text & " , N°Fournisseur = (SELECT N°Fournisseur FROM TblFournisseur WHERE RaisonSociale = " & LstFournisseur.Text & ") , RéfFournisseur = " & txtRefFourn.Text & " , Commentaire = " & txtCommentaire.Text & " ;)
Merci d'avance
par contre je ne vois pas où car le curseur se place sur INTO. A moin que ce ne soit les & qui posent problème?
voilà le code:
db.Execute (INSERT INTO TblProduit VALUES LibProduit = " & txtNomPdt.Text & " , N°Catégorie = (SELECT N°Catégorie FROM TblCatégorieProduit WHERE LibCatégorie = " & lstCategorie.Text & ") , Conditionnement = " & txtConditionnement.Text & " , N°Fournisseur = (SELECT N°Fournisseur FROM TblFournisseur WHERE RaisonSociale = " & LstFournisseur.Text & ") , RéfFournisseur = " & txtRefFourn.Text & " , Commentaire = " & txtCommentaire.Text & " ;)
Merci d'avance
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
>
ffmanfan
27 mai 2008 à 14:12
27 mai 2008 à 14:12
mets ton curseur sur 'execute' et appuie sur F1, ça devrait ouvrir l'aide concernant la syntaxe de execute...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
27 mai 2008 à 14:18
27 mai 2008 à 14:18
Bonjour,
L'argument doit être de type string pour la commande Execute. Il faut donc la placer entre double cote (" "). Ensuite les insertions de type String doivent être entre simple cote (' ') dans une instruction SQL. Seules les insertions de type numérique n'en ont pas besoin.
;o)
polux
L'argument doit être de type string pour la commande Execute. Il faut donc la placer entre double cote (" "). Ensuite les insertions de type String doivent être entre simple cote (' ') dans une instruction SQL. Seules les insertions de type numérique n'en ont pas besoin.
db.Execute ("INSERT INTO TblProduit VALUES LibProduit = ' " & txtNomPdt.Text & " ' , N°Catégorie = _ (SELECT N°Catégorie FROM TblCatégorieProduit WHERE LibCatégorie = ' " & lstCategorie.Text & " ') _ , Conditionnement = ' " & txtConditionnement.Text & "' , N°Fournisseur = _ (SELECT N°Fournisseur FROM TblFournisseur WHERE RaisonSociale = ' " & LstFournisseur.Text & " ') , _ RéfFournisseur = ' " & txtRefFourn.Text & " ' , Commentaire = ' " & txtCommentaire.Text & "' ;")
;o)
polux
Bonjour,
Je retombe sur l'erreur 2185:
Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.
Je retombe sur l'erreur 2185:
Impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
27 mai 2008 à 14:39
27 mai 2008 à 14:39
db doit être décrit en type 'database'...
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
27 mai 2008 à 14:50
27 mai 2008 à 14:50
voilà ce que j'ai trouvé sur le site de support Microsoft:
https://support.microsoft.com/fr-fr/help/466677
;o)
https://support.microsoft.com/fr-fr/help/466677
;o)
Merci pour cette aide.
Je débute en vba et je suis mal réveillé même a 15H.
Et je pense avoir trouver un moyen plus simple.
Je vous tient au courant.
Je débute en vba et je suis mal réveillé même a 15H.
Et je pense avoir trouver un moyen plus simple.
Je vous tient au courant.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
27 mai 2008 à 15:13
27 mai 2008 à 15:13
de rien;
bon courage
;o)
polux
bon courage
;o)
polux
bonjour,
Mon code marche en partie. Mais le code sql ne fonctionne toujours pas. snif.
voilà le code:
db.Execute ("INSERT INTO TblTarfs (N°Produit, Année, DateActualisation, PrixHT, DateDébut, DateFin, Commentaire) VALUES ((SELECT N°Produit FROM TblProduit WHERE LibProduit=" & txtNomPdt.Text & "), " & txtAnnée.Text & ", " & txtDateActu.Text & ", " & txtPrix.Text & ", " & txtDateDébut.Text & ", " & txtDateFin.Text & ", " & txtCommentaire.Text & ");")
Mon code marche en partie. Mais le code sql ne fonctionne toujours pas. snif.
voilà le code:
db.Execute ("INSERT INTO TblTarfs (N°Produit, Année, DateActualisation, PrixHT, DateDébut, DateFin, Commentaire) VALUES ((SELECT N°Produit FROM TblProduit WHERE LibProduit=" & txtNomPdt.Text & "), " & txtAnnée.Text & ", " & txtDateActu.Text & ", " & txtPrix.Text & ", " & txtDateDébut.Text & ", " & txtDateFin.Text & ", " & txtCommentaire.Text & ");")
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
27 mai 2008 à 16:36
27 mai 2008 à 16:36
relis le post 8 ... les insertions de type String (texte) doivent être encadrées d'une simple cote ('papa') ... et les types Date avec (# 12/12/2007 #) ... seules les types numérique ne sont pas encadrées.
db.Execute ("INSERT INTO TblTarfs (N°Produit, Année, DateActualisation, PrixHT, DateDébut, DateFin, Commentaire) VALUES ((SELECT N°Produit FROM TblProduit WHERE LibProduit='" & txtNomPdt.Text & "'), " & txtAnnée.Text & ", #" & txtDateActu.Text & "#, " & txtPrix.Text & ", #" & txtDateDébut.Text & "#, #" & txtDateFin.Text & "#, '" & txtCommentaire.Text & "');")
Comme sa ça me fait la même chose.
Comme sa ça me fait la même chose.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
27 mai 2008 à 16:45
27 mai 2008 à 16:45
as-tu bien vérifié le type de tes champs et de tes insertions ???
blux
Messages postés
26756
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
1 avril 2025
3 332
27 mai 2008 à 16:48
27 mai 2008 à 16:48
Jamais vu de requête insert 'into avec' un 'select' comme source de 'values'...
C parce qu'en faite j'utilise une liste déroulante ou j'affiche un libelle mais le pb C que je doit récupérer l'identifiant du libelle d'où le select dans le insert into.
Mais qu'est ce que je raconte je suis encore sur l'ancien programme.
Là C parce que j'utilise un numéro automatique pour N°Produit dans le table TblProduit mais elle est relié a une table TblTarifs qui a le même identifiant que le produit ainsi que l'année car le prix peut changer tout les ans.
Là C parce que j'utilise un numéro automatique pour N°Produit dans le table TblProduit mais elle est relié a une table TblTarifs qui a le même identifiant que le produit ainsi que l'année car le prix peut changer tout les ans.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
28 mai 2008 à 08:34
28 mai 2008 à 08:34
tu peux donc faire un requete a part pour récupérer la donnée avant de la mettre dans l'insert, ça simplifierai un peu.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
28 mai 2008 à 08:52
28 mai 2008 à 08:52
Sa ne fonctionnent toujours pas.