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
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
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