Avatar billede hede98 Nybegynder
04. maj 2003 - 21:08 Der er 13 kommentarer og
1 løsning

Søgning i asp dokument

Hej

Jeg har et dokument der lister alle mine kunder, nu vil jeg gerne have et søgfelt i toppen af dokumentet, hvor jeg kan skrive noget af navnet, telefon, addresse o.s.v og så skal de vise de kunder der passer... kan man lave det...

Jeg sender gerne asp filen til jer!!
Avatar billede -master-d- Nybegynder
04. maj 2003 - 22:38 #1
Ja det kan du godt du laver bare noget lignende dette her.

SQL = "Select * From tabel WHERE navn = '" & Request("søgefelt") & "' OR telefon = '" & Request("søgefelt") & "' OR adresse = '" & Request("søgefelt") & "' ORDER BY navn, telefon, adresse"
Set rs = Connection.Execute(SQL)

If Not (rs.BOF OR rs.EOF) Then
Do While NOT rs.EOF
Response.Write rs("navn") &"-"& rs("telefon") &"-"& rs("adresse")
rs.MoveNext
Loop
Else
Response.Write "Der blev ikke fundet nogen poster som matchede søgeordet."
End If


Det er mit bud på det du søger.
Avatar billede soloman Nybegynder
05. maj 2003 - 13:09 #2
-> -master-d- > Problemet er at hvis man bare skriver inn en del av navnet/telefon etc. vil den ikke finne noe. SQL-sætningen du bruker krever en eksakt match av *hele* navnet/tlf.nr. Jeg tror hede98 spør om å finne deler av navn.

prøv
SQL = "....... WHERE navn Like """ & Request("søgefelt") & """*"""

Jeg har ikke testet det ut, men har laget en query i Access og copy/pastet sql-en ++.
Avatar billede midas_dk Nybegynder
05. maj 2003 - 13:16 #3
soloman >> Burde der så ikke være * i begge "ender" af søgekriteriet?
Avatar billede hede98 Nybegynder
05. maj 2003 - 14:02 #4
hvad med form felt o.s.v
Avatar billede soloman Nybegynder
05. maj 2003 - 14:38 #5
midas_dk >> jo, det burde det.

hede98 >> hvad mener du?
Avatar billede hede98 Nybegynder
05. maj 2003 - 14:46 #6
jeg skal nok have lidt hjælp til at lave selvdokumentet... indsætning af formfelt, søg knap o.s.v
Avatar billede soloman Nybegynder
05. maj 2003 - 14:58 #7
Sjekk lige http://www.w3.org/TR/REC-html40/interact/forms.html for detaljer på HTML-formtags.

Føgende skjema viser tre tekstfelt og en knapp.
Den sender innholdet i formen videre til en asp-side hvor du kan hente innholde tilbake ved å bruke <% Request("navn-på-tekstboks") %>


<FORM ACTION="din-ASP-side.asp" METHOD=POST>
<BR>from_address <INPUT TYPE="text" NAME="navn">
<BR>to_address <INPUT TYPE="text" NAME="telefon">
<BR>to_name <INPUT TYPE="text" NAME="adresse">
<BR><INPUT TYPE="Submit" VALUE="Søg">
</FORM>
Avatar billede -master-d- Nybegynder
05. maj 2003 - 19:35 #8
Det var egentlig også en gang slamkode jeg har fået lavet der. Slevfølgelig er det like istedet for lig med.

SQL = "Select * From tabel WHERE navn Like '" & Request("søgefelt") & "' OR telefon Like '" & Request("søgefelt") & "' OR adresse Like '" & Request("søgefelt") & "' ORDER BY navn, telefon, adresse"
Set rs = Connection.Execute(SQL)

If Not (rs.BOF OR rs.EOF) Then
Do While NOT rs.EOF
Response.Write rs("navn") &"-"& rs("telefon") &"-"& rs("adresse")
rs.MoveNext
Loop
Else
Response.Write "Der blev ikke fundet nogen poster som matchede søgeordet."
End If


Virker det nu så ?
Avatar billede hede98 Nybegynder
05. maj 2003 - 19:56 #9
må jeg ikke sende asp filen til dig... :-)
Avatar billede hede98 Nybegynder
05. maj 2003 - 20:22 #10
Her er min fil:
<%
' 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("/crm.mdb")
' Åben databaseforbindelsen
Conn.Open DSN
%>


<%SQL = "Select * From kunder WHERE navn Like '" &amp; Request("søgefelt") &amp; "'
OR telefon Like '" &amp; Request("søgefelt") &amp; "' OR adresse Like '" &amp;
Request("søgefelt") &amp; "' ORDER BY navn, telefon, adresse"%>

<%Set rs =Connection.Execute(SQL)%>

<%If Not (rs.BOF OR rs.EOF) Then<BR>Do While NOT
rs.EOF<BR>Response.Write rs("navn") &amp;"-"&amp; rs("telefon") &amp;"-"&amp;
rs("adresse")<BR>rs.MoveNext<BR>Loop<BR>Else<BR>Response.Write "Der blev ikke
fundet nogen poster som matchede søgeordet."<BR>End If<BR>%>


  <% set rskunder = Conn.execute("SELECT * FROM kunder")
