Avatar billede brobaek Nybegynder
13. november 2002 - 10:06 Der er 12 kommentarer og
1 løsning

Forespørge i sammenkædede tabel via ADO

Jeg har tre sammenkædede tabeller (tblInvoice, tblCustomers, tblProjects).

Fra et Excel-ark skal jeg forespørge i data vha. ADO.

Men når jeg kører nedenstående kode kommer fejlen:
"Tekstfilspecifikationen "something Sammenkædningsspec." findes ikke. Du kan ikke importere, ekspotere eller sammenkæde denne specifikation".

Hvad gør jeg forkert ?

Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
Dim i As Integer

With conn
    .ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=Q:\PPRapport.mdb"
    .Open
End With

Set rs = conn.Execute("SELECT * FROM tblInvoice;")

Do Until rs.EOF
    i = i + 1
    Ark1.Range("A" & i) = rs.Fields(1)
    rs.MoveNext
Loop
conn.Close
set rs = Nothing
Avatar billede amerikaner Nybegynder
13. november 2002 - 11:04 #1
Well, your mixing your statements
"Set rs" is a DAO type statement not ADO (who the hell thinks up these names?)
use an open command

rs.Open "SELECT * FROM tblInvoice", conn, adOpenDynamic

From Object browser:
Sub Open([Source], [ActiveConnection], [CursorType As CursorTypeEnum = adOpenUnspecified], [LockType As LockTypeEnum = adLockUnspecified], [Options As Long = -1])

Should work....
Avatar billede brobaek Nybegynder
13. november 2002 - 12:18 #2
It gives the excact same error.

By the way, "Set rs =" normally works fine with ADO - it's a object and you it can contain data from a query, thus you can use "set".
Avatar billede brobaek Nybegynder
13. november 2002 - 12:19 #3
(forget my "you" in "...and _you_ it can...")
Avatar billede t0pd0g Nybegynder
13. november 2002 - 12:25 #4
jeg aner INTET om excel, men er du sikker på at de er koblet rigtigt sammen? Altså autonumber til tal?
Avatar billede amerikaner Nybegynder
13. november 2002 - 12:41 #5
kan du "step" i genem code og hvor får du Fejlen (hvilken linje). Exact same error lyder som Fejl i Connect
Avatar billede brobaek Nybegynder
13. november 2002 - 13:01 #6
Fejlen kommer i forespørgslen (altså, set rs=...)- hvis jeg forespørger i en "ren" Access-tabel virker det.

Fejlen er simpelthen, at forespørgslen er til en sammenkædet tabel (som kommer fra en txt-fil).
Avatar billede amerikaner Nybegynder
13. november 2002 - 13:27 #7
Here is a work around (that might work) it is reccommended for SQL Server attached tables which can't bee accessed directly.

Laver et forspørgsal "SELECT * FROM tblInvoice" som Q_tblInvoice og siger

Set rs = conn.Execute("SELECT * FROM Q_tblInvoice")
  eller
rs.Open "SELECT * FROM Q_tblInvoice", conn, adOpenDynamic
Avatar billede brobaek Nybegynder
13. november 2002 - 13:52 #8
Have already tryed to make an Query in Access, but the same error occur.
Avatar billede fdata Forsker
13. november 2002 - 14:04 #9
Virker "SELECT * FROM tblInvoice" i Access?
Har du prøvet "SELECT tblInvoice.* FROM tblInvoice"?
Avatar billede amerikaner Nybegynder
13. november 2002 - 14:05 #10
OK last suggestion and then you've exhausted me...

.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Q:\PPRapport.mdb")


P.S. if you go with Set rs you should also go with
Set conn = Server.CreateObject("ADODB.Connection")
ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("Q:\PPRapport.mdb")
Con.Open ConnectionString

just for consistancy
Avatar billede amerikaner Nybegynder
13. november 2002 - 14:06 #11
OOps...Con.Open = conn.open
Avatar billede brobaek Nybegynder
13. november 2002 - 14:11 #12
What do you mean by Server.MapPath ?
Avatar billede brobaek Nybegynder
13. november 2002 - 14:15 #13
And, because I have used the declaration:
dim conn as NEW adodb.connection
, I have already declared it as a new instance of the object Adodb.conn...
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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