Avatar billede l_otto Nybegynder
27. juni 2003 - 13:55 Der er 64 kommentarer og
1 løsning

udstræk / export til excel

Jeg skal bruge et script der kan trække de viste felter ud til et excel ark så det kan bruges til brevfelt..

den viser Fornavn og Efternavn... se ned og det er de to felter og senere flere der skal trækkes ud..

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Skaber et recordset udfra SQL strengen
Set rs = Conn.Execute(strSQL)

' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

Do While Not rs.EOF

' Variabler deklæres
id                     = rs("id")
Navn                 = rs("Fornavn")
Efternavn     = rs("Efternavn")
Adresse         = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

rs.MoveNext
Loop
Else

' Hvis der ikke er fundet poster på søgningen
Response.Write "<li>Sådan en har vi ikke  ?"

End If

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
Avatar billede eagleeye Praktikant
27. juni 2003 - 18:28 #1
Skal den indsætte i Excel arket ?


Så kan du gør som i stil med dette. Man skal definere et område som "tabellen".
Hvis man har fornavn og efternavn i henholdes vis A og B
      A          B
1  fornavn  efternavn
2    xxx        yyyy
3    ccc        vvvv

Så skal man markere A1->B1 og vælg "Indsæt->Navn->Definer" og skrive eksvis  brevFletkols  Så kan du bruge excel som en anden DB.:

<%
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Server.MapPath("test.xls") & ";" & _
            "Extended Properties=""Excel 8.0;HDR=Yes;"";"
         

' This SQL statement selects a cell range in the "Expenses" worksheet.
' "SELECT * from `Expenses$A2:C4`"

navn = rs("Fornavn")
efternavn = rs("Efternavn")
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

exConn.Close
Set exConn = Nothing
%>
Avatar billede l_otto Nybegynder
27. juni 2003 - 21:39 #2
Hej E.

Jeg skal desværre på ferie..nu hvade håber på svar i eftermiddags...

håber jeg må vende tilbage om 3 uger for jeg skal rigtig meget bruge den kode... og jeg  ved du en manden der kan lave den,..

PEter
Avatar billede l_otto Nybegynder
24. juli 2003 - 09:57 #3
så er jeg tilbage..

Hvor skal jeg sætte din kode ind i forhold til den kode jeg selv har ?

P
Avatar billede eagleeye Praktikant
24. juli 2003 - 11:36 #4
Det skal blandes lidt ind i koden.
Det bliver noget som dette alt efter hvor du lige vil skrive til excel arket:

<%
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Server.MapPath("test.xls") & ";" & _
            "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Skaber et recordset udfra SQL strengen
Set rs = Conn.Execute(strSQL)

' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

Do While Not rs.EOF

' Variabler deklæres
id                    = rs("id")
Navn                = rs("Fornavn")
Efternavn    = rs("Efternavn")
Adresse        = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

'Skriv til excel arket:
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

rs.MoveNext
Loop

Else

' Hvis der ikke er fundet poster på søgningen
Response.Write "<li>Sådan en har vi ikke  ?"

End If

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
exConn.Close
Set exConn = Nothing
Avatar billede l_otto Nybegynder
24. juli 2003 - 11:52 #5
hej .. jeg har nu lagt test.xls på min server i samme mappe fint  og jeg har skrevet fornavn i a1 feltet og efternavn i b1 feltet.. det skulle være iorden...

men jeg får en fejl.. her er hele koden til siden..

<% Response.Buffer = True %>

<%
Session("sessionnavn") = "Rune"
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Medarbejdere</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD><style type="text/css">
div.clSlideMenu0{ /* All slideMenu2 DIV elements */
    position:absolute;
    font-family:verdana,arial,helvetica;
    font-size:10px;
    overflow:hidden;
    height:22;
    background-color:#FFCD32;
}
div.clSlideMenu1{ /* All slideMenu2 DIV elements */
    position:absolute;
    font-family:arial,helvetica;
    font-size:20px;
    overflow:hidden;
    height:22;
    background-color:#FFCD32;
}
div.clSlideMenu2{ /* All slideMenu2 DIV elements */
    position:absolute;
    font-family:arial,helvetica;
    font-size:20px;
    overflow:hidden;
    height:22;
    background-color:green;
}
div.clSlideMenu3{ /* All slideMenu2 DIV elements */
    position:absolute;
    font-family:arial,helvetica;
    font-size:20px;
    overflow:hidden;
    height:22;
    background-color:silver;
}
div.clSlideMenu4{ /* All slideMenu2 DIV elements */
    position:absolute;
    font-family:arial,helvetica;
    font-size:20px;
    overflow:hidden;
    height:22;
    background-color:navy;
}
a.clA0{ /* All top level links */
    color:red;
    font-size:12px;
    text-decoration:none;
    font-weight:bold;
}
a.clA1{ /* All sub level links */
    color:red;
    font-size:12px;
    font-weight:bold;
    text-decoration:none;
}
a.clA2{ /* All sub2 level links */
    color:navy;
    text-decoration:none;
}
a.clA3{ /* All sub3 level links */
    color:white;
    text-decoration:none;
}
a.clA4{ /* All sub4 level links */
    color:green;
    text-decoration:none;
}
span.clArrow{
    font-family:webdings;
}


/* NEEDED STYLES */
div.slideMenuBG{position:absolute; left:0; top:0; z-index:1}
div.slideMenuText{position:absolute; left:2; top:2; text-align:left; z-index:200}
#slideMenucont{position:absolute; width:120; visibility:hidden;}
</style>


<script language="JavaScript" src="slidemenu.js" type="text/javascript">
/**********************************************************************************
SlideMenu 2.0
*  Copyright (C) 2002 Thomas Brattli
*  This script was released at DHTMLCentral.com
*  Visit for more great scripts!
*  This may be used and changed freely as long as this msg is intact!
*  We will also appreciate any links you could give us.
*
*  Made by Thomas Brattli
*
*Script date: 08/05/2002 (keep this date to check versions)
*********************************************************************************/
</script>
</head>
<link rel="stylesheet" type="text/css" href="ccs.txt">
<BODY marginleft="0"  bgcolor="white" marginheight="0">
<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
' Åben databaseforbindelsen
Conn.Open DSN
%>

<table  cellSpacing="1" cellPadding="0" width="900" align="center"  bgcolor="#FFF5D7" border="0" >
<TR>
    <TD><table cellSpacing="1" cellPadding="0" width="900" align="center" bgcolor="#FFFAEB" border="0" >
  <tr>
    <td colspan="3" bgcolor="#FFCD32" height="60" ><a href="default.asp"><FONT SIZE="6" COLOR="#ffffff">Medarbejdere</FONT></td>
  </tr>
  <tr>
    <td width="150" height="550" bgcolor="#FFF5D7" valign="bottom"><IMG SRC=".jpg"  BORDER="0" ALT=""></td>
    <td valign="top" > <center><TABLE>
<TR>
    <TD>
   
   
   
<FONT SIZE="5" COLOR="#FF0000"><b>Resultat på din søgning..</FONT></B><BR><BR><BR>

<table border=0 cellspacing=0 bgcolor=#FFCC66 width=500>
<tr>
<td valign=top><font face=verdana size=2>

<%
' Henter værdien fra search.htm
strKeyword     = Trim(Request.Form("search_keyword"))

strStilling    = Trim(Request.Form("search_stilling"))

strPostNummer    = Trim(Request.Form("search_postnr"))

back = Request.QueryString("back")

if not back = "true" then
    session("search_keyword")        = strKeyword
    session("search_stilling")     = strStilling
    session("search_postnr")        = strPostNummer
end if

searchExpression = "false"

' Hvis der er skrevet i feltet
strKeyword = Replace(strKeyword,"'","''")
strStilling = Replace(strStilling,"'","''")
strPostNummer = Replace(strPostNummer,"'","''")

' Opbygger en dynamisk SQL streng
strSQL = "SELECT id, Fornavn, Efternavn, Adresse, Postnr, Bynavn, Mobiltelefon, Telefon, mailm, Stilling FROM Kontaktpersoner"

