Manipuler une BdD (Access ou SQL) en VBS

Manipuler une BdD (Access ou SQL) en VBS - VB/VBA/VBS - Programmation

Marsh Posté le 04-09-2008 à 14:55:41    

Salut,
 
 
je suis en train d'écrire un script qui recense tous les PC de mon réseau et inscrit les infos dans une DB.
 
Le script doit pouvoir être lancé plusieurs fois successivement sans créer de doublons.
 
Comme je découvre en ce moment même les joies (et surtout les doutes) de la manipulation d'une DB, j'aurais besoin que vous m'aidiez un peu.
 
Donc, voici comment je procède :
 

Dim obj_ConnectADODB
Set obj_ConnectADODB = CreateObject("ADODB.Connection" )


Je commence bien sur par créer mon objet "Connexion ADODB" pour disposer des outils de connexion.

fsFichierAccess = CurrentPath & "ComputerList.mdb"


Cette ligne me permet de selectionner le fichier MDB qui va bien grace à une fonction à moi "CurrentPath" qui renvoie le chemin d'où le VBS est lancé.

str_ACCESSConnectCmd = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & fsFichierAccess


Cette ligne crée la commande de connexion

obj_ConnectADODB.Open str_ACCESSConnectCmd,"",""


Ca y est, je suis connecté.

Set obj_DBACCESS_tbl_ComputerList = CreateObject("ADODB.Recordset" )


Je crée un RecordSet, autrement dit, un objet capable de contenir tout ou partie de ma DB.

obj_DBACCESS_tbl_ComputerList.Open "SELECT * FROM tbl_ComputerList", obj_ConnectADODB, DBOpenStatic, DBLockOptimistic


Je remplis mon RecordSet via la commande SQL : SELECT * FROM tbl_ComputerList, donc tous les éléments de la table tbl_ComputerList
 
...
 
La table tbl_ComputerList se décompose en plusieurs colones :
ComputerName | IPAddress | OU | OSVersion | LastSeen
 
Pour l'instant, je sais ajouter une nouvelle ligne :  

obj_DBACCESS_tbl_ComputerList.AddNew


Ensuite, sur cette ligne déposer les valeurs  

obj_DBACCESS_tbl_ComputerList("ComputerName" ) = str_ComputerName
obj_DBACCESS_tbl_ComputerList("LastSeen" )     = Date


 
MAIS,
 
Je ne comprend pas comment  
1 - Retrouver rapidement les valeurs IPAddress, OSVersion, etc etc en connaissant seulement le ComputerName (qui est (en principe) unique)
2 - Modifier l'une de ces valeurs
 
Sans me parser toute la DB à chaque fois.
 
Je pressent qu'il faut utiliser de la commande SQL du genre (pour la deuxième question)
 

SQLCmd = "UPDATE ... SET ... = ..."
obj_DBACCESS_tbl_ComputerList.Execute SQLCmd


 
Mais je ne comprend pas comment se définissent les paramètres :
- sélection de la colone "ComputerName"
- Quel Nom rechercher
 =
- sélection de la colone du champ à modifier
- Nouvelle valeur.
 
Alors, quelqu'un peut m'expliquer ça ???


---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
Reply

Marsh Posté le 04-09-2008 à 14:55:41   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed