Avatar billede bobbedude Nybegynder
10. februar 2003 - 12:40 Der er 10 kommentarer og
1 løsning

Opdater et Felt/Range i Excel

Hvordan kan jeg opdater et range i Excel ved det der kommer fra en Request.form("prut")
Avatar billede eagleeye Praktikant
10. februar 2003 - 13:19 #1
Du markere et omkråde med musen i excel. Eksvis A1->C10 så tykke på du boksen som hedder "Name Box" hvis man holder musen over. Der vil i den box stå A1. Der skiver du et navn "test" så har rangen A1->C10 navet test.

Det kan også gøres fra menuen "Insert" -> "Name" -> "Define Name" der kan man  oprette, ændre og slette.
Avatar billede eagleeye Praktikant
10. februar 2003 - 13:20 #2
Når du indsætte via SQL vil excel selv udvide rangen.
Avatar billede bobbedude Nybegynder
10. februar 2003 - 13:33 #3
Fra C10 til G10 hedder mit felt FraNavn og Arket hedder Arbejdsseddel

Jeg får fejlen
Number of query values and destination fields are not the same.

koden jeg prøver at bruge er:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("2003.xls") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=No;"";"
         
         
         
          Set oRS = Server.CreateObject("ADODB.Recordset")

oRS.Open "SELECT * from `$A1:H78`", oConn, 1, 2

Response.Write oRS(0)

If request.querystring("test")="test" then

oConn.Execute "INSERT INTO `Arbejdsseddel$C10:G10` VALUES(""hello"")"

end if
%>
Avatar billede bobbedude Nybegynder
10. februar 2003 - 13:34 #4
Hvis jeg gør dette

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("2003.xls") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=No;"";"
         
         
         
          Set oRS = Server.CreateObject("ADODB.Recordset")

oRS.Open "SELECT * from `$A1:H78`", oConn, 1, 2

Response.Write oRS(0)

If request.querystring("test")="test" then

oConn.Execute "INSERT INTO `Arbejdsseddel$C10:C10` VALUES(""hello"")"

end if
%>


Får jeg fejlen
Cannot expand named range.
Avatar billede eagleeye Praktikant
10. februar 2003 - 16:36 #5
Så årøv at lave denne om:

oRS.Open "SELECT * from `$A1:H78`", oConn, 1, 2


Til:

oRS.Open "SELECT * from `Arbejdsseddel:FraNavn`", oConn, 1, 2
Avatar billede eagleeye Praktikant
10. februar 2003 - 16:38 #6
Det er ikke sikker der er nødvendigt med  Arbejdsseddel

oRS.Open "SELECT * from `FraNavn`", oConn, 1, 2
Avatar billede eagleeye Praktikant
10. februar 2003 - 16:39 #7
Det skulle være INSERT SQL'en:


oConn.Execute "INSERT INTO `FraNavn` VALUES('hello')"
Avatar billede bobbedude Nybegynder
12. februar 2003 - 07:29 #8
eagleeye >> Det du skrev virker fint nok, der er bare lige noget jeg ikke forstår helt håber du gør.

I C8 laver jeg et felt der hedder FraNavn og laver feltet blå så kører jeg dette script:

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("test.xls") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=No;"";"
         
         
         
          Set oRS = Server.CreateObject("ADODB.Recordset")

oRS.Open "SELECT * from `FraNavn`", oConn, 1, 2

'Response.Write oRS(0)

'If request.querystring("test")="test" then

oConn.Execute "INSERT INTO `FraNavn` VALUES(""hello"")"

'end if
%>

Når jeg så åbner Excel arket igen er C8 og C9 blå og i C9 står der hello og feltet FraNavn er rykket til I8 ???????????
Avatar billede eagleeye Praktikant
12. februar 2003 - 17:42 #9
Det er fordi det er en INSERT så skal der bruges UPDATE som SQL. men jeg har ikke fået det til at virker umiddelbart. Dog kan jeg få det til at virker hvis man tilføjer et kolonnenavn ind over C8 altså i C7.

Hvis jeg tilføjer teksten kolnavn i C7 og kalder C7:C8 for FraNavn så kan jeg så dette til at virke.

<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("test.xls") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=Yes;"";"
         
oConn.Execute "UPDATE `FraNavn` SET `kolnavn` = ""hello"""
Avatar billede bobbedude Nybegynder
13. februar 2003 - 07:32 #10
eagleeye >> Jeg har droppet det Excel ark, men du får point fordi du gad hjælpe mig og fordi dit script virkede.
Avatar billede eagleeye Praktikant
13. februar 2003 - 08:50 #11
Ok mange tak ;) jeg kom til at tænke på du kan msåke bruge rs.Update:


<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & Server.MapPath("test.xls") & ";" & _
          "Extended Properties=""Excel 8.0;HDR=No;"";"
         
         
         
Set oRS = Server.CreateObject("ADODB.Recordset")

oRS.Open "SELECT * from `FraNavn`", oConn, 1, 2

oRS(0) = """hello"""
oRS.Update
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