Problème de requète Access en VBA

Fermé
Shiva9502 Messages postés 2 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010 - 15 janv. 2010 à 12:55
Shiva9502 Messages postés 2 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010 - 15 janv. 2010 à 15:48
Bonjour a tous,

Voila, débutant en VBA j'ai un petit problème avec ma requête SQL de mise a jour.
En effet, je dois comparer des champs dans une table à des propriétés de fichiers. Mais mon problème c'est que ma requête SQL n'est pas reconnue par l'éditeur VB de access.

détails:

je dois tout d'abord récupérer le nom et la date de dernière modification du fichier (jusque la pas de problème). Le nom est stocké dans la variable "nom_complet" et la date dans "date_modif"
Mon but serait de comparer la variable au champ ISBN d'une table. Au moment ou mon programme trouve la concordance avec mon champ ISBN , le programme teste si la "date_modif" est supérieur ou égal au champ "Google_date". Si oui un champ "Google" doit passer à faux, sinon rien ne se passe

Voila ma requête SQL qui n'est pas prise en compte (et même non reconnu même si je ne sais pas pourquoi.

requête:

sql2 = "UPDATE [Environnement], [produits] SET [produits].[Google] = False WHERE ((nom_complet=[Produit].[ISBN] And dernier_up >=[Environnement].[dernier_up]));"

si quelqu'un à une idée, ça me retirerai une épine du pied.
Merci d'avance.
Nico

3 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
15 janv. 2010 à 14:11
bonjour

tu essais de mettre a jour 2 table ds ta requete!!!

sql2 = "UPDATE [Environnement], [produits] SET [produits].[Google] = False WHERE ((nom_complet=[Produit].[ISBN] And dernier_up >=[Environnement].[dernier_up]));"

tu peux tester :


sql2 = "UPDATE produits SET Google = False WHERE ((nom_complet =[Produit].[ISBN] And dernier_up >=[Environnement].[dernier_up]));"

IL reste encore un pb nom_complet c une variable de ton code vba tu ne peux dc pas le comparer ds ta requete
il faudrais un champ ds ta base meme si il né pas ds ta table
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
15 janv. 2010 à 14:23
Le mieux je pense ce serais de passer par un recordset:

du genre:
dim db as database
dim rs as recordset
set db = currentdb
set db.openrecordset "nom_de_ta_table"

with rs
do until .eof
if ......
toute t conditions

Si tu ne connais pas les RS je te donnerai un coup de main
0
Shiva9502 Messages postés 2 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 janvier 2010
15 janv. 2010 à 15:48
Bonjour moiced59,

merci pour ces informations, je n'avais pas vu ces informations avant car j'étais avec mon responsable en réunion.

Donc, si je te suis bien le mieux serait d'utiliser la fonction recordset? je vais donc travailler sur ce point.

Cependant tu me dis que nom_complet risque de poser un problème car c'est une variable mais dans ce cas je risque d'avoir aussi un soucis avec dernier_up qui est aussi issu d'une table.

entre-temps, j'ai aussi tester par l'éditeur de requête d'access mais ça ne résout pas mon problème. :'(

Enfin bref tout ça pour dire que je te remercie pour les infos et je tiendrais tout le monde au courant via des posts réguliers. (On sait jamais ça servira peut être à d'autres ;)

Nico
0