Avatar billede thb Nybegynder
12. december 2001 - 00:22 Der er 18 kommentarer og
1 løsning

Fra db til word

Hej alle

Er der nogle der ved om man kan lave word filer, eller et andet normalt tekst format, ud fra nogle informationer fra en database...

Det skal bruges til at lave medlemsregister, så skulle det være sådan at folk indtastede en masse informationer om klubmedlemmere og så skulle de kunne downloade en fil (word, exel el. lign.) med alle informationerne...

Håber i kan hjælpe...

Thomas
Avatar billede keysersoze Ekspert
12. december 2001 - 00:27 #1
de fleste der har adgang til word og excel har som regel også adgang til access, så hvorfor ikke bare lade access filen være den der kan hentes? det er så selvfølgelig bare næsten et must at der laves lidt mere end tabeller i databasen med en decideret brugerflade...
Avatar billede thb Nybegynder
12. december 2001 - 00:34 #2
hvsi der ligger alle muliges medlemmere i den database... så ville det være fedt hvis man lige kunne lave en exel fil og folk så kunne downloade...
Avatar billede keysersoze Ekspert
12. december 2001 - 00:40 #3
du kan så vidt jeg husker godt gemme en access db til en excel fil - men jeg tror ikke at det er noget serveren kan klare for dig... men du kan jo vha diverse forespørgsler, rapporter m.m. lave et interface så der er en let tilgængelig brugerflade til access-filen

Avatar billede tmceu Praktikant
12. december 2001 - 00:46 #4
Det var noget af en påstand. Jeg kender adskillelige mennesker, der har Word, Excel og Powerpoint, men ikke Access.

Kig på mit svar i dette spørgsmål: http://www.eksperten.dk/spm/139010

Det script jeg viser laver et udtræk fra en database og leverer det i Excel format, forudsat at brugeren har Excel installeret.
Avatar billede 2cool Nybegynder
12. december 2001 - 00:59 #5
Det kan lade sig gøre at lave en RTF fil direkte fra en ASP side og ned i en Access eller anden database - du skal gøre følgende!!

\'Fortæller browseren af der nu kommer et RTF dokument...
Response.ContentType=\"application/rtf\"
Response.AddHeader \"Content-Disposition\", \"filename=udskrift.rtf;\"

Derefter kan du sådan set bare skrive ud med response.write

Hvis du vil vide hvordan du sætter de forskellige formater som f.eks. fed, underline og hvordan du laver en tabel i RTF formatet, så start write (wordpad) og gem et RTF dokument - det kan du så efterfølgende åbne i UltraEdit eller notepad og så se hvordan den har lavet filen!!

Det er løsningen, jeg har brugt det et par gange, og jeg vil gerne lave et eks. til dig hvis du sender mig en database!
Avatar billede dr-kermit Nybegynder
12. december 2001 - 10:57 #6
Hejsa Thomas,

Jeg har lavet en løsning hvor der er en masse brugere der indtaster en masse oplysninger og svare på en masse spørgsmål. Disse gemmes i en acces database, men for at ham der skal kigge på svarene ikke skal hente en database ned, så har jeg lavet det sådan at man klikker på et link hvorefter der genereres et EXCEL document med informationerne fra databasen. Dette kan enten gøres for en enkelt bruger, eller for alle brugere.

Så er administratoren fri for at have alle mulige programmer installeret, han gemmer bare excel dokumentet fra sin browser til sin harddisk.

Hvis det har interesse, så giv et pip så får du et link.

Mvh Kenneth Nielsen
Avatar billede dr-kermit Nybegynder
12. december 2001 - 10:59 #7
Hejsa igen,

Havde ikke lige set at det er samme løsning som \"tmceu\" har beskrevet tidligere ;)

Mvh Kenneth
Avatar billede thb Nybegynder
12. december 2001 - 18:20 #8
Er der ikke en der kan komme med noget kode, hvor den laver en word eller exel, jeg ved ikke hvad der er bedst...

ud fra en db med felterne klub[text],navn[text],hold[text]

den skal så lave en: where klub = etellerandet
og så lave filen, hvor klub navnet står øverst, og så nedenunder kommer der en tabel med 2 <td> en med alle navnene og en med alle holdene...

Forstår I ???

På forhånd tak...

Thomas
Avatar billede tmceu Praktikant
12. december 2001 - 18:29 #9
<%@ Language=VBScript %>
Response.ContentType = \"application/vnd.ms-excel\"

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

Conn.Open \"MyConnectionString\"

sql = \"SELECT Klub, Navn, Hold FROM Tabel WHERE Klub=\'\" & Request.QueryString(\"Klub\") & \"\'\"


RS.Open sql, Conn

