Avatar billede websam Nybegynder
16. april 2004 - 15:27 Der er 23 kommentarer og
1 løsning

Handlingen skal bruge en opdaterbar forespørgsel

Hejsa,

Jeg får følgende fejl når jeg køre koden nedenfor :

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Excel-driver] Handlingen skal bruge en opdaterbar forespørgsel.
/Conset/excel.asp, line 34

Her kommer koden :

Dim Conn
Set Conn = CreateObject("ADODB.Connection")
With Conn
    .Open "DRIVER=Microsoft Excel Driver (*.xls);" & "DriverId=790;" & "DBQ=d:\Udvikling\Conset\Data\Test.xls"
End With
Response.Write "Excel Åbnet<br>"

F1 = "TableId"
F2 = "BaseModul"
F3 = "bLength"
F4 = "bWidth"
F5 = "bCorner"
Response.Write "Felt navne sat<br>"
   
V1 = "1"
V2 = "u"
V3 = "5626"
V4 = "3464"
V5 = "20"
Response.Write "Værdier sat<br>"

Sql = "Update ExcelTest Set "&F2&" = '"&V2&"', "&F3&" = "&V3&", "&F4&" = "&V4&", "&F5&" = "&V5&" Where "&F1&" = "&V1&""

Conn.Execute(Sql)
Response.Write "Data opdateret i excel<br>"

If isObject(Conn) Then
    Conn.Close
    Set Conn = Nothing
    Response.Write "Excel lukket<br>"
End If

Jeg skylder lige at sige at sige at jeg har sat fuld kontrol til IUSER på maskinen

/Websam
Avatar billede fet321 Nybegynder
16. april 2004 - 15:40 #1
Hvad siger den hvis du ændrer din sql til:
Sql = "Update ExcelTest Set BaseModul = '"&V2&"', bLength = "&V3&", bWidth = "&V4&", bCorner = "&V5&" Where TableId = "&V1&""
Avatar billede eagleeye Praktikant
16. april 2004 - 15:51 #2
Det er fordi enten databasen eller folderen databasen ligger i ikke har givet skrivrettigheder til brugere Internet Guest Account / IUSR_xxxx:

se mere her (2000/NT):
http://activedeveloper.dk/artikler/default.asp?articleid=58

Sådan her (XP):

1. Åbn denne computer
2. Klik på menupunktet Funktioner
3. Mappeindstillinger
4. Klik på fanen Vis
5. Fjern flueben i "Brug Enkel Fildelign" så får du adgang til en fane der hedder sikkerhed, som du skal bruge om lidt.

1. Højreklik på mappen hvor databasen ligger
2. Vælg egenskaber
3. Klik på fanen sikkerhed giv her IUSR_xx skriverettigheder.
Avatar billede websam Nybegynder
16. april 2004 - 15:55 #3
Det giver den samme fejl :o)

/Websam
Avatar billede websam Nybegynder
16. april 2004 - 15:58 #4
Eagleeye >> jeg har sat IUSER til fuld kontrol men den kommer stadig med samme fejl og det er på Excel regnearket og på mappen jeg har gjort det begge steder

/Websam
Avatar billede websam Nybegynder
16. april 2004 - 16:03 #5
Eagleeye >> Og hvis du vil kigge på denne tråd der bruger jeg en anden løsning til connect men den vil bare ikke opdatere den melder ingen fejl :

http://www.eksperten.dk/spm/489814

Måske du kan klare den ?!?

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:16 #6
Prøv at tilføje, HDR=Yes i connection stringen

With Conn
    .Open "DRIVER=Microsoft Excel Driver (*.xls);" & "DriverId=790;" & "DBQ=d:\Udvikling\Conset\Data\Test.xls;HDR=Yes"
End With
Avatar billede websam Nybegynder
16. april 2004 - 17:21 #7
Det giver det samme resultat

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:33 #8
Jeg kan ikke få den connection du bruger til at virke prøv at rette den

Set Conn = CreateObject("ADODB.Connection")
With Conn
    .Open "DRIVER=Microsoft Excel Driver (*.xls);" & "DriverId=790;" & "DBQ=d:\Udvikling\Conset\Data\Test.xls"
End With


Til dette:

connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
connStr = connStr & "Data Source=d:\Udvikling\Conset\Data\Test.xls;"
connStr = connStr & "Extended Properties=""Excel 8.0;HDR=Yes;"";"
Set Conn = CreateObject("ADODB.Connection")
With Conn
  Conn.Open connStr
End With
Avatar billede websam Nybegynder
16. april 2004 - 17:34 #9
Har det nogen betydning hvilken udgave af excel jeg bruger ? Det skulle jo blot ikke betyde noget alt efter hvad jeg har læst mig frem til :o)

Men hvis jeg benytter denne :

With Conn
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "Data Source=d:\Udvikling\Conset\Data\Test.xls; Extended Properties=Excel 8.0;"
  .Open
