Non capisco di cosa stai parlando... eravamo rimasti che bastava quel codice... e basta quello... non servono altre cose...!
Dovrei fare qualche verifica su cosa hai fatto, ma mi pare tu stia mescolando troppi concetti in modo molto confuso.
Ti mostro un esempio leggermente differente, forse più complesso, ma segui le istruzioni... poi guarda il codice.
http://forum.masterdrive.it/access-79/login-sicurezza-form-44771/
IN sostanza chiudi la Maschera Iniziale, quindi effettua il LOGIN con
USER=admin
PWD=admin
Seleziona il Flag(Collega le tabelle al Server, che poi è quello che serve a te...)
Questo esempio, gestisce anche i LIVELLI di Accesso, ma tu guarda solo la parte di LINK.
Si basa su una Tabella [_TL] residente nel CLIENT, che riporta i NOMI delle Tabelle da andare a RICOLLEGARE nel BE(Server).
Il Sistema cicla questa tabella, recupera in nomi delle Tabelle da Linkare, e dando per scontato(un assunto) che il Server sia sempre nella CurrentProject.Path, effettua il Relink in modo un po differente da quanto suggerito sopra...
La funzione di cui parlo è la [getLinkedTable] nel Modulo [basGLOBAL]...
Per il resto non serve a nulla il CompactRepair che ti sconsiglio vivamente di fare in queste condizioni.