Ce problème est constaté le 16/01/2023
Le CreateTabledef() de DAO ne fonctionne plus comme avant !
Avec un :
Set td = db.CreateTableDef(tblname, dbAttachSavePWD, tblname, strConnexionOdbc)
On obtient une erreur 3010, la table existe déjà, mais non elle n’existe pas, ni dans la liste des objets, ni dans TableDefs et encore moins dans MsysObjects.
Quand on observe td on peut voir que Name et égal à SourceTableName …
Le contournement est possible :
Set td = db.CreateTableDef() td.Name = strTable td.SourceTableName = tblname td.Connect = strConnexionOdbc td.Attributes = dbAttachSavePWD
Ou encore :
DoCmd.TransferDatabase acLink, "ODBC Database", strConnexionOdbc, acTable, tblname, strTable, False, False
Ce problème a été constaté avec une application qui fonctionne avec ce code depuis 2016, et sur une fonctionnalité qui est utilisée quotidiennement.
Le pilote ODBC n’est pas en cause, des tests ont été fait dans ce sens.