ce qui serait intéressant, c'est de savoir exactement sur quelle ligne du programme il fait cette erreur.
et le debugger ne sert à rien, car j'imagine que si tu installe VB sur le pc cible, le programme va probablement marcher.
le mieux serait peut-être d'intérer une instruction MsgBox entre chaque ligne au début du programme pour trouver où il s'arrête.
au passage, il n'y a pas besoin de créer une source de données pour lire un MDB depuis VB. que tu utilise les composants ADO/OLEDB ou ODBC, dans les deux cas, il est possible de créer une chaîne de connexion qui indiquera le chemin complet du fichier.
mais si le chemin de ta base est différent sur ton poste de développement et sur les postes déployés, il faut construire cette chaîne à l'exécution.
en ODBC, je fais ça :
CnxIn:=''+
'DBQ=' + DatabaseName + ';'+
'DefaultDir=P:\pgp\Base\Media;'+
'Driver={Microsoft Access Driver (*.mdb)};'+
'DriverId=281;'+
'FIL=MS Access;'+
'MaxBufferSize=2048;'+
'MaxScanRows=8;'+
'PageTimeout=5;'+
'SafeTransactions=0;'+
'Threads=3;'+
'UID=admin;'+
'UserCommitSync=Yes;'+
(c'est du pascal, donc remplace les apostrophes par des doubles quotes et les + par des &)
en OLEDB, ça serait un truc du genre :
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=.\InstantProductMachine.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False