End With

Så melder den ingen fejl men den opdatere ikke i regnearket og dt undre mig en smule ?

/Websam
Avatar billede websam Nybegynder
16. april 2004 - 17:39 #10
Ok så får jeg denne Fejl :

Fejltype:
Microsoft JET Database Engine (0x80004005)
Den installerbare ISAM kan ikke findes.
/conset/excel.asp, line 11

Linie 11 er denne :

.Open

Har lavet connection som følger :

With Conn
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "Data Source=d:\Udvikling\Conset\Data\Test.xls; Extended Properties=Excel 8.0;HDR=Yes;"";"
  .Open
End With

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:41 #11
Prøv at rette .ConnectionString til:

  .ConnectionString = "Data Source=d:\Udvikling\Conset\Data\Test.xls; Extended Properties=""Excel 8.0;HDR=Yes;"";"
Avatar billede websam Nybegynder
16. april 2004 - 17:43 #12
Så får jeg ingen fejl men der opdateres ikke i regnearket :o(

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:48 #13
hmm jeg har prøvet din kode og det virker fint. Den opdatere det ganske fint.
Har du markeret hele det området der er data i, også selv posterne og givet det navnet ExcelTest ?
Avatar billede eagleeye Praktikant
16. april 2004 - 17:48 #14
For så vil du opleve det du beskriver
Avatar billede websam Nybegynder
16. april 2004 - 17:50 #15
Nej ikke posterne kun feltnavnene skal det hele da navngives ? Og kan det have noget at sige at jeg bruger en Excel 2003 ?

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:52 #16
Ja det hele føste gang, hvis den selv skriver posterne ind skal de navn gives med føste gang. BRuger du INSERT INTO SQL skulle excel selv udvide området automatisk.
Det område afgrænser "tabellen" inde i arket.
Avatar billede eagleeye Praktikant
16. april 2004 - 17:54 #17
Eks hvis du skriver:

    A        B      C      D        E
1 TableID BaseModul bLength bWidth bCorner
2  1          aaa    bbb    ccc    dddd

Skal du markere A1->E2 og kalde det  ExcelTest
Avatar billede websam Nybegynder
16. april 2004 - 17:54 #18
Jeg har følgende i regne arket:

TableId BaseModul bWidth bLength bCorner
----------------------------------------
1      s        2000  1000    20

Og deter kun denne række der er navngivet :

TableId BaseModul bWidth bLength bCorner

Så det vil jeg mene at det er rigtigt nok

Kan du prøve at sende mig den excel fil du har lavet det kunne jo være jeg havde noget forkert i mit ?

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 17:59 #19
Jo men den er meget simpel.
i A1 står der TableID
i B1 står der BaseMdul
i C1 står der bLength
i D1 står der bWidth
i E1 står der bCorner
i A2 står der 1
i B2 står der aaa
i C2 står der bbb
i D2 står der ccc
i E2 står der ddd

Så markere jeg området A1->E2 med musen og vælger menuen Indsæt->Navn->Definer og skriver ExcelTest. Man skal skrive kolonnenavnet i første kolonne, og det som HDR=Yes betyder er at den bruger første "post" indhold som kolonnenavne.
Avatar billede websam Nybegynder
16. april 2004 - 18:07 #20
Det tog fame sin tid men hvorfor skal jeg tilføje A1 til E2 ?

Og det har jeg bare brugt hele dagen på at løse det her *GGG*

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 18:11 #21
Området svare til begrænse tabellen størrelse, sådan den kun henter alle de poster som er inde i området ud og ikke uendeligt mange med tomt indhold.

Du kunne markere første linje og givet nanvet til området, og så indsætte data via SQL insert into ExeclText (TableId, ...) så vil excel selv udvide område med en post sdåan den er med i tabellen. Skriver du selv posten ind i excel arket er man også selv nød til at lave området.
Avatar billede websam Nybegynder
16. april 2004 - 18:26 #22
Ok og så lige en sidste ting hvis jeg tilføjer F.eks. tilføjer flere felter kan jeg så nøjes med at opdatere kun nogle af felterne ?

Og ellers mange tak for hjælpen :o)

/Websam
Avatar billede eagleeye Praktikant
16. april 2004 - 18:34 #23
Ja man kan nøjes med kun at opdater enkelte kolonner, som med en database, eks hvis du kun ville opdatere den sidste kolonne F5, så ville SQL sætningen se sådan her ud:

Sql = "Update ExcelTest Set "&F5&" = "&V5&" Where "&F1&" = "&V1&""

er det sådan du mente?
Avatar billede websam Nybegynder
16. april 2004 - 18:51 #24
Kanon så er jeg godt på vej ikke forde jeg ska lbruge Excel til database der bruger jeg mssql og mysql men til et lidt sjovt projekt hvor det er nødvendigt med Excel :o)

/Websam
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