Avatar billede aspnooben Nybegynder
29. august 2006 - 18:17

Søgefunktion onchange, der henter data fra Excel-fil

Nedenstående kode repræsenterer en hel asp-fil med søgning. Søgefunktionen består af en dropdown-menu med valgmulighederne "fornavn" og "efternavn", samt et søgefelt, hvor selve navnet kan indtastes. Desuden er der en knap til at udføre søgningen. Dataene hentes fra et Excel-ark i kolonnerne "fornavn" og "efternavn". Hvis der er flere med samme fornavn eller efternavn, vil alle personerne blive listet. Der er ingen fejl i asp-filen.

Det jeg nu har brug for er, at der skal laves endnu en dropdown-menu i samme søgebillede. Her skal den hente data fra Excel-arket i kolonnen "afdeling". Valgmulighederne i dropdown-menuen skal være f.eks. "salg", "lager", "indkøb" osv. Denne menu skal automatisk aktivere søgning, når en af ovenstående valgmuligheder er valgt, dvs. at der ikke skal være en søgeknap. Jeg har selv tænkt på onchange-funktionen, men kan ikke lige få løst problemet.

Resultatet af søgningen skal listes op på samme måde, som den visning, der kommer af den nuværende søgefunktion, dvs. hvis der er flere fra samme afdeling, vises alle personerne fra pågældende afdeling.

Jeg er naturligvis åben for andre løsningsmodeller end onchange-modellen, men der skal ikke være nogen søgeknapper til funktionen.

Asp-filen ser ud som følgende:


<%@ Language=VBScript %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Personalefortegnelse</title>
<script language="JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body background="../../Images/Baggrund.jpg" link=#105594 alink=#105594 vlink=#105594>
<p>

<table border="0" width="550">
    <tr>
      <td width="26">&nbsp;</td>
      <form action="search.asp" id=FORM1 method=post name=FORM1>
      <td width="117" valign="top"><font face="Arial, Helvetica, sans-serif" size="3" color="#00659C">Search
        by</font><font face="Arial, Helvetica, sans-serif" size="3">:</font><br>
        <select size="1" name="srchsel">
          <option value="lname" selected>Efternavn</option>
          <option value="fname">Fornavn</option>
        </select>
      </td>
      <td width="30">
      &nbsp;&nbsp;
      </td>
      <td width="250" valign="top">
        <p><font size="3" face="Arial, Helvetica, sans-serif" color="#00659C">Enter
          search text:</font><br>
      <input id=srch name=srch value="<%=request("srch")%>"><br>
      <input type=submit value="Search"></p>
      </form></td>
      <td width="30">
      &nbsp;&nbsp;
      </td>
    </tr>
</table>
<br><br>
<table border="0" width="382">
<%
srch=request("srch")
srchsel=request("srchsel")
if srch <> "" then
Select Case srchsel
  Case "lname"
    fndtext= "[Efternavn] LIKE '"
  Case "fname"
    fndtext= "[Fornavn] LIKE '"
End Select
adOpenStatic=3
adLockReadOnly=1
adCmdText=1
adSearchForward = 1
count = 0
Set rs= server.CreateObject("Adodb.Recordset")
Set conn = server.CreateObject("ADODB.Connection")
connstr= "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DBQ=" & server.MapPath("Personalefortegnelse.xls") & ";Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"";User Id=admin;"
conn.Open connstr
rs.Open "SELECT * FROM  Excelfortegnelse", conn, _
        adOpenStatic, adLockReadOnly, adCmdText
rs.Find fndtext & srch & "%'"

Do While rs.EOF <> True    'Continue if last find succeeded.
  Response.Write "<TR><TD width='26'> </TD><TD valign='top'>"
  Response.Write "<font face='Arial, Helvetica, sans-serif'>"
  Response.Write "<a href=" & chr(34) & "centre.asp?id=" &  rs("Nummer") & chr(34) & ">" &  rs("Fornavn") & " " &  rs("Efternavn") & "</a><br>"
  Response.Write "</font></TD></TR>"
  count = count + 1     
  mark = rs.Bookmark
  rs.Find fndtext & srch & "%'", 1, adSearchForward, mark
Loop
rs.Close
conn.Close
if count = 0 then
  Response.Write "<TR><TD width='26'> </TD><TD  valign='top'>"
  Response.Write "<font face='Arial, Helvetica, sans-serif' color='#00659C'>Beklager, men din forespørgsel gav intet resultat.</font>"
  Response.Write "</TD></TR>"
end if
Response.Write "</TABLE>"
Set rs = Nothing
Set conn = Nothing
end if
%>
</table>
</body>
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