Avatar billede wise Seniormester
26. juni 2004 - 17:29 Der er 12 kommentarer og
1 løsning

MSQuery - forespørgelser mod anden server - hvor rettes det?

Hej Alle i kloge mennesker..

Jeg her en meget spøjs ting.
Vi har en del excelark der via en ODBC forbindelse henter nogle data på en as400 - så langt så godt. Men nu har skiftet as400, og jeg skal have arkene til at hente data på den nye.

I første omgang troede jeg bare at jeg skulle ændre servernavnet inden i ODBC kilden så ville alt være godt - men nej :-(
Selv efter at have slettet den gamle odbc kilde og oprettet en ny mod den nye server (med samme odbc datakilde navn) søgte mine excelark den gamle server....
Excel må altså gemme dns navn og det hele - og ikke kun odbc-datakilde navn som jeg troede.
Og her var problemet at eftersom jeg ikke kunne logge ind på den gamle server kunne jeg slet ikke få log til at redigerer forespørgelsen i MS query - Uden login endte jeg tilbage i arket.

Så fik jeg et tip om at snyde så mit gamle dnsnavn resolvede til den nye server. Nu skriver den stadig at den logger ind på den gamle server, men rammer fint den nye. Men det løste ikke problemet, for serverens navn er stadig forskellig, så jeg får en fejl "SQL0114 Relationel Database LINTAS is not the same as the current server REKLAME".
Jeg har været igennem hele msquery programmet, men kan ikke nogle steder se hvor den har gemt dette navn "lintas".

Er der nogle der kan hjælpe mig videre?? Det er RIGTIG mange excelark der skal laves forfra hvis jeg ikke får ændret dette, så alt hjælpe / hint er ønskede...

Det er altså en client access (ibm) ODBC datakilde mod en as400 jeg kæmper med, men problemet er altså at Excel et eller andet sted gemme dns navn og servernavn for serveren og ikke vil have svar fra andre end den....

Help
Lasse ;-)
Avatar billede bak Forsker
27. juni 2004 - 22:39 #1
I selve query-definitionsfilen er der også angivet en sti til databasen.
Det kan være den der driller.
Lav en søgning på *.dqy filer.
Åbn dem med notepad
Rediger stien i dqy filen (både DBQ og DefaultDir)
Avatar billede wise Seniormester
27. juni 2004 - 22:56 #2
Nu sidder jeg ikke lige ved pc'en, men kommer der en qdy fil når man laver forespørgelsen indefra Excel? Jeg ledte lidt efter den, den anden dag, og har en grim ide om at den ligger embeddet i arket....
Avatar billede bak Forsker
27. juni 2004 - 23:11 #3
Der kommer en fil med efternavnet dqy.
Jeg mener ikke at excel "embedder" noget her.
dqy filen er stedet, hvor MSQUERY gemmer selve query'en, incl sti og filnavn.
Avatar billede bak Forsker
27. juni 2004 - 23:31 #4
Der udtalte jeg mig nok lige lidt for hurtigt....
Den kommer hvis du vælger at gemme queryen .
Avatar billede bak Forsker
06. juli 2004 - 11:10 #5
Har du rettet det manuelt ?
ellers er jeg blvet lidt klogere og har et forslag :-)
Avatar billede wise Seniormester
06. juli 2004 - 11:19 #6
Kom endelig med dit forslag, for jeg har ikke kunnet finde nogle .qry filer...
Og hvis jeg prøver at gemme forespørgelsen (den havde jeg nemlig også gættet på) så får jeg samme fejl fra "smarte" MS QUERY, i og med at den ikke kan finde den rette server til at lave forespøgelsen op imod - så kan jeg heller ikke få lov til at gemme den... :-(
Avatar billede bak Forsker
06. juli 2004 - 11:29 #7
Her er den. Test den og vend tilbage.
Den opdaterer alle queries i projektmappen.
Rediger selv linien stNewPath = "\\SERVER1\DATA"



Sub ChangePath()
Dim stDBase As String
Dim vaTemp
Dim stNewPath As String
Dim vaConn As Variant
Dim ws As Worksheet
Dim qt As QueryTable
    stNewPath = "\\SERVER1\DATA"
    For Each ws In ActiveWorkbook.Worksheets
    On Error Resume Next
        For Each qt In ws.QueryTables
            vaConn = Split(qt.Connection, ";")
            vaTemp = Split(vaConn(2), "\")
            stDBase = vaTemp(UBound(vaTemp))
            vaConn(2) = "DBQ=" & stNewPath & "\" & stDBase
            vaConn(3) = "DefaultDir=" & stNewPath
            vaConn = Join(vaConn, ";")
            qt.Connection = vaConn
        Next
    On Error GoTo 0
    Next
End Sub
Avatar billede wise Seniormester
06. juli 2004 - 11:39 #8
Ohhh, Cool - den tanke have slet ikke slået mig. Selvfølgelig ligger de som objekter man kan ramme med en makro!

Jeg er på ferie pt, og er ikke sikker på at jeg bare lige kan maile denne til en bruger til test - så det kommer lige til at gå et par uger inden jeg kan teste. (Med mindre jeg bliver så nysgerrig at jeg logger ind og tester... ;-))

Men jeg skal nok give info så snart jeg får testet...!
Tak indtil videre...
Avatar billede bak Forsker
06. juli 2004 - 11:50 #9
god ferie :-)
Avatar billede wise Seniormester
24. august 2004 - 14:06 #10
Jeg havde lige skret en kommentar som så forsvandt  (????)
Nå men bedre send end aldrig.. Ved at ændre SYSTEM fremfor DBQ i ovennnævnte fik jeg rettet det rigtige, og kunne nu redigere selve SQL'en via MS Query.
Desværre står det gamle navn også i SQL'en - men den kan rettes manuelt nu - før kunne jeg slet ikke få den vist...

Så problemet er løst, men hvis man kan rette sql'en også via makroen ville det være perfekt... - prøvede med qt.sql...

Tak for hjælpen anyway, smid et svar så får du nogle points...
Avatar billede bak Forsker
24. august 2004 - 16:51 #11
ok, godt du fandt ud af det... Fjernløsninger er ikke altid lige nemt :-)
Avatar billede wise Seniormester
24. august 2004 - 17:09 #12
I know, men tak for kampen! Jeg havde ikke selv fået ideen med at skifte det via makro...

Som sagt er status nu at vi først kører makroen der retter "system" i qt'erne, og derefter kan vi manuelt ændre navnet de steder det står i selve sql'en. Ved du om man kan rette den SQL via en makro?
Avatar billede wise Seniormester
18. oktober 2004 - 13:18 #13
Hov, mente jeg havde accepteret. Undskyld!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester