Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
140to144
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
140to144
140to144
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Query - DNS

Query - DNS
31.07.2002 09:05:09
ThomasR
Hi!
Ich habe eine XL Datei, die mir beim Öffnen per Makro eine Abfrage auf eine Access datei durchführt erstellt. Klappt prima, so lange die Datei auf meiner Maschine läuft. Bei Kollegen meckert EXCEL, dass der Datenquellname nicht gefunden wird. Das liegt wohl daran, dass ich mein Makro durch Aufzeichnung der Abfrage erstellt habe. (Pfad wurde dann durch Variable ersetzt, nicht aber der Hinweis auf die DNS) Jetzt habe ich das Problem, dass auf meinem Rechner die DNS als "Microsoft Access Driver" definiert ist, auf anderen maschine jedoch einen anderen Namen hat - Frage: Kann man diesen Eintrag irgendwie so ändern, dass im Makro automatisch auf die korrekte, auf der jeweiligen Maschine verfügbare DNS zugreift? Danke vorab - Tom

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Query - DNS
31.07.2002 09:09:23
Frederik Fuhrmann
Hallo!

Wenn ich richtig verstanden habe, dann findet er doch die Datei nicht, oder? Könnte es vielleicht daran liegen das du im Code an Stelle der Pfadänderung vorher nicht die Anweisung zum wechseln aufs Netzlaufwerk hast (Chdrive).
Dann sucht er den Pfad nämlich evtl. auf C: !


Gruß
F.

Re: Query - DNS
31.07.2002 09:20:51
ThomasR
Hi,
nein, der Pfad ist per Variable gesetzt "Application.ActiveWorkbook.Path" - und funktioniert auch prima - die Access DB steht im gleichen Verzeichnis.
Ich verteile die Datei aber auch an Dritte und das Problem liegt am Verweis auf die ODBC Quelle (also die Angabe hinter DNS: (MS Access Treiber)), da dieser Name lokal unterschiedlich sein kann.

Hier der Code:

Sub WorkbookOpen()

Pfad = Application.ActiveWorkbook.Path
With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=" & Pfad & "\NCRback_end.mdb;DefaultDir=" & Pfad & ";" _
), Array("DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;")), _
Destination:=Range("A1"))
.Sql = Array( _
"SELECT tab_stat.datstat, tab_stat.Raised, tab_stat.Analysis, tab_stat.Progress, tab_stat.Correction, tab_stat.Test, tab_stat.Closed, tab_stat.TotalNCRs, tab_stat.OPAIV, tab_stat.OPSS, tab_stat.OPGEN" & Chr(13) & "" & Chr(10) & "" _
, _
"FROM `" & Pfad & "\NCRback_end`.tab_stat tab_stat" & Chr(13) & "" & Chr(10) & "ORDER BY tab_stat.datstat" _
)
.FieldNames = True
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = True
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = True
.SaveData = True
End With
End Sub

Gruß Tom


Anzeige
Re: Query - DNS
31.07.2002 09:40:43
Frederik Fuhrmann
Áha. Und wenn du Office einfach auf den entsprechenden Rechnern neu installieren würdest? Wär vielleicht einfach zu machen?!
Re: Query - DNS
31.07.2002 10:11:21
jens tietje
hallo tom,
wenn ich dich richtig verstehe brauchst du eine variable, in welcher der connect gehandlet wird?
ich habe so etwas auch schon gemacht, kann dir aber leider nicht sagen, wie du automatisch an den dns der jeweiligen maschine kommst.
mein conn_string sieht in etwa so aus:

Sub sql()
conn_string = "ODBC;DSN=Leitrechner1;UID=uidname;SRVR=nodename;;PWD=passwort"
With ActiveSheet.QueryTables.Add(Connection:=conn_string, Destination:=Range("A1"))
.sql = Array( _
"SELECT blah blah blah
.Refresh False
End With
End Sub

wobei leitrechner1 für den odbc-aufruf steht. den bekommst du ja heraus, wenn du im excel unter datenquellen der lokalen maschine nachsiehst.
hm, ich hoffe, dass dir wenigstens ein bischen hilft...

gruss

jens

Anzeige
Re: Query - DNS
31.07.2002 11:48:20
ThomasR
Hi Jens,
ja, Du hast das Problem richtig erkannt - nur ich komme da irgendwie nicht weiter wegen des Problems der "automatischen" Erkennung des lokalen DNS Eintrags.
... Tom
Re: Query - DNS
31.07.2002 11:57:16
jens tietje
hi tom,
ich frage mich nur, wie man das erkennen bewerkstelligen kann.
denn die zuordnung dns zu datenverbindung ist doch ziemlich benutzerdefiniert??? du müsstest also eine prüfung aller vorhanden dns machen und nach rückgabewerten dann entscheiden auf welche du dich connecten willst?
ich denk mal, eine einheitliche installation der einzelnen workstations wäre da die sauberste lösung.
wir arbeiten daher bei uns mit installationsstandards...
falls du noch ne lösung finden solltest, würde mich das auch interessieren

bye

jens

Anzeige
Re: Query - DNS
31.07.2002 12:07:02
ThomasR
Hi Jens,
ich habe schon eine kleine "Installationsanweisung" geschrieben, da ich das Problem nicht ausschließlich auf "lokalen" Maschinen habe - Die Dateien werden auch an anderen Standorten installiert und daher ist es notwendig, dass dort auch jemand die DNS einträgt/ändert. Leider wird ja nach dem "Namen" und nicht nach dem Treiber bzw. der Endung .mdb gesucht - das würde das ganze doch erheblich vereinfachen. Sollte ich jedoch Erfolg haben, lasse ich es Dich wissen - schließlich kann das ja durchaus von Interesse sein ;-) Gruß Tom
Re: Query - DNS
31.07.2002 12:15:05
jens tietje
danke tom,

wenn du es schaffst, kannst du mir ja ne mail schicken?!?

viel glück ;-))

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige