/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
SELECT INTO IN External Database
Fra : Benjamin Søgaard


Dato : 20-12-06 10:22

This message has been crossposted dk.edb.database, dk.edb.database.ms-access

Hej

Jeg skal hente data fra en MS-SQL2000 server, og over i en MS-ACCESS 2003
database.
I access laver jeg en ADO-Connection op mod SQL serveren, ved hjælp af VBA.

Jeg vil bruge forespørgslen SELECT INTO......IN External Database. Men ak og
ve jeg kan ikke få det til at virke, og kan ikke finde norget ordentlig
dokumentation på nettet.

Sådan her ser min query ud.

SELECT [MySourceTable].* INTO [MyDestinationTable] IN "C:\MyAccessDB.mdb"
FROM [MySourceTable]

Uanset hvad heg har prøvet får jeg Syntax Error ved IN. Jeg kan ikke finde
noget på hvordan jeg angiver en MS-AccessDB andet end dette:

<INDSAT>
To specify a non-Microsoft Jet database, append a semicolon (;) to the name,
and enclose it in single (' ') or double (" ") quotation marks. For example,
either 'dBASE IV;' or "dBASE IV;" is acceptable.

Eks. SELECT CustomerID
FROM Customers
IN OtherDB.mdb
WHERE CustomerID Like "A*"
<INDSAT>

Ud fra dette antager jeg der skal ikke angives yderligere for at conencte
til en ekstern AccessDB. Men hvad er det jeg ikke forstår?

Samme forespørgsel har jeg afviklet på SQL serveren (Query Analyzer) og her
er det samme fejl. Syntax Error Near IN.

Ændrer jeg forespørgslen til dette:
SELECT [MySourceTable].* INTO [MyDestinationTable] ROM [MySourceTable]
Virker det jo som en drøm, men jeg får jo ikke oprettet min Tabel i den
eksterne Database.

Er der et bud på hvad jeg gør forkert.

Mvh Benjamin Søgaard




 
 
Jens Gyldenkærne Cla~ (20-12-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-12-06 10:50

Benjamin Søgaard skrev:

> Jeg vil bruge forespørgslen SELECT INTO......IN External
> Database. Men ak og ve jeg kan ikke få det til at virke, og
> kan ikke finde norget ordentlig dokumentation på nettet.

Du forudsætter at Access kender kontruktionen

   INTO navn IN eksternDB

- men ud fra den dokumentation du har givet, kan man kun se at
konstruktionen

   FROM navn IN eksternDB

- virker.

Din sql ser o.k. ud, så når det alligevel ikke virker, vil jeg
antage at konstruktionen med INTO ... IN ikke virker.


Hvis du har mulighed for at åbne den eksterne base, kan du køre
forespørgslen den vej. Alternativt kan du måske scripte en
tabeleksport.
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Morten Snedker (20-12-2006)
Kommentar
Fra : Morten Snedker


Dato : 20-12-06 13:00

On Wed, 20 Dec 2006 10:21:45 +0100, "Benjamin Søgaard"
<trorduselvdet@ingensteder.uni> wrote:

Hvis det er en tilbagevenden begivenhed, vil jeg anbefale at du
opretter Access som en linked server. Herefter kan de du benytte denne
til den SELECT INTO:

SELECT INTO {AccessLinkedServerName}..TableName
FROM ...

Alternativt kan du lade Access hente data fra serveren:

Dim con As ADODB.Connection
Set con = CurrentProject.Connection

con.Execute "SELECT * INTO intTabel FROM [extTabel] IN ''
[ODBC;Driver={SQL
Server};Server=servernavn;Database=dbNavn;Trusted_Connection=Yes;]"


Jeg er ikke klar over hvordan syntaksen skal være, hvis du vil benytte
SELECT INTO med et IN-udtryk, afviklet fra SQLserver.

mvh
--
Morten Snedker
http://www.planprojekt.dk | http://www.dbconsult.dk
Privat: http://www.vinthervej2.dk

Benjamin Søgaard (20-12-2006)
Kommentar
Fra : Benjamin Søgaard


Dato : 20-12-06 16:10



> con.Execute "SELECT * INTO intTabel FROM [extTabel] IN ''
> [ODBC;Driver={SQL
> Server};Server=servernavn;Database=dbNavn;Trusted_Connection=Yes;]"
>
>
> Jeg er ikke klar over hvordan syntaksen skal være, hvis du vil benytte
> SELECT INTO med et IN-udtryk, afviklet fra SQLserver.
>
> mvh
> --

Hej Morten

Dit svar var til megen stor inspiration jeg tilretted min query til følgende
og vupti så spiller klaveret. (Hver gang jeg brugte IN keyword var det som
om der blev refereret til en lokal fil, derfor droppede jeg IN)

SELECT * INTO [MyDestinationTable] FROM [ODBC;Driver={SQL
Server};Server=MySqlServer;Database=MySourceDB;Trusted_Connection=Yes;].[MySourceTable]

Mange Tak for hjælpen.

Benjamin Søgaard





Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste