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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
djerase
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 10 févr. 2010 11:51
Status : Hors ligne

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

#1

Message 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.
Modifié en dernier par djerase le jeu. 11 févr. 2010 12:35, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Ca c'est un bon problème pour GaRydelaMer. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
djerase
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 10 févr. 2010 11:51
Status : Hors ligne

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

#3

Message 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.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#4

Message par Tlem »

Et une 'auto-résolution' supplémentaire ... :)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre