webForumDet fria alternativet

Varför kan jag inte skapa ett Word-dokument från servern?

ASP

5 svar · 191 visningar · startad av anhel96

Medlem sedan dec. 2000124 inlägg
Frågan#1

Har en sida som skapar ett Word-dokument enligt koden nedan. Det funkar lokalt hemma, men när jag tankat upp det på web-hotellet så fungerar det inte alls. Får bara upp "Sidan kan inte visas". Hemma så skapas ett Word-dokument och sidan skickar tillbaka användaren till ursprungssidan.

<%
Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("db\db.mdb")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbFilePath & ";"
SQLStmt = "SELECT * FROM Login ORDER BY EfterNamn, ForNamn"
Set RS = Connection.Execute(SQLStmt)
%>

<%
Dim MyDoc
Set MyDoc = CreateObject("Word.Document")
MyDoc.Application.Visible = True
MyDoc.content.Font.Name = "Times New Roman"
MyDoc.content.Font.Size = 12
MyDoc.content.insertAfter "Adressregister"
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "___________________________________________________________________"
MyDoc.content.InsertParagraphAfter
MyDoc.content.InsertParagraphAfter
%>

<%
Set RS = Connection.Execute(SQLStmt)
Do Until RS.EOF
%>
<%
MyDoc.content.insertAfter "Namn: " & (RS("ForNamn")) & " " & (RS("EfterNamn"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Adress: " & (RS("Adress"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Postadress: " & (RS("PostNummer")) & " " & (RS("Ort"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Telefon hem: " & (RS("TelBostad"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Telefon arb: " & (RS("TelArbete"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Mobil: " & (RS("TelMobil"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "E-post: " & (RS("E-Postadress"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "________________________________________"
MyDoc.content.InsertParagraphAfter
MyDoc.content.InsertParagraphAfter
%>

<%
RS.MoveNext
Loop
RS.Close
Connection.Close
Set MyDoc = Nothing
Response.Redirect("member.asp")
%>

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>

Medlem sedan dec. 19996 721 inlägg
#2

Enkelt svar.

De har inte Word installerat på webbservern.

....och de ska man var glad för, eftersom det inte lämpar sig i större webbhotellsammanhang.

Medlem sedan dec. 2000124 inlägg
#3

Hur gör jag då?
Jag vill ju egentligen inte att Word ska köras PÅ servern utan hos användaren lokalt.

Medlem sedan dec. 19996 721 inlägg
#4

Då får du köra med klientbaserat VBScript, men då tappar du kontakten med databasen. Det går att lösa, men det är avancerat. Kolla upp Remote Scripting på http://msdn.microsoft.com/scripting

...såvida du inte kan acceptera Excel i stället....

Medlem sedan dec. 2000124 inlägg
#5

Hur skulle jag kunna lösa det med Excel i så fall?

Medlem sedan dec. 19996 721 inlägg
#6

Egentligen bör det funka med Word också, men jag har inte provat ordentligt.

Prova följande skript, så kan du säkert räkna ut resten.

<%
response.ContentType = "application/vnd.ms-excel"
response.AddHeader "content-disposition", "attachment; filename=test.xls"
%>
<HTML>
	<TABLE>
		<TR>
			<TD>
				<B>Rubrik 1</B>
			</TD>
			<TD>
				<B>Rubrik 2</B>
			</TD>
		</TR>
		<TR>
			<TD>
				Värde 1:1
			</TD>
			<TD>
				Värde 2:1
			</TD>
		</TR>
		<TR>
			<TD>
				Värde 1:2
			</TD>
			<TD>
				Värde 2:2
			</TD>
		</TR>
	</TABLE>
</HTML>
263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)