Bonjour,

Je me tourne vers vous parce que je suis tombé sur un colle (du moins pour moi).

Voila l'idée: j'ouvre une connexion sur ma base de données access, j'ouvre mon fichier excel contenant soit des nouvelles lignes, soit des lignes à mettre à jour, et je traite le bazar.

La macro que j'ai écrite fonctionne plutôt bien, sur 25 fichiers de >50k lignes, 23 fichier fonctionne correctement.

Par contre, sur 2 fichier, j'ai des lignes qui causent une erreur:
Erreur d’exécution '-2147467259 (80004005)':
Impossible d'ouvrir la base de données « ». Ce n'est peut être pas un base de données que votre application reconnait ou le fichier est peut être endommagé.
Ce problème apparait sur la ligne 20833, la ligne 20911, etc... pour vous dire que ça sort vraiment de nulle part. J'ai vérifié et revérifié les lignes en questions, elles fonctionne. J'ai copié collé la requête qui plante dans access, et ça me sort mon résultat comme il faut. j'ai essayé de mettre la ligne en question au début du fichier, et elle plante toujours.

J'ai écrit un error handler qui check la description de l'erreur et fait "con.close... con.open" quand il trouve cette fameuse erreur... ça n'a rien résolu.

J'ai passé 2h30 sur google, et pas moyen de trouver quoi que ce soit qui peut m'aider...

Le code en lui même doit être juste, et honnêtement il est très compliqué donc je vous épargne d'avoir à le lire; voici ce que j'ai pour la connexion:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
CHEM_DB = main.Range("B1")
CHEM_SRC = main.Range("B2")
 
'ouvrir la connexion
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & CHEM_DB & "; Persist Security Info=False;"
con.Open
Un exemple de requete qui plante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
update `VIQMEL` set `VIQMEL`.`Fact date`='01/07/2011' where `VIQMEL`.`Notification`=306585712;
et une qui marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
update `VIQMEL` set `VIQMEL`.`Fact date`='INCORRECT' where `VIQMEL`.`Notification`=306650456;
C'est l'erreur que je ne comprends pas, on dirait que la connexion cafouille, mais pourquoi sur ces lignes, et pourquoi je ne peut pas la rétablir?

Merci d'avance.