if strKeyword <> "" then
    if searchExpression = "false" then
        strSQL = strSQL & " WHERE "
    end if
    strSQL = strSQL & " ((id LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Fornavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Efternavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Postnr LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Mobiltelefon LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Telefon LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (mailm LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Stilling LIKE '%" & strKeyword & "%') )"
   
    searchExpression = "true"
end if

if strStilling <> "" then
    if searchExpression = "false" then
        strSQL = strSQL & " WHERE "
    end if
    if searchExpression = "true" then
        strSQL = strSQL & " AND "
    end if
    strSQL = strSQL & "  ( Stilling = '" & strStilling & "') "
    searchExpression = "true"
end if


if strPostNummer <> "" then
    if searchExpression = "false" then
        strSQL = strSQL & " WHERE "
    end if
    if searchExpression = "true" then
        strSQL = strSQL & " AND "
    end if
    strSQL = strSQL & "  ( Postnr = '" & strPostNummer & "') "
    searchExpression = "true"
end if

strSQL = strSQL & " ORDER BY Efternavn "

'hvis vi er gået tilbage så vis den gamle søgning
if back = "true" then
    strSQL = session("search_sql")
end if

session("search_sql") = strSQL
session("search_position") = 0

<%
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Server.MapPath("test.xls") & ";" & _
            "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Skaber et recordset udfra SQL strengen
Set rs = Conn.Execute(strSQL)

' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

Do While Not rs.EOF

' Variabler deklæres
id                    = rs("id")
Navn                = rs("Fornavn")
Efternavn    = rs("Efternavn")
Adresse        = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

'Skriv til excel arket:
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

rs.MoveNext
Loop

Else

' Hvis der ikke er fundet poster på søgningen
Response.Write "<li>Sådan en har vi ikke  ?"

End If

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
exConn.Close
Set exConn = Nothing
</TD>
</TR>
</TABLE></td>
 
  </tr>
</table>
   
    </TD>
</TR>
</TABLE>

<center>

</BODY>
</HTML>
Avatar billede l_otto Nybegynder
24. juli 2003 - 11:53 #6
her er koden fra den side hvor jeg laver søgningen...
<%
' ADODB connection objektet
Set Conn = Server.CreateObject("ADODB.Connection")
' Husk at angive den rigtige sti til din database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
' Åben databaseforbindelsen
Conn.Open DSN
%>

<table  cellSpacing="1" cellPadding="0" width="900" align="center"  bgcolor="#FFF5D7" border="0" >
<TR>
    <TD><table cellSpacing="1" cellPadding="0" width="900" align="center" bgcolor="#FFFAEB" border="0" >
  <tr>
    <td colspan="3" bgcolor="#FFCD32" height="60" ><a href="default.asp"><FONT SIZE="6" COLOR="#ffffff">Medarbejdere</FONT></td>
  </tr>
  <tr>
    <td width="150" height="550" bgcolor="#FFF5D7" valign="bottom"><IMG SRC=".jpg"  BORDER="0" ALT=""></td>
    <td valign="top" > <TABLE>
<TR>
    <TD>

<center><FONT SIZE="5" COLOR="#FF0000"><b>Find en Medarbejdere 2003.</center></FONT></B><BR>
<center>
<TABLE>
    <form action="search.asp" method="post">
<TR>
    <TD><input type="text" name="search_keyword" class="Formindhold" size="20" value="<% response.write session("search_keyword")%>">
</TD>
</TR>

<%

strSQL = "SELECT DISTINCT(Stilling) AS MedArbStilling FROM Kontaktpersoner"

' Databaseforbindelse [DNSless] - Stien til databasen lokaliseres
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Skaber et recordset udfra SQL strengen
Set rs = Conn.Execute(strSQL)


%>
<TR>
    <TD>
        <select name="search_stilling">
            <option value=""></option>
            <%
                do while not rs.EOF
               
            %>
          <option <% if rs("MedArbStilling") = session("search_stilling") then response.write "selected" end if %> value="<% Response.write rs("MedArbStilling") %>"><% Response.write rs("MedArbStilling") %></option>
      <%
              rs.MoveNext
     
          loop
           
            %>
    </select>
  </TD>
