Newsgroup: it.comp.lang.visual-basic
Titolo: problema per riallegare tabelle su VBA

Ciao e anzitutto grazie per l'aiuto che date .... o che diamo, fate voi
!
Ho questo problema: praticamente devo far si che una specifica tabella
collegata venga di volta in volta, dinamicamente, a seconda della
scelta che si fa (in base a una data) collegata ad un'altra, ma nello
stesso tempo il colelgamento mantega il nome originario: sto diventando
pazzo da più di una settimana. Le ho rpovate tutte !!!!!
Posto qualche riga di codice per darvi l'idea
d proviene d un'altro codice che grazie a dio funziona ed è sempre un
lunedì
Public Sub nuovasettimana(d As Date)
Dim dbs As Database, dbd As Database, rs As Recordset
Set dbs = CurrentDb
Set dbd = OpenDatabase("c:\miopercorso\DBREMOTO.mdb")
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
Dim tblnuova As dao.TableDef
Dim tblsetti As ADOX.TABLE
Dim tblcntrl As dao.TableDef
Dim t As Date
Dim nomtab As String
Dim nomtabdel As String
Dim x As Integer
Dim cnn As String
Dim StrSql As String
cnn = "c:\miopercorso\DBREMOTO.mdb"
'VENGONO CREATE 7 NUOVE TABELLE IN BASE AI GIORNI DELLA SETTIMANA
d = d - 1
For x = 1 To 7
        d = d + 1
        nomtab = "S_" & YEAR(d) & IIf(Len(Month(d)) = 1, "0" &
Month(d), Month(d)) & IIf(Len(day(d)) = 1, "0" & day(d), day(d))
        Set tblnuova = dbd.CreateTableDef(nomtab)
        With tblnuova
        .Fields.Append .CreateField("GIORNOS", dbDate, 8)
        .Fields.Append .CreateField("ORARIO", dbDate)
        End With
        dbd.TableDefs.Append tblnuova
        dbd.TableDefs.Refresh
            'SELEZIONA LA TABELLA DA CANCELLARE
            Select Case Weekday(d)
            'LUNEDI
            Case Is = 2
            nomtabdel = "01LUNEDI"
            'MARTEDI
            Case Is = 3
            nomtabdel = "02MARTEDI"
            'MERCOLEDI
            Case Is = 4
            nomtabdel = "03MERCOLEDI"
            'GIOVEDI
            Case Is = 5
            nomtabdel = "04GIOVEDI"
            'VENERDI
            Case Is = 6
            nomtabdel = "05VENERDI"
            'SABATO
            Case Is = 7
            nomtabdel = "06SABATO"
            Case Is = 1
            nomtabdel = "07DOMENICA"
            End Select
            'CANCELLA LA TABELLA
            StrSql = "DROP TABLE " & nomtabdel
            dbs.Execute StrSql
            'RIASSOCIA LA TABELLA
            Set tblsetti = New ADOX.TABLE
            tblsetti.Name = nomtabdel
            Set tblsetti.ParentCatalog = cat
            tblsetti.Properties("Jet OLEDB:Create Link") = True
            tblsetti.Properties("Jet OLEDB:Link Datasource") = cnn
            tblsetti.Properties("Jet OLEDB:Remote Table Name") = nomtab
            cat.Tables.Append tblsetti
Next x
End Sub
Considerate che l'errore che mi dà è "Microsoft Jet non è stato in
grado di trovare la tabella ...." e poi il nome della tabella che
avrebbe dovuto riallegare, che invece ESISTE !!!!! ........ oltre al
fatto che dopo mi dice che praticamente avrei aperto il database come
accesso esclusivo ...... insomma sto andando ai pazzi .... help me
....... 
E grazie !!!!!

 Dim tblcntrl As dao.TableDef
non capisco perche` questo minestrone tra DAO ed ADO.
visto che si tratta di un database access, fai tutto con DAO, che e`
piu` facile e performante.
ADOX, imho non dovrebbe neanche esistere, ne` per access ne` per
qualsiasi altro database.
-- 
ciao, hal