Avatar billede iggipop Nybegynder
26. oktober 2004 - 13:32 Der er 17 kommentarer og
2 løsninger

Slette fil før udtræk

Jeg bruger nedenstående til at danne et udtræk fra min DB til et excelark. Det fungerer kanon første gang. Herefter ligger filen udtrak.xls i mappen. Efterfølgende når jeg så kører denne fil, så kommer der ingen fejlmeddelelse, men den laver heller ikke en ny fil (udtrak.xls). Den må åbenbart ikke overskrive den gamle. Hvor kan jeg enten tvinge den til at overskrive den gamle eller også til at slette den gamle inden den kører udtrækket igen ?


<%
session.lcid="1030"
Dim objConn        'Holds the Database Connection Object
Set objConn = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../../../db/database.mdb")

Function CreateExcel(Title,tblname)
  Dim Rs,Fso,Act,fname
  Fname = "Udtrak.xls"
  Set rs = Server.CreateObject("ADODB.Recordset")
  Set FSO = Createobject("scripting.filesystemobject")
  Set act = Fso.CreateTextfile(server.mappath(Fname),true)
  rs.Open Tblname, objconn, 3, 3
  If Not Rs.EOF and not Rs.BOF Then
    act.WriteLine "<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">"
    act.WriteLine "<head>"
    act.WriteLine "<!--[if gte mso 9]><xml>"
    act.WriteLine "<x:ExcelWorkbook>"
    act.WriteLine "<x:ExcelWorksheets>"
    act.WriteLine "<x:ExcelWorksheet>"
    act.WriteLine "<x:Name>"& title &"</x:Name>"
    act.WriteLine "<x:WorksheetOptions>"
    act.WriteLine "<x:Print>"
    act.WriteLine "<x:ValidPrinterInfo/>"
    act.WriteLine "</x:Print>"
    act.WriteLine "</x:WorksheetOptions>"
    act.WriteLine "</x:ExcelWorksheet>"
    act.WriteLine "</x:ExcelWorksheets>"
    act.WriteLine "</x:ExcelWorkbook>"
    act.WriteLine "</xml>"
    act.WriteLine "<![endif]--> "
    act.WriteLine "</head>"
    act.WriteLine "<body>"

    Act.Writeline "<table border=1>"
    Act.Writeline "<Tr>"
    For X = 0 to Rs.Fields.count - 1
      Act.Writeline "<Td><b>" & Rs.Fields.Item(x).Name & "</b></td>"
    Next
    Act.Writeline "</Tr>"
    While not Rs.Eof
      Act.Writeline "<Tr>"
      For X = 0 To Rs.Fields.Count - 1
        Act.Writeline "<Td>" & Rs.Fields.Item(X).Value & "</td>"
      Next
      Act.Writeline "</Tr>"

      Rs.Movenext

    Wend
    Act.Writeline "</Table>"
    act.writeline "<tr></tr>"
    act.writeline "<tr>Kodet af **TotalPC**</tr>"
    act.WriteLine "</body>"
    act.WriteLine "</html>"

  End if
  Act.close
  Rs.close
%>
<!--
<font face="Verdana" size="1">
Din excel fil kan hentes hér: <a href="<%=fname%>" target="_blank"> Klik her </a>
</font>
-->
<%
  End function

call CreateExcel("Titelnavn","medlemmer")
'Reset server objects

Set rs = Nothing
Set objConn = Nothing

Response.redirect "admin.asp?udtrak="& Date()&" kl. "& Time()
%>
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 13:52 #1
Fso.CreateTextfile(server.mappath(Fname),true) over skriver hvis filen findes i forvejen
Avatar billede iggipop Nybegynder
26. oktober 2004 - 13:55 #2
øøhh ik forstået ?
Jeg ved at det er det der er problemet, for hvis jeg manuelt sletter og herefter kører denne fil så kommer nye data med. Sletter jeg den ikke, så er ændringer ikke med= samme fil jeg henter hver gang!

Jeg forstår ikke om du mener at det allerede burde virke eller hur?
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 13:57 #3
det burde virke allerede
Avatar billede iggipop Nybegynder
26. oktober 2004 - 13:57 #4
Det gør det altså ik....
Men mindre det er noget med IE cahce at gøre...kan det tænkes ?
Avatar billede iggipop Nybegynder
26. oktober 2004 - 13:58 #5
Med mindre...
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 14:01 #6
ellers så prøv at smide det her ind lige efter Set FSO = Createobject("scripting.filesystemobject")



if(fso.FileExists(server.mappath(Fname))) then
  fso.DeleteFile(server.mappath(Fname))
end if
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:08 #7
Nope....der sker intet..
Hvis jeg henter xls filen via ftp er den opdateret....
Så hvad kan det så være ?
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 14:12 #8
sikkert noget cache.
prøve at linke til filen sådan her :
Din excel fil kan hentes hér: <a href="<%=fname&"?"&session.sessionid&datetime%>" target="_blank"> Klik her </a>
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 14:12 #9
det kan nogen gange snyde cachen
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:30 #10
Eeehhh kan du hjælpe mig med at skrive det ind i denne linie som jeg bruger til at hente filen med ?

Response.Write (" | <a href='udtrak.xls'>Hent udtræk</a><br>")

Jeg går total kold over ' og "'er
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 14:32 #11
Response.Write (" | <a href=""udtrak.xls?"&session.sessionid&datetime&""">Hent udtræk</a><br>")
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:38 #12
Nope......det er stadig den samme fil uden opdatering jeg får :(
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:41 #13
Hvis jeg nu kører udtræk og venter lidt og kører det igen og så holder musen hen over link til at hente filen, så er sessionid&datetime ens...det bør den da ikke være vel ?
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:46 #14
hvis man logger af siden og logger på igen...så er det den opdaterede fil.....fuck hvor underligt!
Avatar billede iggipop Nybegynder
26. oktober 2004 - 14:51 #15
Jeg forstår det ikke.....hvis jeg logger af/på et par gange så kommer den til sidst...Men det virker da meget underligt gør det ikke ?
Avatar billede iggipop Nybegynder
26. oktober 2004 - 15:04 #16
Jeg tænkte på..kan du lave et script der bare sletter filen udtrak.xls ?
Så vil jeg prøve at kalde den fil første og så bagefter den anden for at se om det hjælper ?
Avatar billede iggipop Nybegynder
26. oktober 2004 - 18:37 #17
Hmm..ved ik om du er gået kold ?
Prøver at oprette et nyt spgm hvor jeg bare for slette filen og så må jeg se hvad der så sker!
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 20:38 #18
Jeg skulle til møde :-)

Men det jeg postede tidligere :
if(fso.FileExists(server.mappath(Fname))) then
  fso.DeleteFile(server.mappath(Fname))
end if

sletter netop filen
Avatar billede iggipop Nybegynder
26. oktober 2004 - 21:17 #19
Helt ok :D
Men det virkede ikke...
Så tænkte jeg et script der ikke lavede andet en at slette og ikke var en del af det andet....Er lidt lost og ved ik hvordan jeg skal komme videre
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