</TR>
<TR>
    <TD>
        <select name="search_postnr">
            <option value=""></option>
      <option value="4000">4000</option>
      <option value="5000">5000</option>
    </select>
    </TD>             
</TR>
<TR>
    <TD><input type="submit" value="[Søg]" class="knap"></TD>
</TR>
</form>
</TABLE>
Avatar billede l_otto Nybegynder
24. juli 2003 - 11:55 #7
så det jeg vil det er at jeg vil finde alle dem der feks hedder "bossen" alle deres fornavn og efternavne skal så ned i excel arket så jeg kan downloade det og bruge det som brevflet...

håber du fårstår...
Avatar billede eagleeye Praktikant
24. juli 2003 - 11:58 #8
Hvilken fejl får du?
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:00 #9
her kan du se siden

http://www.kriegbaum.dk/medarb/search_start.asp

jeg har ikke sat din kode ind nu så det virker med søgningen...
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:04 #10
nu har jeg sat din kode ind og får denne fejl..

Active Server Pages error 'ASP 0116'

Missing close of script delimiter

/medarb/search.asp, line 139

The Script block lacks the close of script tag (%>).


du kan selv prøve
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:06 #11
Det mangler en %> et sted i koden og det må være her i disse linjer det skal ind:

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
exConn.Close
Set exConn = Nothing
</TD>
</TR>
</TABLE></td>


sådan her:

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
exConn.Close
Set exConn = Nothing
%>
</TD>
</TR>
</TABLE></td>
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:10 #12
rettet.. prøv denne fejl kommer.. som den ikke kan åbne xls.

Microsoft VBScript compilation error '800a0400'

Expected statement

/medarb/search.asp, line 216

<%
^
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:13 #13
linie 216 starter her:

<%
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Server.MapPath("test.xls") & ";" & _
            "Extended Properties=""Excel 8.0;HDR=Yes;"";"
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:14 #14
nej det er ikke endnu. Det er stadig problemer med <% og %>

Der er en <% for meget i disse linjer:


session("search_position") = 0

<%
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")


Det skal være sådan her:


session("search_position") = 0

' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")



Prøv at tjekke  koden igennem for at <% og %> er sat rigtigt ind
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:17 #15
du er god nu kom vi lidt længere... nu er det denne fejl.:

Microsoft JET Database Engine error '80040e37'

The Microsoft Jet database engine could not find the object 'brevFletkols'. Make sure the object exists and that you spell its name and the path name correctly.

/medarb/search.asp, line 256

linie 256 = exConn.Execute(SQL)
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:20 #16
har ændret brevFletkols' til 'test.xls'

men får nu denne fejl:
Microsoft JET Database Engine error '80040e14'

Syntax error in query. Incomplete query clause.

/medarb/search.asp, line 256
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:20 #17
Man skal definere et område den skal sætte ind i:

Man markere A1->B1 og vælg "Indsæt->Navn->Definer" og skrive eksvis  brevFletkols  Så kan du bruge excel som en anden DB.:
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:23 #18
ok den skal jeg lige have igen.... kan den ikke sætte det ind i det search funk bliver eksekveret ?

Hvad skriver jeg hvor.. jeg er ikke helt med nu :-)

Sorry...
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:27 #19
I din excel fil skal du ind og definere et område (range).

Det gøres ved at markere området A1->B1
I menuen vælg "Indsæt->Navn->Definer"
Skriv  brevFletkols 

Det svare til et tabel navn i Access, og kan så bruges i SQL sætninger.
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:27 #20
kan man få den til at overskrive næste gang man laver en søgning/insert til regnearket ?
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:29 #21
Det skulle være mulidt at lave en DELETE SQL som det første så den sletter dem alle.

SQL = "DELETE FROM brevFletkols"
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:31 #22
ok, skal der så ikke stå fornavn og efternavn i A1 og B1 ?
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:33 #23
Jo det er netop de to celler du skal markere.
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:33 #24
skal jeg sætte slette ind her ?

QL = "DELETE FROM brevFletkols"

