Frage : VBA, zum der Tabellenverbindungen zu einer neuen Position zu ändern

Hallo alle,

I morgens versuchend, Code zu verwenden, um die Verbindungen einiger Tabellen in einer Datenbank zu ändern.

The Datenbank hat einige Einheimischtabellen und einige verbanden eine. Benutzer laden ihre eigene Kopie des Systems herunter und wenn sie es zum ersten Mal laufen lassen, erhalten sie einen Startschirm auf erstem Gebrauch, der um um sie bittet, dass um eine Einstellung process.

First durchzulaufen in der Linie die wenigen verbundenen Tabellen re-linking.  Die Form hat eine Rückstellungsposition, aber ein Benutzer kann das Netzlaufwerk, da, was auch immer sie an einen anderen Antrieb abhängig von ihrem location.

So anschließen müssen auf der Form wünschen und können, ein Feld mit der Rückstellungsposition ist, aber einen Knopf abbilden, um für eine Rückkehr eine Datenbank in einer unterscheidenposition zu grasen. Einmal getan dem folgenden einfachen Code runs.

1:
2:
3:
4:
Sub ChangeLink ()    
    CurrentDb.TableDefs („tbl_SystemLog“). Anschließen =“; DATABASE= " u. Me.txt-Nachrechner
    CurrentDb.TableDefs („tbl_SystemLog“) .RefreshLink
Enden-Unterseeboot


Where Me.txt Nachrechner das Antriebsdiagrammd.h. „C:\My Documents\db.mdb "

This ist, scheint nicht zu arbeiten.  Wenn ich den Tabellenanschluß ausprüfe, bevor und nachdem dieses die Antriebsposition das selbe trotz der Tatsache ist, sollte es geändert haben.  

As ein anderer Test, wenn ich eine andere vollständig gelegentliche Datenbank wähle, die nicht die Tabellen wir enthält, sind suchend ich erhalten keine Störungen oder alle….

Can jedermann sehen, was mit diesem oben sein konnte?

Cheers
DeZZar

Antwort : VBA, zum der Tabellenverbindungen zu einer neuen Position zu ändern

> am Kern beider Verbindungsfunktionen genau ist das gleiche Verfahren, das ich oben. bekannt gegeben.

Nicht weil Sie CurrentDb mehrfache Zeiten benennen, wo Sie es einmal nur benennen sollten.
Ist hier wie für die Befestigung der Tabellen in einer Hinterakte, die im gleichen Faltblatt wie das Vorderseiten gelegen ist.
Sie können es using den Weg für den Nachrechner als Parameter leicht ändern.

/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:
  Schwache dbs als DAO.Database
  Schwaches tdf als DAO.TableDef
  
  Schwaches strSourceTableName  als Schnur
  Schwaches strCurrentPath      als Schnur
  Schwaches strAttachPath       als Schnur
  Schwaches strFrontendPath     als Schnur
  Schwaches strBackendPath      als Schnur
  Schwaches strConnect          als Schnur
  
  Auf Störung Goto- Err_GentilknytData
  
  Dbs = CurrentDb einstellen
  
  strFrontendPath = dbs. Name
  strCurrentPath = mittler (strFrontendPath, 1, InStrRev (strFrontendPath, „\ ") - 1)

  Für jedes tdf in dbs.TableDefs
    strSourceTableName = tdf.SourceTableName
    Wenn Len (strSourceTableName) > 0 dann
      strBackendPath = aufspaltete (tdf. Anschließen, „=") (1)
      strAttachPath = mittler (strBackendPath, 1, InStrRev (strBackendPath, „\ ") - 1)
      Wenn StrComp (strCurrentPath, strAttachPath, vbTextCompare) <> 0 dann
        strConnect = „; DATABASE=“ u. strCurrentPath u.“ \ AktivitetData.mdb "
        tdf. Anschließen = strConnect
        tdf.RefreshLink
      Beenden wenn
    Beenden wenn
  Zunächst

  Tdf einstellen = nichts
  Dbs einstellen = nichts
  
Weitere Lösungen  
 
programming4us programming4us