Modification base de données avec vba excel

Fermé
yeayo - 25 juin 2008 à 11:46
 yeayo - 15 sept. 2008 à 11:17
Bonjour,
je suis en stage pour mon école d'ingénieur généraliste donc je ne suis pas très calé en vba
mais là pour mon stage je dois effectuer des requêtes avec vba sous excel
je devais à la base juste modifier certaines requêtes qui avaient été créée par un stagiaire ingénieur informaticien
jusqu'à présent je n'effectuais que des requêtes qui extrayaient des données d'une base access et pour faire cela je me suis servi des requêtes que le stagiaire ingénieur avait fait avant moi
mais là cette fois-ci je dois créer une requête qui me permette de modifier certaines champs de la base de données
sachant que le stagiaire avait déjà fait quelque chose de similaire, il a fait une requête qui supprime les données de certains champs donc j'ai essayé de m'inspirer de ce qu'il avait fait

voila ce qu'il a mis :

Sub EffacerManquants()

Sheets("ArticlesManquants").Activate
Rows("5:50").Select
Selection.Delete
Cells(1, 4).Select

Dim Requete
Requete = Array("DELETE * FROM `MonChemin\base`.Manquants Manquants")
Call Connexion(Requete, Range("A5"))
End Sub

Sub Connexion(Requete As Variant, dest As Range)

With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MaBaseReseau", Destination:=dest)
.CommandText = Array(Requete)
.Refresh BackgroundQuery:=True
End With

End Sub


et voila ce que je voulais mettre :

Sub MAJ_Lieu_Stockage()

Sheets("EmplacementStock").Activate
Rows("5:50").Select
Selection.Delete
Cells(1, 4).Select

Dim Requete
Requete = Array(" UPDATE Stocks", _
" SET (Stocks.Lieu_Stk = 'MAGASIN')", _
" FROM `MonChemin\base`.Stocks Stocks", _
" WHERE (Stocks.Lieu_Stk = ' ')")

Call Connexion(Requete, Range("D5"))

End Sub

Sub Connexion(Requete As Variant, dest As Range)

With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MaBaseReseau", Destination:=dest)
.CommandText = Array(Requete)
.Refresh BackgroundQuery:=True
End With

End Sub


et j'obtiens avec ça une erreur 1004 (de syntaxe SQL)
et puis quand je met débogage il me surligne .Refresh BackgroundQuery:=True
l'erreur doit se trouver au niveau de la requête mais je ne sais pas quoi mettre d'autre lol et ça fait déjà 2 jours que j'essaye des trucs et que ça ne marche pas
svp aidez-moi, je commence à en avoir marre lol
A voir également:

2 réponses

bon ben personne n'a de solution pour moi ????? lol

sinon je peux faire autrement lol
mais j'aimerais savoir si c'est possible de mettre 2 update dans une même requête de mise à jour sur access ???

merci d'avance
0
Je remet à jour le sujet
parce que je suis toujours bolqué et j'en ai absolument besoin là

alors si quelqu'un peut m'aider, qu'il n'hésite pas merci
0