'Skriv til excel arket:
SQL = "INSERT INTO 'brevFletkols ' (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:35 #25
ok, har jeg gjort... men får samme fejl...Microsoft JET Database Engine error '80040e14'

Syntax error in query. Incomplete query clause.

/medarb/search.asp, line 256

linie 256 = exConn.Execute(SQL)
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:36 #26
Nej det skal være noget af de føste du gør før loopet som skriver til execl arket da den jo kun skal slette det en gang og så fylde i.

Så du skal tilføje to linjer:

SQL = "DELETE FROM brevFletkols"
exConn.Execute(SQL)
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:36 #27
hvodan ser 256 ud?
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:37 #28
linie 256 = exConn.Execute(SQL)
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:38 #29
sådan:

SQL = "DELETE FROM brevFletkols"
exConn.Execute(SQL)

'Skriv til excel arket:
SQL = "INSERT INTO 'brevFletkols' (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:38 #30
ok så de linjer lige inden med SQL = "xxx
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:41 #31
det ser mærkeligt ud..:
SQL = "INSERT INTO 'brevFletkols' (fornavn, efternavn) VALUES ("
SQL = "DELETE FROM brevFletkols"
exConn.Execute(SQL)
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

kan du ikke lige sætte det rigtigt.. nu er jeg helt ude af den ..:-)
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:45 #32
Læser du ikke hvad jeg skriver ? :)
De to linjer skal ind inden loopet så den kun sletter en gang og ikke sletter den man lige har sat ind lige efter..

Dit Loop:


' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

Do While Not rs.EOF

' Variabler deklæres
id                    = rs("id")
Navn                = rs("Fornavn")
Efternavn    = rs("Efternavn")
Adresse        = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

'Skriv til excel arket:
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

rs.MoveNext
Loop



Skal rettes dette:


' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

' Her skal man slette så man ikke sletter dem man lige har sat ind
SQL = "DELETE FROM brevFletkols"
exConn.Execute(SQL)

Do While Not rs.EOF

' Variabler deklæres
id                    = rs("id")
Navn                = rs("Fornavn")
Efternavn    = rs("Efternavn")
Adresse        = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

'Skriv til excel arket:
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

rs.MoveNext
Loop
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:49 #33
jo jeg læser og læser...:-)

så er det rettet til ...thanks.. men samme fejl:

linie 256 = exConn.Execute(SQL)
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:50 #34
Prøv at vis de linjer som er lige før med SQL = "...
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:52 #35
' Open a connection to the Excel spreadsheet
Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & Server.MapPath("test.xls") & ";" & _
            "Extended Properties=""Excel 8.0;HDR=Yes;"";"

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Skaber et recordset udfra SQL strengen
Set rs = Conn.Execute(strSQL)

'Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then

MedarbejderPosition = 0

' Her skal man slette så man ikke sletter dem man lige har sat ind
SQL = "DELETE FROM brevFletkols"
exConn.Execute(SQL)

Do While Not rs.EOF

' Variabler deklæres
id                    = rs("id")
Navn                = rs("Fornavn")
Efternavn    = rs("Efternavn")
Adresse        = rs("Adresse")

' Generere et link, som er defineret i databasen
Link = "<a href='semedarb.asp?position="&MedarbejderPosition&"'>"  & Navn & "&nbsp;" & Efternavn &"</a></b>"


' Udskriver linket som det blev genereret ovenfor + tilhørende kommentar
Response.Write "<li>" & Link & "</li>" & "  "
MedarbejderPosition = MedarbejderPosition + 1

'Skriv til excel arket:
SQL = "INSERT INTO brevFletkols (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

exConn.Execute(SQL)

rs.MoveNext
Loop

Else

' Hvis der ikke er fundet poster på søgningen
Response.Write "<li>Sådan en har vi ikke  ?"

End If

' Databaseforbindelsen lukkes
Conn.Close
Set Conn = Nothing
exConn.Close
Set exConn = Nothing %>
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:53 #36
men nu kommer den med:

Microsoft JET Database Engine error '80040e37'

