Fiston53
Messages postés27Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 3 avril 2006
-
29 mars 2006 à 17:43
zorglube91
Messages postés1Date d'inscriptionmercredi 24 mars 2010StatutMembreDernière intervention24 mars 2010
-
24 mars 2010 à 16:27
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
Fiston53
Messages postés27Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 3 avril 2006 3 avril 2006 à 09:47
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#'"
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 3 avril 2006 à 10:55
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>
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 3 avril 2006 à 10:59
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!...
Fiston53
Messages postés27Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 3 avril 2006 3 avril 2006 à 12:04
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#"
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 3 avril 2006 à 12:16
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>
Fiston53
Messages postés27Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 3 avril 2006 3 avril 2006 à 14:13
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?
Fiston53
Messages postés27Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 3 avril 2006 3 avril 2006 à 15:26
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 !!!)
zorglube91
Messages postés1Date d'inscriptionmercredi 24 mars 2010StatutMembreDernière intervention24 mars 2010 24 mars 2010 à 16:27
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