Page 1 sur 1

[R] Problème Microsoft.Jet.OLEDB.4.0 connexion DB Access 03

Posté : mer. 10 févr. 2010 12:08
par djerase
Bonjour à tous,

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")
 
Même problème.

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
....
 
La question est la suivante. Comment puis-je faire pour savoir ce qui manque sur ces postes qui passent en erreur, ce sont des PCs en XP (SP2 ou 3) ou 2000 (SP4) avec les derniers Windows update relatifs à leur niveau de SP.

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.

Re: [..] Problème Microsoft.Jet.OLEDB.4.0 connexion DB Access 03

Posté : mer. 10 févr. 2010 15:18
par Tlem
Ca c'est un bon problème pour GaRydelaMer. ;)

Re: [R] Problème Microsoft.Jet.OLEDB.4.0 connexion DB Access 03

Posté : jeu. 11 févr. 2010 12:34
par djerase
Résolu. Il restait une variable qui était vide sans valeur par défaut. Comme Il y a une centaine de champs, j'ai du revérifier toutes les variables, pour être sûr qu'elles ont toujours une valeur.

Re: [R] Problème Microsoft.Jet.OLEDB.4.0 connexion DB Access 03

Posté : jeu. 11 févr. 2010 22:21
par Tlem
Et une 'auto-résolution' supplémentaire ... :)