if not RS.EOF then
    Response.Write(\"<TABLE>\")
    Response.Write(\"<TR>\")
        Response.Write(\"<TH align=left colspan=3 bgcolor=gray>\" & RS(\"Klub\") & \"</TH>\" & vbcrlf)
    Response.Write(\"</TR>\")
end if

Do While Not RS.EOF
    Response.Write(\"<TR>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Navn\") & \"</TD>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Hold\") & \"</TD>\" & vbcrlf)
        RS.MoveNext
    Response.Write(\"</TR>\" & vbcrlf)
Loop

Response.Write(\"</TABLE>\" & vbcrlf)


if rs.State <> 0 then rs.Close
if Conn.state <> 0 then Conn.Close

%>

Kan kaldes med minside.asp?klub=FCK
Avatar billede tmceu Praktikant
12. december 2001 - 18:31 #10
Der havde indsneget sig en lille fejl, da der kun er 2 kolonner

<%@ Language=VBScript %>
Response.ContentType = \"application/vnd.ms-excel\"

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

Conn.Open \"MyConnectionString\"

sql = \"SELECT Klub, Navn, Hold FROM Tabel WHERE Klub=\'\" & Request.QueryString(\"Klub\") & \"\'\"


RS.Open sql, Conn

if not RS.EOF then
    Response.Write(\"<TABLE>\")
    Response.Write(\"<TR>\")
        Response.Write(\"<TH align=left colspan=2 bgcolor=gray>\" & RS(\"Klub\") & \"</TH>\" & vbcrlf)
    Response.Write(\"</TR>\")
end if

Do While Not RS.EOF
    Response.Write(\"<TR>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Navn\") & \"</TD>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Hold\") & \"</TD>\" & vbcrlf)
        RS.MoveNext
    Response.Write(\"</TR>\" & vbcrlf)
Loop

Response.Write(\"</TABLE>\" & vbcrlf)


if rs.State <> 0 then rs.Close
if Conn.state <> 0 then Conn.Close

%>

Kan kaldes med minside.asp?klub=FCK
Avatar billede thb Nybegynder
12. december 2001 - 20:01 #11
kan du forklare det lidt...
kan jeg afprøve det på PWS...
Avatar billede tmceu Praktikant
12. december 2001 - 23:43 #12
Skal gerne forsøge. Jeg indsætter som kommentarer i koden, så kan du fortsat lave copy/paste af koden

<%@ Language=VBScript %>
\' Fortæl browseren at indholdet i dokumentet er af typen Microsoft Excel
Response.ContentType = \"application/vnd.ms-excel\"

\' Definer en connection til databasen og et recordset
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

\' Åben databasen. \"MyConnectionString\" skal erstattes af din egen
\' connectionstring, afhængig af hvilken database/provider du anvender
Conn.Open \"MyConnectionString\"

\' Indsæt værdien af querystring parameter \"Klub\" i SQL statementet
\' querystring er de name/value par som står efter ? i browserens adresse
\' vindue. Eks www.mitdomaene.dk/minside.asp?klub=FCK
\' Her åbnes minside.asp med parameteren \"Klub\" som har værdien \"FCK\"
sql = \"SELECT Klub, Navn, Hold FROM Tabel WHERE Klub=\'\" & Request.QueryString(\"Klub\") & \"\'\"

\' Returnerer resultatet af SQL statementet fra databasen
RS.Open sql, Conn

\' Kontroller om recordsettet er tomt, hvis ikke udskriv
\' feltet \"Klub\" fra databasen i tabeloverskriften
if not RS.EOF then
    Response.Write(\"<TABLE>\")
    Response.Write(\"<TR>\")
        Response.Write(\"<TH align=left colspan=2 bgcolor=gray>\" & RS(\"Klub\") & \"</TH>\" & vbcrlf)
    Response.Write(\"</TR>\")
end if

\' Udskriv felterne \"Navn\" og \"Hold\" fra alle poster i tabellen
Do While Not RS.EOF
    Response.Write(\"<TR>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Navn\") & \"</TD>\" & vbcrlf)
                Response.Write(\"<TD nowrap align=left>\" & RS(\"Hold\") & \"</TD>\" & vbcrlf)
        RS.MoveNext
    Response.Write(\"</TR>\" & vbcrlf)
Loop

Response.Write(\"</TABLE>\" & vbcrlf)

\' Luk recordset og connection til databasen, hvis de er åbne.
\' Kontrollen af state forhindrer fejlmeldinger hvis objektet ikke er åbent
if rs.State <> 0 then rs.Close
if Conn.state <> 0 then Conn.Close

%>

Kan kaldes med minside.asp?klub=FCK
Avatar billede thb Nybegynder
13. december 2001 - 10:04 #13
meget fint, men skal der ikke være noget kode som laver exel filen et eller andet sted, altså sådan hvilken mappe osv...???

Og hvor skriver den til exel filen ???

Jeg kan bare se at den udskriver noget skrift på skærmen...

Thomas
Avatar billede tmceu Praktikant
13. december 2001 - 10:14 #14
Jeg vil gætte på, at du ikke har Excel installeret, hvis du blot ser det i browseren ? Jeg skrev netop at det selvfølgelig forudsætter at klienten har Excel installeret :-)

Det der vi ske hvis en bruger med Excel installeret åbner siden, vil vedkommendes browser åbne en download dialogboks og Excel filen gemmes således kun hos brugeren. Derfor skal du ikke bruge mappe/filnavn.
Avatar billede thb Nybegynder
13. december 2001 - 10:37 #15
okay... jeg har ikke prøvet det, men det var bare det jeg gættede mig til fordi at der ikke var noget med at skrive til en fil... jeg troede at den lavede en fil til at ligge på serveren...

Thomas
Avatar billede thb Nybegynder
13. december 2001 - 10:39 #16
kan man lave så den tjekker om brugeren har exel på sin computer... ????

Så han ikke havde mulighed for at komme ind på siden hvis han ikke havde exel

Thomas
Avatar billede tmceu Praktikant
13. december 2001 - 10:46 #17
Jo, du kan kontrollere om \"application/vnd.ms-excel\" findes i Request.ServerVariables(\"HTTP_ACCEPT\")
Avatar billede thb Nybegynder
14. december 2001 - 00:24 #18
mange tak for hjælpen... det var fedt..

Thomas
www.volleyportal.dk
Avatar billede tmceu Praktikant
14. december 2001 - 07:14 #19
Det var så lidt :-)
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