Avatar billede mccannon Nybegynder
12. maj 2002 - 22:41 Der er 28 kommentarer og
1 løsning

Hente data fra excel via asp

hejsa

fandt et script inde på netcoders.dk
http://www.netcoders.dk/articles.asp?mode=show_article&tech_id=1&article_id=121
men problemet er at jeg for denne fejl

Fejltype:
ADODB.Recordset (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
/lars/filnavn.asp, line 22

og linie 22 ser sådan ud .:

rs.CursorLocation = adUseServer
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:01 #1
Prøv at kikke på dette eks:

http://www.able-consulting.com/ADO_Faq.htm#Q15

Det har jeg fået til at virke engang.
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:12 #2
hmm

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401)
Slut på sætning var ventet

filnavn.asp, line 7, column 10
som ser sådan ud
Dim oConn As ADODB.Connection

hmm måske kan det ikke alde sig gøre på en iis5.0 ?
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:17 #3
hov ja det glemte jeg lige...

I asp hedder det:
Set oConn = Server.CreateObject("ADODB.Connection")
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:18 #4
lige ledes med recordset:


Set oRs= Server.CreateObject("ADODB.Recordset")


Så slet disse 3 liner + hvis der er flere.:
Dim oConn As ADODB.Connection
Dim oRs As ADODB.Recordset

Set oConn = New ADODB.Connection
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:20 #5
ahh okay

også den her ?
Set Cmd = New ADODB.Command
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:25 #6
hvis jeg fjern den så siger den
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'Cmd'

hmm kan man bruge sql sætning mon..hum
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:29 #7
JA.. den skal også væk...
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:30 #8
oCmd.CommandText = "SELECT * from `Range1`"

kan laves til:
sql = "SELECT * from `Range1`"

Samt
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
rettes til:
oRS.Open sql,oConn, adOpenKeyset, adLockOptimistic
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:31 #9
du skal så rette selv SQL'en til at passe med din SQL.
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:35 #10
hmm range1, er det regnearkets navn eller er det ark'en inden i regnearket

er ret ny til det her :)
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:41 #11
Det er en range man angiver inde i excelregnearket som vælger de rækker man vil havde med ud isql'en.
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:42 #12
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=Arbejdsplan 2002 nathold 1.xls;" & _
          "Extended Properties=""Excel 8.0;HDR=Yes;"";"


Set RS = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from `Ark4`"
RS.Open sql,Conn, adOpenKeyset, adLockOptimistic

sådan ser koden ud nu..men bliver ved med at få den fejl .:
(linie 20 er der hvor jeg pbner RS

Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.
filnavn.asp, line 20
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:44 #13
Prøv at tage et kik her:

http://www.eksperten.dk/spm/49390
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:56 #14
nu fandt jeg koden på min PC:

<%

set oConn = Server.CreateObject("ADODB.Connection")
set oRs = Server.CreateObject("ADODB.recordset")

' Open a connection to the Excel spreadsheet
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source="&Server.MapPath("fil.xls")&";" & _
          "Extended Properties=""Excel 8.0;HDR=Yes;"";"

' Create a command object and set its ActiveConnection
' This SQL statement selects a cell range in the "Expenses"  worksheet.
'    oCmd.CommandText = "SELECT * from `Expenses$A2:C4`"

' This SQL statement selects a named cell range defined in the workbook.
sql = "SELECT * from myRange"

' Open a recordset containing the worksheet data.
oRS.Open sql,oConn,1,3


while not(oRS.EOF OR oRS.BOF)
  Response.Write "<br>" & oRS("Felt1") & " " & oRS("Felt2")
  oRS.MoveNext
Wend


' Add a new row
oRS.AddNew
oRS("Felt1").Value = 7
oRS("Felt2").Value = 8
oRS.Update

%>


Min fil hedder fil.xls

Den indeholder, til at starte med:
    A        B
1  Felt1  Felt2
2  Data1  Data11
3  Data2  Data22

myRange er sat ved at marker fra A1->B3 ($A1:B3) med musen og så give det navnet myRange.
Avatar billede mccannon Nybegynder
12. maj 2002 - 23:56 #15
Microsoft OLE DB Provider for ODBC Drivers (0x80040E37)
[Microsoft][ODBC Excel-driver] Microsoft Jet-databasemotoren kan ikke finde objektet "arbplan". Kontroller, at objektet findes, og at du har stavet navnet og stien korrekt.
/lars/lars.asp, line 29


men den findes jo :-/
Avatar billede eagleeye Praktikant
12. maj 2002 - 23:59 #16
prøv at skrive denne linie med Server.mappath til finnavnet:

  "Data Source=" & Server.Mappath("Arbejdsplan 2002 nathold 1.xls") & ";" & _
Avatar billede mccannon Nybegynder
13. maj 2002 - 00:08 #17
tjah nu kan den da åbne :)

men nu siger den det her
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
while not(oRS.EOF OR oRS.BOF)
Response.Write "<br>" & oRS("JANUAR") & " " & oRS("FEBRUAR")
  oRS.MoveNext
Wend

det er sådan man skal gøre ik ?
Avatar billede eagleeye Praktikant
13. maj 2002 - 00:09 #18
Håber du kunne bruge det til noget, jeg er nød til at smutte i seng nu..
Avatar billede eagleeye Praktikant
13. maj 2002 - 00:11 #19
Du skal angive kolonne navne i første række i regnearket:
    A        B
1 JANUAR  FEBRUAR

Eller så prøv med

while not(oRS.EOF OR oRS.BOF)
Response.Write "<br>" & oRS(0) & " " & oRS(1)
  oRS.MoveNext
Wend
Avatar billede mccannon Nybegynder
13. maj 2002 - 00:15 #20
okay januar ser sådan ud i regnearket ..
    JANUAR
   
1.    TIR                  1
2.    ONS
3.    TOR
4.    FRE
5.    LØR
6.    SØN
7.    MAN              2
8.    TIR
9.    ONS
10.    TOR
11.    FRE
12.    LØR
13.    SØN
14.    MAN              3
15.    TIR
16.    ONS
17.    TOR
18.    FRE
19.    LØR
20.    SØN
21.    MAN              4
22.    TIR
23.    ONS
24.    TOR
25.    FRE
26.    LØR
27.    SØN
28.    MAN              5
29.    TIR
30.    ONS
31.    TOR

mener du så man skal defienre, altså sætte kolonne 1 og kolonne 0 til at være Januar ?
Avatar billede eagleeye Praktikant
13. maj 2002 - 00:25 #21
Ja.. Hvis du ikke vil ændre i det kan du ændre i connection:
Ret denne linie
"Extended Properties=""Excel 8.0;HDR=Yes;"";"

Til:
"Extended Properties=""Excel 8.0;HDR=No;"";"

Yes betyder den tager den første række som kolonne navne man kan bruge.
No betyder den tager alle data med men så kan du ikke skriver oRs("Januar") så skal du skrive oRs(0) for den førte kolonne.
Avatar billede eagleeye Praktikant
13. maj 2002 - 00:32 #22
Godnat, jeg kikker forbi i morgen eftermiddag/aften.
Avatar billede mccannon Nybegynder
13. maj 2002 - 00:32 #23
Response.Write "<TABLE BORDER='1' BGCOLOR='#FFFFFF' BORDERCOLOR='#a3a3a3' BORDERCOLORLIGHT='#000000' BORDERCOLORDARK='#767676'><tr><td>"
Response.Write oRS.GetString (, -1, "</tr><td>", "</td></tr><tr><td>", NBSPACE)
response.write "</table>"

fandt det her stump kode ..ret simplet ..lol

http://195.249.94.27/lars/lars.asp
kig

nu skal jeg bare finde ud hvordan man kan få den til at vise de fellter min ven har markeret med gråt..de dage han arbejder....
Avatar billede mccannon Nybegynder
13. maj 2002 - 00:33 #24
ved du om man kan det.. ?
Avatar billede eagleeye Praktikant
13. maj 2002 - 08:26 #25
Ok..

ummidelbart tror jeg ikke det kan lade sig gøre, da den hendter teksten, og nok ikke tager formateringen af cellen med.
Avatar billede mccannon Nybegynder
13. maj 2002 - 16:42 #26
kan det lade sig gøre med din kode ?
Avatar billede eagleeye Praktikant
13. maj 2002 - 17:44 #27
Nej, den kode jeg har lavet tager også kun teksten ud, ikke formateringen af cellerne.
Avatar billede mccannon Nybegynder
14. maj 2002 - 12:47 #28
vil du have pointsne ?
Avatar billede eagleeye Praktikant
14. maj 2002 - 17:33 #29
Ja det vil jeg da godt :)
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
Kurser inden for grundlæggende programmering

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