2009-04-07 9 views

Antwort

2

, was möglich ist, weil, wenn Sie die Datei DSN verwenden, Excel den Inhalt der Datei liest, die im Wesentlichen die Einträge alle die Verbindungszeichenfolge an externe Datenprovider zu konstruieren hat. Dann erstellt Excel die Verbindungszeichenfolge und verwendet diese, um die Abfragetabelle aufzufüllen. Sobald Sie das QueryTable zum ersten Mal erfolgreich aktualisieren, benötigen Sie diese Datei-DSN nicht mehr. Es wird also funktionieren, nachdem Sie es gelöscht haben oder in einem anderen Computer ohne diesen DSN.

Nebenbei, wenn Sie Datei-DSN in einer QueryTable und später, wenn Sie die FileDSN aktualisieren (sagen zu einer neuen Datenbank oder etwas ähnliches) Ihre QueryTable-Aktualisierung wird diese Änderung nicht widerspiegeln, müssen Sie die QueryTable rekonstruieren .

+0

Das ist gut zu wissen, da wir die Verbindungszeichenfolge für Build-Zwecke parametrisieren. Ist die einzige Lösung, um die Verbindung DSN-weniger zu machen? d. h. die Verbindung in VBA in einem Open Workbook-Ereignis dynamisch hergestellt werden? –

+0

Sie können, und es ist nur eine Frage der String-Manipulation. Aber eine dynamische Connection-Zeichenfolge hat auch ihre Nachteile. Wenn sich in Zukunft die Eigenschaften Ihres Datenanbieters (Server, Port oder Treiber usw.) ändern, müssen Sie auch unseren Code aktualisieren. – Adarsha

+0

Wir haben dieses Problem behoben: Wir verwenden nAnt-Skripte für alle unsere Builds, von denen einer die DSOleFile-Bibliothek verwendet, um die benutzerdefinierten Dateieigenschaften zu aktualisieren. VBA-Code wird den Servernamen usw. von den benutzerdefinierten Dateieigenschaften abholen. Also, wenn wir 2 einen Build für dev/test erstellen wollen, können wir nur 1 cfg Datei –

0

Wenn Sie Pivot-Tabelle einmal erstellen, wird die .xls-Datei danach unabhängig auf Ihrer Festplatte funktionieren. Also, es erfordert auch keine DSN.

+0

aber wie ist es möglich, dass, wenn ich entweder die xls zu jemand anderem sende (wer hat nicht die DSN) oder löschen Sie meine eigene DSN es funktioniert immer noch. Es macht keinen Sinn. Entweder verwendet es den DSN oder nicht, wenn nicht, wie speichert er die Verbindung, wenn ja, wie funktioniert es, wenn die Verbindung gelöscht wird? –

0

Die Pivot-Tabelle speichert einen Pivot-Tabellen-Datencache dahinter. Sie können diese Daten beliebig manipulieren, aber sie werden natürlich erst wieder aktualisiert, wenn Sie die Verbindung wieder herstellen.

Stan Scott

+0

Ich habe es an jemanden gesendet, der nicht über die Datei DSN verfügt und die Pivot-Tabelle erfolgreich ohne Fehler aktualisiert hat. Was ist los? Wie in aller Welt funktioniert das? –

+0

Adarsha hat die Antwort. Wenn die Abfrage zum ersten Mal ausgeführt wird, wird der DSN gelesen, und die Informationen werden zum Herstellen einer Verbindung und zum Lesen der Daten verwendet. Wenn die Abfrage zum zweiten Mal ausgeführt wird, enthält die Abfrage ALREADY jedoch die Informationen, die sie zum Herstellen der Verbindung benötigt. Dies ist Teil der Informationen, die sie enthält. –