The Microsoft Jet database engine could not find the object 'brevFletkols'. Make sure the object exists and that you spell its name and the path name correctly.

/medarb/search.asp, line 237
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:53 #37
' Her skal man slette så man ikke sletter dem man lige har sat ind
236 SQL = "DELETE FROM brevFletkols"
237 exConn.Execute(SQL)
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:55 #38
Du kæmper godt... :-) og tak for det...
Avatar billede l_otto Nybegynder
24. juli 2003 - 12:56 #39
måske skal jeg maile dig excel arket så du kan se om det er rigtig lavet.. ?
Avatar billede eagleeye Praktikant
24. juli 2003 - 12:56 #40
Har du uploaded filen?
Avatar billede l_otto Nybegynder
24. juli 2003 - 13:00 #41
ja excel filen ligger i samme mappe :-)

ja det er også rigtigt :

http://www.kriegbaum.dk/medarb/test.xls
Avatar billede l_otto Nybegynder
24. juli 2003 - 13:07 #42
du er en guttermand.. og jeg håber det er ok jeg tager lidt frokost.. ville gerne faxe noget mad over til dig er tilbage om 20min...

thanks
Avatar billede eagleeye Praktikant
24. juli 2003 - 13:09 #43
I den fil er der ikke defineret noget navn.

Prøv på den fil du har på din PC at gøre her:
Åben filen
Markere området A1->B1
I menuen vælg "Indsæt->Navn->Definer"
Skriv  brevFletkols  , luk den dialogbox
Skriv noget teskt i en tilfældig celle C3.
Gem filen,
luk filen,
åben filen,
tjek at navet brevFletkols er i filen ved at gp ind i menuen vælg "Indsæt->Navn->Definer"
Slet det som er skrevet i C3.
Gem filen igen og upload den.
Avatar billede eagleeye Praktikant
24. juli 2003 - 13:34 #44
Der er lige en anden ting, man kan ikke lave en DELETE på den måde i Execl se evt linket her, den vil komme med denne fejl:
Deleting data in a linked table is not supported by this ISAM

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257819

Så man må lave noget som kan slette cellerne og så indsætte..
Avatar billede l_otto Nybegynder
24. juli 2003 - 13:40 #45
nu skulle execel være fjong ?

hvis jeg markere a1 og b1 viser den brevFletkols

http://www.kriegbaum.dk/medarb/test.xls
Avatar billede l_otto Nybegynder
24. juli 2003 - 13:41 #46
nu er der denne fejl...
Microsoft JET Database Engine error '80040e14'

Syntax error in query. Incomplete query clause.

/medarb/search.asp, line 260
Avatar billede l_otto Nybegynder
24. juli 2003 - 13:42 #47
SQL = "INSERT INTO 'brevFletkols' (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "') "

linie 260 = exConn.Execute(SQL)
Avatar billede l_otto Nybegynder
24. juli 2003 - 14:13 #48
er du gået ud i solen ?
Avatar billede eagleeye Praktikant
24. juli 2003 - 15:33 #49
Hvis du bruger ' omkring skal det være dem som baglæns skrå `

SQL = "INSERT INTO `brevFletkols` (fornavn, efternavn) VALUES ("
SQL = SQL & "'" & navn & "', "
SQL = SQL & "'" & efternavn & "')"
Avatar billede l_otto Nybegynder
24. juli 2003 - 15:37 #50
sådan MESter.. nu virker det ski.....

http://www.kriegbaum.dk/medarb/test.xls

men hvad gør jeg med at slette næste gang det skal bruges... ?
Avatar billede l_otto Nybegynder
24. juli 2003 - 15:41 #51
kan vi gå videre imorgen....? nu kan du få fri..:-)
Avatar billede l_otto Nybegynder
25. juli 2003 - 09:00 #52
Hej ....

Jeg kan godt ligge flere point på..!