do until rskunder.eof %>
<table width="871" border="0" cellspacing="1">
  <tr>
    <td width="29"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <a href="kundekort.asp?kundeid=<%=rskunder("kundeid")%>"><%Response.Write rskunder("kundeid")%></a>
      </font></td>
    <td width="228"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("Firmanavn")%>
      </font></td>
    <td width="202"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("adresse")%>
      </font></td>
    <td width="103"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("postnr")%>
      </font></td>
    <td width="125"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("by")%>
      </font></td>
    <td width="83"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("telefon")%>
      </font></td>
    <td width="71"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
      <%Response.Write rskunder("telefax")%>
      </font></td>
  </tr>
</table>
<%
rskunder.movenext
loop
rskunder.Close
set rskunder = Nothing
%>
Avatar billede soloman Nybegynder
06. maj 2003 - 10:37 #11
Jeg har skrevet et forslag, men ikke kjørt koden. Du finner det på
http://www34.brinkster.com/hcp1/eksperten/dinside.pas

Gem koden som dinside.asp så skal det virke.
Avatar billede hede98 Nybegynder
06. maj 2003 - 11:30 #12
Det virker ikke.. vil du ikke lige se på det... :-)


<%


' 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("/crm.mdb")
' Åben databaseforbindelsen
Conn.Open DSN

'Nå skal vi lage SQL-setningen.
'Hvis det er søke-skjemaet er fylt ut skal det søkes etter det. Hvis ikke
'skal den hente alle poster.
'Vi må også finne ut hvilke søkefelt som er fylt inn.


if request("ok")<>"" then
    SQL = "SELECT * FROM kunder WHERE "
    and_flag = false
   
    if request("kundeid")<>"" then
        SQL=SQL & "kundeid =" & request("kundeid")
        and_flag=true
    end if
   
    if request("firmanavn")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "firmanavn LIKE '" & request("firmanavn") & "' "
    end if

    if request("adresse")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "adresse LIKE '" & request("adresse") & "' "
    end if
   
   
    if request("postnummer")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "postnummer LIKE '" & request("postnummer") & "' "
    end if
   
   
   
    if request("by")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "by LIKE '" & request("by") & "' "
    end if
   
    if request("telefon")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "telefon LIKE '" & request("telefon") & "' "
    end if   
   
   
   
    if request("telefax")<>"" then
        if and_flag=true then
            SQL = SQL & "AND "
        else
            and_flag=true
        end if
       
        SQL=SQL & "telefax LIKE '" & request("telefax") & "' "
    end if
   

   
else
    SQL = "SELECT * FROM kunder"
end if

SQL = SQL & " ORDER BY navn, telefon, adresse"
%>



<html>

<head>
<meta http-equiv="Content-Language" content="no-bok">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>

<form method="POST" action="dinside.asp">
  <table border="0" width="50%" cellspacing="0" bordercolor="#000000">
    <tr>
      <td width="21%">KundeID</td>
      <td width="79%"><input type="text" name="kundeid" size="20"></td>
    </tr>
    <tr>
      <td width="21%">Firmanavn</td>
      <td width="79%"><input type="text" name="firmanavn" size="20"></td>
    </tr>
    <tr>
      <td width="21%">adresse</td>
      <td width="79%"><input type="text" name="adresse" size="20"></td>
    </tr>
    <tr>
      <td width="21%">postnummer</td>
      <td width="79%"><input type="text" name="postnummer" size="20"></td>
    </tr>
    <tr>
      <td width="21%">by</td>
      <td width="79%"><input type="text" name="by" size="20"></td>
    </tr>
    <tr>
      <td width="21%">telefon</td>
      <td width="79%"><input type="text" name="telefon" size="20"></td>
    </tr>
    <tr>
      <td width="21%">telefax</td>
      <td width="79%"><input type="text" name="telefax" size="20"></td>
    </tr>
  </table>
  <p><input type="submit" value="Søg" name="ok"><input type="reset" value="Tilbakestill" name="B2"></p>
</form>




<%= "Dette er SQL-setningen:<br>" & SQL %>

<% set rskunder = Conn.execute("SELECT * FROM kunder")%>

<h1>Her kommer resultatet</h1>

<% do until rskunder.eof %>
<table width="871" border="0" cellspacing="1">
<tr>
<td width="29"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="kundekort.asp?kundeid=<%=rskunder("kundeid")%>"><%Response.Write rskunder("kundeid")%></a>
</font></td>
<td width="228"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("Firmanavn")%>
</font></td>
<td width="202"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("adresse")%>
</font></td>
<td width="103"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("postnr")%>
</font></td>
<td width="125"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("by")%>
</font></td>
<td width="83"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("telefon")%>
</font></td>
<td width="71"> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<%Response.Write rskunder("telefax")%>
</font></td>
</tr>
</table>
<%
rskunder.movenext
loop
rskunder.Close
set rskunder = Nothing
%>
Avatar billede soloman Nybegynder
06. maj 2003 - 12:17 #13
jeg har laget et eksempel på
http://www34.brinkster.com/hcp1/eksperten/dinside.asp

har bare byttet ut noen variabel-navn som ikke var riktige (ORDER BY firmanavn - ikke navn. Jeg hadde brukt postnummer - du har brukt postnr.)

Koden finner du fortsatt på
http://www34.brinkster.com/hcp1/eksperten/dinside.pas
Avatar billede hede98 Nybegynder
06. maj 2003 - 13:08 #14
nu kan jeg ikke hente koden. Vil du ikke sende den til mig: henrik@hedegaardata.dk
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