je m'occupe d'un parc informatique de +/- 800 PCs en Windows 2000, XP et Vista.
J'avais programmé en son temps une appli VB6 qui se connectait à une DB Access 97 et envoyait des données relatives à la config machine, mémoire, ..., se lançant à chaque connexion d'un utilisateur sur le domaine.
J'ai réécrit toute cette appli avec autoit (avec DB Access97 puis 2003). Mais j'ai un problème bizarre.
Le programme tourne sur les 3/4 du parc, sur le 1/4 restant, j'ai une erreur à la commande .update de mon recordset.
J'ai essayé de réinstaller mdac 2.5 ou 2.8, ainsi que les 2 packs Microsoft pour OLEDB SP8 (Windows2000-KB829558-x86-ENU.exe WindowsXP-KB829558-x86-ENU.exe) mais rien n'y fait.
J'ai upgradé la DB de Access 1997 à Access 2003 mais toujours le même problème.
J'ai utilisé un autre type de connexion à un .mdb
Code : Tout sélectionner
$adoCon.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=\\172.19.170.1\bdip\BDIP_2003.mdb")
Voici le bout de code qui update la DB:
Code : Tout sélectionner
....
$dbname="bdip_2003.mdb"
$adoCon = ObjCreate ("ADODB.Connection")
$adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\172.19.170.1\bdip\BDIP_2003.mdb;Persist Security Info=False")
$adoRs = ObjCreate ("ADODB.Recordset")
$adoRs.CursorType = 1
$adoRs.LockType = 3
$adoRs.Open ("Select * From TakeMachine Where NomPC ='" & $NomPC & "'", $adoCon)
With $adoRs
If $adoRs.EOF Then
$adoRs.AddNew
EndIf
$adoRs.Fields ("NomPC").Value = $NomPC
$adoRs.Fields ("User_Name").Value = $User
$adoRs.Update
EndWith
$adoRs.Close
....
Impossible de débugger l'exe avec depends ou windbg, donc j'ai installé Autoit et Scite sur un PC à problème mais je ne trouve rien.
J'ai mis des msgbox pour connaitre l'état de la connexion quand je fais l'open, l'état du recordset. Tout est correct. J'ai essayé de créer une entrée dans Access avec la clé (nompc) pour qu'il ne fasse pas un .addnew mais même erreur. Sur ces machines, il refuse la commande .Update de mon recordset.
Merci pour toute suggestion.


