Insèrer dans une table un recordset [Résolu]

Signaler
Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006
-
Messages postés
1
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
24 mars 2010
-
Bjr,
Comment remplir une table Access avec le contenu d'un recordset?
J'ai réussi avec l'aide d'un pro à faire une connexion ADODB, et de remplir un recordset.
Mon problème maintenant est de transférer ces info contenu dans le recordset dans une table access?
Merci

32 réponses

Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006

Bonjour RV et JP,
j'espère que le wk à été bon, et reparti pour une semaine de travail!!!
concernant mon problème, je vous rassure ca marche mais il y a encore un petit truc en plus (jamais satisfait le fiston).
Je fais le SELECT et l'import sur une table de 900 000 lignes, donc un peu long,j'aimerais faire un WHERE sur ma requete, mais ca ne marche pas (merci FoxPro !!!).
Mon champ à contraindre est de type Date, donc je pense que ma syntaxe est mauvaise.

rsJeu.Open "SELECT * FROM GPMOURES WHERE [MV_DMOU] > '#01/01/2006#'"

Qu'en pensé vous?
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
Salut Fiston,

bon week-end en effet, mais ici à GRENOBLE, il pleuvait un peu (c'est pas grave, la pluie, c'est bien aussi). En ce qui concerne "jamais satisfait", c'est aussi ma devise ! (quelle coincidence!)

pour ta requête avec ta clause WHERE, enlève les apostrophes autour de la date!

rsJeu.Open "SELECT * FROM GPMOURES WHERE [MV_DMOU] > '#01/01/2006#'"

et assures-toi que, dans ta table source, les dates sont bien des dates! Si elles ne sont que des représentations littérales de date, il va te falloir les transformer en date.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Quand un critère est de type Date, il doit être saisi sous la forme #04/03/2006#, C'est à dire #mm/jj/aaaa# ou #11:00:00# c'est à dire #hh:mm:ss#. Il ne faut pas mettre de cotes et il faut bien penser à la forme anglaise de la date.
Bon courage!...
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
Salut jperre,

bien vu le format anglais!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006

Dans mon cas, je veux selectionner juste les enregistrements de 2006,donc je supprime le pblm de format (01/01/2006 est bon pour les deux format).
alors j'ai fais plusieur test :

Le code suivant marche :
rsJeu.Open "SELECT MV_ORI,MV_DMOU,MV_CART,MV_LOCD FROM GPMOURES

mais qd j'ajoute un critère :
rsJeu.Open "SELECT MV_ORI,MV_DMOU,MV_CART,MV_LOCD FROM GPMOURES WHERE MV_DMOU > #01/01/2006#"


N°d'erreur : Erreur d'exécution '-2147467259(80004005)':


Message : [Microsoft][ODBC Visual FoxPro Driver]Missing operand.

Moi je ne comprend pas !!!
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
C'est ce que je disais,
il est possible que dans ta table dbf, le champ MV_DMOU ne soit pas un type Date (vérifies les données que tu y vois), ou pire, que le driver ne sache pas interprêter la comparaison de Date (surtout avec les #). Essayes éventuellement d'enlever les # (donc de traiter des numériques, en enlevant aussi les /), ou de remplacer les # par des apostrophes (donc de traiter des chaines, en enlevant aussi les /).

Enfin, bref, fais nous voir un échantillon de données (en insérant un debug.print bien placé, et bien concaténé pour n'avoir qu'une ligne par enregistrement, et en nous postant le contenu du debug.print), que l'on puisse voir à quoi ressemblent ces données, et te donner la meilleur façon de les filtrer.

Le plus simple reste de faire un import complet, et ensuite, sur cet import, faire une requête filtrée (mais bon 900 000 !).


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006

J'ai fais différents test,
WHERE MV_DMOU > #01012006# " => ancien message d'erreur
WHERE MV_DMOU > '01012006' " => nouveau message d'erreur
WHERE MV_DMOU > 01/01/2006 " => nouveau message d'erreur

nouveau message d'erreur:
N°d'erreur : Erreur d'exécution '-2147217913(80040e07)':
Message : [Microsoft][ODBC Visual FoxPro Driver]Operator/operand type misatch.

J'ai peur que foxpro ne gère pas les > ou < et meme pas le =
sinon mon debug print sur la requete SQL sans WHERE me donne :
11588 19/07/2002 25631090
11588 19/07/2002 25693109
Donc je suppose que MV_DMOU est de type date.
A tu une autre idée?
Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006

BRAVO !!!
la solution final qui marche :
MV_DMOU > {01/01/2006}"
Merci pour ts RV, et merci pour ton aide jperre
Me voila enfin satisfait !!!
Plus cas finaliser mon projet ...
Heureusement qu'il existe des gars comme vs qui maîtrise le code!!!
(au faite RV, il y a un peu de soleil sur rennes !!!)
Messages postés
794
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
12 juin 2012
5
tu cherches à me faire croire au Père Noël :)
nous aussi, il revient (mais alors, il est super grand le soleil !)

à+, fiston

rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
Messages postés
1
Date d'inscription
mercredi 24 mars 2010
Statut
Membre
Dernière intervention
24 mars 2010

bonjour à tous,
j'ai bien vu que le message date de 2006 mais merci quand même rvblog pour sa solution qui marche super bien pour faire un transfert recordset via ODBC vers table access
Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Et pour cause car vous avez appelé votre connection ConBase et non pas oConn!...
Messages postés
27
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
3 avril 2006

Ok, maintenant j'ai une autre erreur :
Erreur d'exécution '424': Objet requis

sur le lancement de la requette!!
Mais cela avance qd meme !!