IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Access
  New Posts New Posts RSS Feed - Collegare tabelle database esterno protetto
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

 Topic   Topic Hot   Topic New   Topic Locked   Topic Sticky   Topic Hidden

Collegare tabelle database esterno protetto

 Post Reply Post Reply
Author
Message
babaiaga View Drop Down
Utente Base
Utente Base


Joined: 08/Dic/2006
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote babaiaga Quote  Post ReplyReply Direct Link To This Post Topic: Collegare tabelle database esterno protetto
    Posted: 22/Mag/2012 at 11:51

Ciao a tutti,
per la prima volta tento di collegare tabelle che risiedono in un database diverso e  protetto da password (access 2003).
La prima domanda che mi sono posto è perchè la maggioranza dei post, nei vari forum, parla di Ricollegare invece che collegare.
Sicuramente esiste una spiegazione che non so.

Io ho un database con le tabelle e, per ora, un database vuoto dove verranno inserite le varie query, etc.
Seguendo il classico wizard di access posso linkare le varie tabelle esterne ma volevo seguire la strada del VBA.
Come tutte le prime volte ho usato il classico copia-incolla di qualcosa già fatto per  poi provare che tutto vada bene e cercare di capire cosa accade.
Ho trovato questa routine e tutto sembra funzionare.


Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click

 Dim db As Database, n As Integer, TableArray() As String
 Dim TFileName As String, LinkedTable As TableDef, i As Integer

        Set db = CurrentDb
'Percorso Database esterno
TFileName = "percorsodatabase_be.mdb"
        DoCmd.Hourglass True
        n = 2
        ReDim TableArray(1 To n)
' Tabelle esistenti sul database esterno...
        TableArray(1) = "Nome tabella 1"
        TableArray(2) = "Nome tabella 2"
       
' ... che si vogliono collegare al database corrente con lo stesso nome
        For i = 1 To n
        Set LinkedTable = db.CreateTableDef(TableArray(i))
        LinkedTable.Connect = ";DATABASE=" & TFileName & ";PWD=tuapassword perBE;"
        LinkedTable.SourceTableName = TableArray(i)
        db.TableDefs.Append LinkedTable
        Next i
        db.TableDefs.Refresh
        DoCmd.Hourglass False
 
Comando0_Click_Exit:
    Set td = Nothing
    Set db = Nothing

Exit_Comando0_Click:
    Exit Sub

Err_Comando0_Click:
    MsgBox Err.Description
    Resume Exit_Comando0_Click
   
End Sub

Questo implica, comunque, di  scrivere un elenco di tutte le tabelle nell'array e non è comodo.
Poi ho dei problemi se la tabella risulta essere gia collegata.
Leggendo un vecchio post, si parlava di utilizzare una tabella di appoggio ma decisamente non sono riuscito ad assemblare il tutto in una Sub valida.
Qualcuno può presentarmi uno script con relative spiegazioni.
Grazie

Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Offline
Points: 836
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 22/Mag/2012 at 13:28
Da qualche parte l'elenco delle Tabelle deve esserci... personalmente lo vado a leggere direttamente nel SERVER.
Se TUTTE le tabelle del Server vanno Linkate la cosa è banale... apri un'oggetto Database che punta al BE(Server) e cicli la Collection TABLEDEFS escludendo le SystemTable, a quel punto le RELINKI...!
Se non tutte le Tabelle vanno Linkate, hai 2 opzioni:
  1. Crei nel SERVER una Tabella con l'elenco delle TABELLE da Linkare
  2. Appioni al nome delle Tabelle da NON LINKARE un Char(iniziale) che ti consente di discriminarle, in modo che quando cicli la Collection TABLEDEFS andrai ad escludere quelle con "_XX_NomeTabella" ad esempio.
In tutti i casi devi sempre, prima di LINKARLE provvedere alla CANCELLAZIONE per sicurezza, altrimenti ti trovi tabelle con il Nome seguito dal "_1"...
Tuttavia, se tu prima di postare facessi un minimo di ricerca, avresti anche trovato un 3D molto recente che proponeva sia riflessioni utili che codice.
http://www.ialweb.it/forum/forum_posts.asp?TID=16463618&title=risolto-relink-di-alex

Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/
Scaricare i DEMO modificando l'Estensione.
Back to Top
babaiaga View Drop Down
Utente Base
Utente Base


