17/10/2023 - coccobello ha scritto:
esce un messaggio che dica “Interfaccia non registrata”.
Nell'oggetto indichi DAO ma né il messaggio d'errore né in altre parti spieghi che c'è DAO di mezzo (anche se dal codice non può che esserci DAO di mezzo). L'errore evidenzia qualche riga particolare? Nei riferimenti alle librerie c'è DAO e/o Microsoft Office Access Database Engine xx.x? Se c'è anche ADO, in quale ordine sono inseriti?
Esplicita nel codice che quelle classi fanno parte di DAO, quindi
Dim Db As DAO.Database 'dichiarazioni di variabili
Dim Td As DAO.TableDef
in questo modo l'ordine di inserimento dei riferimenti diventa ininfluente (non so neanche se Database ci sia in ADO, boh)
Pur essendo il metodo OpenDatabase anche di DbEngine, lo userei per l'oggetto Workspace predefinito (non credo ce ne siano altri)
Set Db = DBEngine(0).OpenDatabase(NomeDB)
Hai aperto Access via codice? C'è da qualche parte qualcosa del tipo
Dim appAccess As Access.Application
Set appAccess = New Access.Application
oppure
Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
Hai creato in qualche modo un oggetto DbEngine?
(qualcuno sostiene che sia prolisso… bah… sarà per questo che mentre digito post chilometrici arriva Oregon con 1 riga e io faccio la figura di quello che va per gli affari suoi)