20. oktober 2004 - 14:02Der er
24 kommentarer og 2 løsninger
Udtræk fra database
Hejsa!
Jeg har en access database. Kan man fra min side via ASP lave en udtræk som automatisk tager alle felter fra databasen og gemmer i et excelark eller i en kommasepareret fil ?
Det skal selvfølgelig foregå online, så ikke noget med at bruge MS ACCESS.
Det kommer sig af at en af mine brugerne vil kunne trække medlemsoplysninger ud online?
Det er en medlemsbase der fortæller adresser og navne og diverse andet. Der er så en admin der skal kunne lave et udtræk indimellem. Ja det er i princippet alle felter fra en base, men om det kun er specifikke felter er jeg egentlig ikke helt klar over...gør det den store forskel ?
Men gider i ikke prøve at give et eksempel på hvordan jeg gør ? Jeg er ik så god til at 'forstå' der der eksempler på M$ :o)
Ja det gør en meget stor forskel, om du vil trække definitioner eller data ud. Nedenstående funktion (måske skal der rettes et par ting) burde du kunne teste med.
Hvis du på en asp side åbner connection til din database, før du kalder funktionen OG du ændrer CONN til det du kalder din connectionstring, så burde du kunne komme videre.. (funktioner slutter af med at vise et link, som excel kan åbnes med)
Funktionen kalder du med en titel til regnearket og navnet på tabellen/recordsettet du vil have ekporteret til excel.
..jeg lukker og slukker for idag..
Function CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "skriv navn på excel sheet" Set rs = Server.CreateObject("ADODB.Recordset") Set FSO = Createobject("scripting.filesystemobject") Set act = Fso.CreateTextfile(server.mappath(Fname),true) rs.Open Tblname, conn, 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 Next Act.Writeline "</Tr>"
Jeg tror ikke helt jeg kan finde ud af den svære løsning...sådan her har jeg gjort indtil videre, men det virker ikke ??
<% session.lcid="1030"
Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../../../db/database.mdb") Set rs = Server.CreateObject("ADODB.Recordset") strSQL="SELECT * FROM medlemmer" set RS=objConn.execute(strSQL)
Function CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "Udtrak" 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 Next Act.Writeline "</Tr>"
sub CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "Udtræk.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>"
Function CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "skriv navn på excel sheet" Set rs = Server.CreateObject("ADODB.Recordset") Set FSO = Createobject("scripting.filesystemobject") Set act = Fso.CreateTextfile(server.mappath(Fname),true) rs.Open Tblname, conn, 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>"
<% Function CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "skriv navn på excel sheet" Set rs = Server.CreateObject("ADODB.Recordset") Set FSO = Createobject("scripting.filesystemobject") Set act = Fso.CreateTextfile(server.mappath(Fname),true) rs.Open Tblname, conn, 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>"
Jamen nu får du alt hvad der er i filen. Simpelhen alt. Jeg roder nemlig helt rundt i det tror jeg...
<% Dim objConn 'Holds the Database Connection Object Dim strSQL 'Holds the SQL query for the database
'Create an ADO connection odject 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")
'Create an ADO recordset object Set rs = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database
strSQL="SELECT * FROM medlemmer" set objRS=objConn.execute(strSQL)
Function CreateExcel(Title,tblname) Dim Rs,Fso,Act,fname Fname = "Udtrak" 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>"
<% 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" 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>"
Hmm -mundi- det virker næsten. Nu kommer link-teksten frem så jeg kan klikke på den, men der er noget galt. Der ligger nu en fil der hedder udtrak uden endelse og en der hedder udtrak.xls Der ligger noget i den fil uden endelse og det er også den der bliver åbnet når man klikker på linket, men xls filen er på 0 og der står intet i den. ???+
call CreateExcel("Titelnavn","SELECT feltnavn1,feltnavn2,feltnav3 from medlemmer ORDER BY feltnavn ") <-- nu ved jeg slf ikke hva dine felter hedder så du må selv rette til
Okay...kanon.....jeg takker mange gange for hjælpen...
Synes godt om
Ny brugerNybegynder
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.