webForumDet fria alternativet

Hur göra för att infoga data från en databas i ett Worddokument?

ASP

4 svar · 202 visningar · startad av anhel96

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

Hur gör jag för att hämta data ifrån databasen och infoga de i det Word-dokument som skapas enligt nedan? Dvs jag vill t.ex. att förnamn och efternamn ska hämtas från databasen och skrivas ut i Worddokumentet efter "Namn:".

<%
Set Connection = Server.CreateObject("ADODB.Connection")
dbFilePath = Server.MapPath("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.Bold = False
MyDoc.content.Font.Underline = False
MyDoc.content.Font.Name = "Times New Roman"
MyDoc.content.Font.Size = 10
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: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Adress: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Postadress: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Telefon: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Mobil: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "E-post: "
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "_
_"
MyDoc.content.InsertParagraphAfter
%>
<%
RS.MoveNext
Loop
RS.Close
Connection.Close
Set MyDoc = Nothing
%>

[Redigerat av anhel96 den 14 jan 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Ser ett syntaxfel i din selectsats, skall vara:

SELECT * FROM Login ORDER BY Efternamn, ForNamn

Dvs inget where om du inte har några villkor. Annars ser det väl ok ut.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 2000124 inlägg
#3

OK, har missat det då jag klippte ut koden. I originalet har jag med ett WHERE-villkor. Glömde bara att ta bort WHERE här i diskussionsmeddelandet. Men koden fungerar som sagt annars som den står i det följande. Det jag dock skulle vilja ha svar på är hur jag infogar data från databasen bland de övriga. T.ex. efter MyDoc.content.insertAfter "Namn: "
vill jag att en namnen från databasen ska inflikas. Hur får jag detta att fungera?
T.ex om 25 personer finns loggade i databasen går loopen 25 gånger och skriver ut Namn, Adress, Postadress m.m. för vardera av de 25 personerna.

Medlem sedan dec. 200012 464 inlägg
#4

Ok, jag läste lite snabbt :h

Om dina kolumner heter fornamn,efternamn etc så kan du plocka dom från RS:

MyDoc.content.insertAfter "Namn: " & RS("Fornamn") & " " & RS("EfterNamn")
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Adress: " & RS("Adress")
MyDoc.content.InsertParagraphAfter

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 2000124 inlägg
#5

Provade ditt förslag. Det fungerade inte riktigt. Fick ändra enligt nedan för att det skulle fungera. Dvs parenteser runt databasvariablerna.
Nu funkar det kanon. Tack!

MyDoc.content.insertAfter "Namn: " & (RS("ForNamn")) & " " & (RS("EfterNamn"))
MyDoc.content.InsertParagraphAfter
MyDoc.content.insertAfter "Adress: " & (RS("Adress"))
MyDoc.content.InsertParagraphAfter

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)