Modification base de données avec vba excel
yeayo
-
yeayo -
yeayo -
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
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:
- Modification base de données avec vba excel
- Suivi de modification word - Guide
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Formules excel de base - Guide