men hvordan går jeg hvis den skal slette alle tidlere insatte data i excel arket... ?
Avatar billede l_otto Nybegynder
28. juli 2003 - 10:27 #53
har du tid til at hjælpe mig med at slette i excel inden man skriver i den...?
Avatar billede l_otto Nybegynder
28. juli 2003 - 14:53 #54
har du tid til at hjælpe mig med at slette i excel inden man skriver i den...?
Avatar billede eagleeye Praktikant
28. juli 2003 - 15:26 #55
Ja men jeg ved ikke helt hvordan det skal gøre. Fra MS hjemme side:

Although the Jet OLE DB Provider allows you to insert and update records in an Excel workbook, it does not allow DELETE operations. If you try to perform a DELETE operation on one or more records, you receive the following error message:

Deleting data in a linked table is not supported by this ISAM.
This limitation is inherent in the treatment of Excel workbooks as databases.



Så det kan ikke lade sig gøre at slette dem med DELETE.

Alternativt kan man måske havde to filer en "master" som indeholder kolonnerne også kopier man den fil til en ny som er den du bruger til brevflet hvor man ligger data i. Dermed overskrives filen hver gang man kopier "masteren".
Avatar billede l_otto Nybegynder
28. juli 2003 - 15:30 #56
kan man lave det med en knap.. man trykker på før man laver "søgningen" så den lige sletter eller ligge det ind i den side der hedder..search_start.asp ?


eller overwrite ?
Avatar billede l_otto Nybegynder
28. juli 2003 - 15:42 #57
det er skide ærgeligt.. men jeg skal afsted nu.. håber måske vi kan arbejde i morgen.. skal jeg ikke smide flere point på jeg har lige 50 ..?
Avatar billede eagleeye Praktikant
28. juli 2003 - 16:07 #58
Du kan ligge resultet ind i en ASP side og udskirve det som en tabel og sætte:

Response.ContentType

Til excel så kan man måseke gennem det som excel ark:

<% Response.ContentType = "application/vnd.ms-excel" %>


Se evt dette eks:
http://www.devguru.com/Technologies/asp/quickref/response_contenttype.html
Avatar billede l_otto Nybegynder
29. juli 2003 - 10:17 #59
jamen hvordan gør jeg så det ??
Avatar billede l_otto Nybegynder
29. juli 2003 - 10:24 #60
men det er jo fordi der er forskellige der skal lave flette doc.... at den skal være slette for data hver gang der er en der laver en søgning....
Avatar billede l_otto Nybegynder
04. august 2003 - 14:00 #61
Hej e..

er vi færdige skal jeg give ponit ? eller kan du komme på en smart måde at slette alle data på det excel ark ?

Peter
Avatar billede l_otto Nybegynder
06. august 2003 - 08:24 #62
Hej e..

er vi færdige skal jeg give ponit ? eller kan du komme på en smart måde at slette alle data på det excel ark ?

Peter
Avatar billede eagleeye Praktikant
06. august 2003 - 18:16 #63
Da man ikke kan slette i Excel arket med DELETE, så må du havde som før skrevet en orginal som du tager en kopi af hver gang man søger og overskriver den gamle fil i stedet for at slette i filen.

Der står man kan slette enkelte celler i excel arket, men det er ikke lykkes mig at gøre det via SQL.

Jeg kan ikke komme på mere.
Avatar billede l_otto Nybegynder
07. august 2003 - 07:57 #64
jamen du har også været en "ørn" he ...

Mange tak for hjælpen....
Avatar billede l_otto Nybegynder
11. august 2003 - 14:33 #65
Hej E...

Jeg tror jeg har fundet en måde...

vi skal bare have den til at indsætte værdi="" altså ingenting i de samme felter .. det kan man vel bare gøre ved siden af, alstå lave en slet.asp side man lige skal køre inden man laver den rigtige søgnig ik..

se her:

<rip>
You are more restricted in deleting Excel data than data from a relational data source. In a relational database, "row" has no meaning or existence apart from "record"; in an Excel worksheet, this is not true. You can delete values in fields (cells). However, you cannot: Delete an entire record at once or you receive the following error message:

"Deleting data in a linked table is not supported by this ISAM."

You can only delete a record by blanking out the contents of each individual field.
</rip>


hvordan laver jeg lige den ?

bare en slet.asp side der lige skal køres..

hjælp så er vi der...

Peter
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