Questione : VBA per emendare i collegamenti della tabella ad una nuova posizione

Ciao tutti,

I che tenta di usare codice per emendare i collegamenti di parecchie tabelle in una base di dati. la base di dati del

The ha un certo numero di tabelle del local ed alcune hanno collegato ones. Gli utenti caricano programmi oggetto la loro propria copia del sistema e quando lo fanno funzionare per la prima volta ottengono uno schermo startup su primo uso che li chiede che per passare con una messa a punto process.

First nella linea sta rieffettuando il collegamento le poche tabelle collegate.  La forma ha una posizione di difetto ma un utente può tracciare l'azionamento di rete poichè qualunque vogliono e possono avere bisogno di di collegarsi ad un azionamento differente secondo il loro location.

So sulla forma è un campo con la posizione di difetto, ma un tasto per passare in rassegna per un ritorno una base di dati in una posizione differente. Una volta fatto il seguente class= semplice " lineNumbers " >
1 del >
: 2: 3: 4: >Sub codeBody ChangeLink " del prettyprint " " del class= del id= " codeSnippet841037 del >


Where Me.txt è il

This “di C:\My Documents\db.mdb " del programma dell'azionamento cioè non sembra funzionare.  Se metto a punto il collegamento delle tabelle prima e dopo questo la posizione dell'azionamento è lo stesso malgrado il fatto dovrebbe cambiare.  il

As un'altra prova, se scelgo un'altra base di dati completamente casuale che non contiene le tabelle noi è cercando io non ottiene errori o qualche cosa….il

Can chiunque vede che cosa potrebbe essere in su con questo?

Cheers
DeZZar
class= del

Risposta : VBA per emendare i collegamenti della tabella ad una nuova posizione

> al centro di entrambe le funzioni di collegamento è esattamente la stessa procedura come ho inviato sopra.

No, perché denominate CurrentDb periodi multipli dove dovreste denominarli una volta soltanto.
Qui è come per l'attaccattura delle tabelle in una lima posteriore situata nello stesso dispositivo di piegatura dell'a fine frontale.
Potete modificarli facilmente using il percorso per l'estremità posteriore come parametro.

/gustav
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
  Dbs fiochi come DAO.Database
  Tdf fioco come DAO.TableDef
  
  strSourceTableName fioco  come stringa
  strCurrentPath fioco      come stringa
  strAttachPath fioco       come stringa
  strFrontendPath fioco     come stringa
  strBackendPath fioco      come stringa
  strConnect fioco          come stringa
  
  Sull'errore Err_GentilknytData di avanzamento
  
  Regolare i dbs = CurrentDb
  
  strFrontendPath = dbs. Nome
  strCurrentPath = metà di (strFrontendPath, 1, InStrRev (strFrontendPath, “\ ") - 1)

  Per ogni tdf in dbs.TableDefs
    strSourceTableName = tdf.SourceTableName
    Se Len (strSourceTableName) > 0 allora
      lo strBackendPath = ha spaccato (tdf. Collegar, “=") (1)
      strAttachPath = metà di (strBackendPath, 1, InStrRev (strBackendPath, “\ ") - 1)
      Se StrComp (strCurrentPath, strAttachPath, vbTextCompare) <> 0 allora
        strConnect = “; DATABASE=„ & strCurrentPath &„ \ AktivitetData.mdb "
        tdf. Collegar = strConnect
        tdf.RefreshLink
      Concluder se
    Concluder se
  Dopo

  Regolare il tdf = niente
  Regolare i dbs = niente
  
Altre soluzioni  

 
programming4us programming4us