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