Wednesday, August 22, 2018

MAJ d'une base de données avec une feuille Excel (Code Windev)

//  Exemple de code Windev pour la mise à jour des données d'une base (SQL Server) à partir d'un fichier Excel contenant des références d'articles, avec la première ligne comme entête (Référence).

PROCEDURE act_MAJ()

sSQL     est une chaîne
sData     est une chaîne   
eFichier est un entier
fDimY   est un entier
eIndY    est un entier
bRésultat    est un booléen
sChemin     est une chaîne  


sSQL = [
               UPDATE   TableTest
               SET ColonneTest = XXX
               WHERE     ...
               Code IN (%1)
             ]

sChemin = fSélecteur("", "", "Sélectionnez un fichier...", "Sélection du fichier d'entrée" + TAB + "*.xls;*.xlsx" + RC + "Tous les fichiers (*.*)" + TAB + "*.*", "*.xls;*.xlsx")
eFichier = xlsOuvre(sChemin)
SI eFichier <> -1 ALORS
    eDimY = xlsNbLigne(eFichier)    // Nb de lignes de la feuille Excel
    POUR eIndY = 2 _A_ eDimY        // On commence à la 2ème ligne (la première ligne est l'entête)
             sData += [","] + "'" + xlsDonnée(eFichier,eIndY,1) + "'"
    FIN
SINON
    Erreur("Impossible de lire le fichier "+efs_Chemin,xlsMsgErreur(eFichier))
FIN

sSQL = ChaîneConstruit(sSQL,sData)

bRésultat = ExecuteSQL(sSQL) // Appel d'une procédure qui exécute le SQL avec HExécuteRequêteSQL()
   
SI bRésultat ALORS Info("MAJ terminé")

RENVOYER(lfb_Résultat)

No comments:

Post a Comment