Joined: 08/Dic/2006
Status: Offline
Points: 50
Post Options Post Options   Thanks (0) Thanks(0)   Quote babaiaga Quote  Post ReplyReply Direct Link To This Post Posted: 22/Mag/2012 at 17:06
Ciao Alex,
inizio con lo scusarmi con te  per quanto mi evidenzi:"... se tu prima di postare facessi un minimo di ricerca, avresti anche trovato un 3D molto recente ..." .
 
Richiamo un mio passaggio "...perchè la maggioranza dei post, nei vari forum  (n.b. ho cercato anche in lingue diverse), parla di Ricollegare  invece che collegare. Sicuramente esiste una spiegazione che non so..." e in base a questo o cercato di trovare tutti i post legati alla parola collegare che a me sembra più logica.
 
Per questo motivo  mi sono trovato in tutte le discussioni sul "relinkare" che ho letto molto velocemente perchè mi sembrava di capire che erano legate allo spostamento del BE in altro luogo e non a collegare tabelle per la prima volta (non so se sia corretto fare una affermazione del genere).
 
Ma se non conosco la differenza tra relinkare e collegare (a parte la definizione italiana dei vocaboli)  mi riesce difficile sapere come muovermi.
Premesso questo, la tua risposta per me diventa difficile da capire.
 
Tu dici "...Se TUTTE le tabelle del Server vanno Linkate la cosa è banale... apri un'oggetto Database che punta al BE(Server) e cicli la Collection TABLEDEFS escludendo le SystemTable, a quel punto le RELINKI...!.."
 
Da quello che ho scritto si evidenzia che sono a zero su questo argomento ovvero sul collegare  tabelle esterne e in database protetto.
Infatti chiedo: ".... non sono riuscito ad assemblare il tutto in una Sub valida. Qualcuno può presentarmi uno script con relative spiegazioni..."
Comunque le tabelle sono tutte da linkare
Grazie
Sergio
 
Back to Top
@Alex View Drop Down
Utente Onorario
Utente Onorario
Avatar

Joined: 09/Apr/2012
Location: Mantova
Status: Offline
Points: 836
Post Options Post Options   Thanks (0) Thanks(0)   Quote @Alex Quote  Post ReplyReply Direct Link To This Post Posted: 22/Mag/2012 at 18:46
La questione di come e cosa cercare è banale quanto inutile da accennare...
I 3D nei vari FORUM, io li definisco "Merd-IN <---> Merd-OUT" questa definizione sta a significare che a seconda di quanto gli utenti del Forum sono sensibili nell'inserire TERMINOLOGIA e testi gli altri avrano più o meno difficoltà ad ottenere risultati tecnicamente correlati...!
Per assurdo più uno è tecnico, meno rischia di trovare... se non ha la flessibilità nel metodo di ricerca...!
Reputo che poi ognuno debba metterci del proprio quando posta in un FORUM, ma come è ovvio che sia, la qualità degli interventi è dipendente da troppi fattori personali...

Per rispondere invece alla tua questione Tecnica, se segui tutto il 3D che ti ho esposto, hai esattamente sia CODICE che spiegazioni di cosa serva fare.
E' mia opinione, e come tale la espongo, che i FORUM non siano un'alternativa all'uso della GUIDA IN LINEA, per questo sostengo che i cocnetti base legati alla programmazione del VBA e di come si usano, tu li possa trovare in autonomia nella guida con spiegazione ed esempi, altrimenti dovremo aprire un corso ONLINE per tutto...!
Ora, sia ben chiaro che questa è la mia posizione.


Edited by @Alex - 22/Mag/2012 at 18:51
Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/
Scaricare i DEMO modificando l'Estensione.
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.11
Copyright ©2001-2012 Web Wiz Ltd.

This page was generated in 0,203 seconds.