max.riservo ha scritto:
Se non fai debug difficilmente ne esci fuori ...
Comunque da quello che scrivi probabilmente ti manca (o non esegui) :
rs.MoveNext
lo scorrimento del recordset.
buongiorno max, il codice che utilizzo è questo, consigliatomi da @Alez
Dim rs As DAO.Recordset
Dim tdf As DAO.TableDef
Dim db As DAO.database
Dim strSQL As String, strPercorso As String, LinkBE As String, strPassword As String
strPassword = "password"
strSQL = cLnkTbl
LinkTbl = False
strPercorso = CurrentProject.Path & "\"
LinkBE = strPercorso & "BE.accdb"
Set rs = DBEngine(0)(0).OpenRecordset(strSQL) ' elenco tabelle da collegare
If Not (rs.BOF And rs.EOF) Then
Do Until rs.EOF
rs.MoveFirst
If TableExist(DBEngine(0)(0), rs.Fields(0).Value) Then
DBEngine(0)(0).TableDefs.Delete rs.Fields(0).Value
End If
Set tdf = DBEngine(0)(0).CreateTableDef(rs.Fields(0).Value)
tdf.Connect = ";DATABASE=" & LinkBE & ";PWD=" & strPassword & ";"
tdf.SourceTableName = rs.Fields(0).Value
DBEngine(0)(0).TableDefs.Append tdf
rs.MoveNext
Loop
End If
LinkTbl = True
Exit_Here:
rs.Close
Set rs = Nothing
Exit Function
il comando rs.MoveNext viene gestito ma poi ritorna sulla prima tabella con rs.MoveFirst per cui il loop fa un avanti/dietro senza mai terminare...come se non uscisse mai dalla verifica dell'esistenza di tabelle linkate ma ad Alex funge a me invece