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
- Hotmail connection - Guide
- Gmail connection - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Facebook connection - Guide
- Code de connection internet gratuit ✓ - Forum Réseau
34 réponses
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
28 mai 2008 à 09:02
28 mai 2008 à 09:02
G peut être trouver une alternative a sa je vais finalement combiner les deux tables (je supprime la table tarifs et l'insère dans la table Produit) et pour les dates et l'année je ferai un formulaire de mise a jour.
Parce que là je croi que sa ne va jamais marcher.
Merci quand pour ces aides; ça m'a aidé a mieux comprendre la combinaison vba sql.
Encore merci a vous pour votre réactiviter.
Parce que là je croi que sa ne va jamais marcher.
Merci quand pour ces aides; ça m'a aidé a mieux comprendre la combinaison vba sql.
Encore merci a vous pour votre réactiviter.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
29 mai 2008 à 09:24
29 mai 2008 à 09:24
Bonjour,
Pour mon sql en faite il suffit d'enlever le ".Text" qu'il y a dans les variables.
Maintenant il accepte mon sql.
Après il suffit que les variable soit du même format. Sa c'est autre chose.
Pour mon sql en faite il suffit d'enlever le ".Text" qu'il y a dans les variables.
Maintenant il accepte mon sql.
Après il suffit que les variable soit du même format. Sa c'est autre chose.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
30 mai 2008 à 08:24
30 mai 2008 à 08:24
Bonjour,
G une erreur dans ma requète mais je ne sais pas où.
Enfin C le débeugueur de visual basic access 2007 qui me dit :
Erreur 3067: la requête doit être construite à partir d'au moins une table ou une requête source.
Voilà le code:
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", (SELECT Année FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateActualisation FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT PrixHT FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Remise FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateDébut FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateFin FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Commentaire FROM TblProduit WHERE N°Produit= " & txtN°Pdt & "));"
Merci d'avance.
G une erreur dans ma requète mais je ne sais pas où.
Enfin C le débeugueur de visual basic access 2007 qui me dit :
Erreur 3067: la requête doit être construite à partir d'au moins une table ou une requête source.
Voilà le code:
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", (SELECT Année FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateActualisation FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT PrixHT FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Remise FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateDébut FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT DateFin FROM TblProduit WHERE N°Produit= " & txtN°Pdt & ") , (SELECT Commentaire FROM TblProduit WHERE N°Produit= " & txtN°Pdt & "));"
Merci d'avance.
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
30 mai 2008 à 10:39
30 mai 2008 à 10:39
J'insiste : on ne met pas un select dans un value, il faut contruire la chaine reqI avec des dlookup à la place des select...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
30 mai 2008 à 10:55
30 mai 2008 à 10:55
je connaissais pas je vais essayer
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
30 mai 2008 à 11:06
30 mai 2008 à 11:06
dlookup permet de récupérer une valeur unique dans une table comme le fait un select avec un where bien restrictif.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
30 mai 2008 à 11:16
30 mai 2008 à 11:16
dlookup ne fonctionne pas pour récupérer les champs de type Numéro auto?
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
30 mai 2008 à 12:51
30 mai 2008 à 12:51
jamais testé pour ce cas-là, mais je ne vois pas pourquoi il ne pourrait pas le récupérer...
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 08:22
2 juin 2008 à 08:22
non sa ne marche pas il m'affiche:
erreur 2471:
L'expression entrée comme paramètre est à l'originede l'erreur suivante:<<N°Produit>>.
voilà mon code:
reqS1 = DLookup("N°Propduit", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS1 est déclarer en Variant.
Merci d'avance.
erreur 2471:
L'expression entrée comme paramètre est à l'originede l'erreur suivante:<<N°Produit>>.
voilà mon code:
reqS1 = DLookup("N°Propduit", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS1 est déclarer en Variant.
Merci d'avance.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 08:36
2 juin 2008 à 08:36
non C bon cette ligne ne me servait à rien en faite.
Mon insert into marche mais bizarrement en faite il a du mal a rentré les dates (ex: au lieu de rentrée 01/01/2008, il rentre 00:00:43 or il est 8:33) ainsi que les variables string (au lieu de mettre rien il met 1,28652058432935E-03).
C'est vraiment bizarre.
Voilà mon code:
reqS2 = DLookup("Année", "TblProduit", "N°Produit = " & txtN°Pdt & "")
reqS3 = DLookup("DateActualisation", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS4 = DLookup("PrixHT", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS5 = DLookup("Remise", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS6 = DLookup("DateDébut", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS7 = DLookup("DateFin", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", " & reqS3 & ", " & reqS4 & ", " & reqS5 & ", " & reqS6 & ", " & reqS7 & ");"
Merci d'avance.
Mon insert into marche mais bizarrement en faite il a du mal a rentré les dates (ex: au lieu de rentrée 01/01/2008, il rentre 00:00:43 or il est 8:33) ainsi que les variables string (au lieu de mettre rien il met 1,28652058432935E-03).
C'est vraiment bizarre.
Voilà mon code:
reqS2 = DLookup("Année", "TblProduit", "N°Produit = " & txtN°Pdt & "")
reqS3 = DLookup("DateActualisation", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS4 = DLookup("PrixHT", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS5 = DLookup("Remise", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS6 = DLookup("DateDébut", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqS7 = DLookup("DateFin", "TblProduit", "N°Produit = " & txtN°Pdt & " ")
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", " & reqS3 & ", " & reqS4 & ", " & reqS5 & ", " & reqS6 & ", " & reqS7 & ");"
Merci d'avance.
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
2 juin 2008 à 08:39
2 juin 2008 à 08:39
les dates doivent être mises entre #, et en format anglais (mm/jj/aaaa)...
pour les variables string, je ne comprends pas le problème..., la colonne access est décrite en texte ou en numérique ?
pour les variables string, je ne comprends pas le problème..., la colonne access est décrite en texte ou en numérique ?
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 08:51
2 juin 2008 à 08:51
Autant pour moi G complètement oublier de mettre la colone qu'est en string et G du mal a me rentré dans la tête les # pour les dates.
Sinn G fait les modifs et voilà le résultat:
Erreur 3346:
Le nombre de valeur de la requête doit coïncider avec le nombre de champs destination.
Voilà le code:
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", #" & reqS3 & "#, " & reqS4 & ", " & reqS5 & ", #" & reqS6 & "#, #" & reqS7 & "#, '" & reqS1 & "');"
Et pour répondre a ta question la colonne est en texte.
Sinn G fait les modifs et voilà le résultat:
Erreur 3346:
Le nombre de valeur de la requête doit coïncider avec le nombre de champs destination.
Voilà le code:
reqI = "INSERT INTO TblAncienTarifs (N°Produit, Année, DateActualisation, PrixHT, Remise, DateDébut, DateFin, Commentaire) VALUES (" & txtN°Pdt & ", " & reqS2 & ", #" & reqS3 & "#, " & reqS4 & ", " & reqS5 & ", #" & reqS6 & "#, #" & reqS7 & "#, '" & reqS1 & "');"
Et pour répondre a ta question la colonne est en texte.
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
2 juin 2008 à 09:06
2 juin 2008 à 09:06
J'ai du mal à voir, mais ça semble correct, il faudrait donc que tu fasses un affichage via une 'msgbox reqI' pour voir si tu n'as pas oublié de fermer une double-quote ou un truc comme ça...
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 09:24
2 juin 2008 à 09:24
Je crois savoir.
que se passe t-il quand on veut insérer un nombre a virgule??
formalisme insert into:
INSERT INTO NomDeTable (Champ1, ...) VALUES (Val1, ...)
Or si une des valeur est avec une virgule je pense que sa pose problème:
ex: essayer d'insérer 0,13 (soit 13%) sa fera:
INSERT INTO NomDeTable (Champ1, Champ2) VALUES (Val1, 0,13)
!!!!!!
on veut insérer 2 valeur mais du fait du chffre a virgule il pense qu'on en rentre 3. Même si on rajoute un espace ça ne fonctionnera pas car il ne prend en compte les espace que quand il sont entre []. Mais cela n'a aucun sens pour les type numérique, on utilise ça uniquement dans le cas de données textes contenant des espaces (ex: [salut a tous]).
Comment faire pour insérer des chiffres a virgules??
Merci d'avance.
que se passe t-il quand on veut insérer un nombre a virgule??
formalisme insert into:
INSERT INTO NomDeTable (Champ1, ...) VALUES (Val1, ...)
Or si une des valeur est avec une virgule je pense que sa pose problème:
ex: essayer d'insérer 0,13 (soit 13%) sa fera:
INSERT INTO NomDeTable (Champ1, Champ2) VALUES (Val1, 0,13)
!!!!!!
on veut insérer 2 valeur mais du fait du chffre a virgule il pense qu'on en rentre 3. Même si on rajoute un espace ça ne fonctionnera pas car il ne prend en compte les espace que quand il sont entre []. Mais cela n'a aucun sens pour les type numérique, on utilise ça uniquement dans le cas de données textes contenant des espaces (ex: [salut a tous]).
Comment faire pour insérer des chiffres a virgules??
Merci d'avance.
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
2 juin 2008 à 09:28
2 juin 2008 à 09:28
t'as essayé le point décimal ? vu qu'on est en format british, ça m'étonnerait pas qu'il faille le mettre en lieu et place de la virgule...
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 09:33
2 juin 2008 à 09:33
c'est sa le problème mon champ est de type numérique et plus précisément pourcentage et de base il met les virgules.
Mais a mon avis si je mais:
INSERT INTO NomTable (Champ1, Champ2) VALUES ([Val1] ,[Val2])
Ça contredit ce que j'ai dit mais il y a que les cons qui ne change pas d'avis^^.
Qui ne tante rien a rien au point où j'en suis.
Mais a mon avis si je mais:
INSERT INTO NomTable (Champ1, Champ2) VALUES ([Val1] ,[Val2])
Ça contredit ce que j'ai dit mais il y a que les cons qui ne change pas d'avis^^.
Qui ne tante rien a rien au point où j'en suis.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 09:44
2 juin 2008 à 09:44
Ça ne fonctionne toujours pas avec les []. Ça me dit qu'il manque une donnée.
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
2 juin 2008 à 09:46
2 juin 2008 à 09:46
je teste chez moi et je te tiens au courant...
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
3 289
>
blux
Messages postés
26003
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 avril 2024
2 juin 2008 à 09:56
2 juin 2008 à 09:56
en le mettant entre simple quote '0,15' ou en le mettant avec un point décimal 0.15, ça marche...
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 09:59
2 juin 2008 à 09:59
ouf enfin sa marche a merveille.
Je te remercie Blux.
Je te remercie Blux.
ffmanfan
Messages postés
25
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
26 janvier 2010
2
2 juin 2008 à 10:17
2 juin 2008 à 10:17
il faut impérativement mettre des ' pour les nombres a virgule (dans le cas ou vous mettez des virgules) car sinon sa créer une erreur. G eu le même problème avec un update.
En tout cas encore merci.
En tout cas encore merci.