Avatar billede hede98 Nybegynder
12. maj 2003 - 16:25 Der er 11 kommentarer og
1 løsning

SQL sætning med indholde fra "rulleliste"

Hej

Jeg har en "rulleliste" med navne, som bliver hentet fra en tabel.
F.eks.:
HH
KH
BN
Når jeg så vælger en af dem og trykke SØG så skal jeg gerne kunne få en liste over de kunder hvor de er kontakt person... Hvordan skal min SQL sætning se ud. Jeg har aldrig prøvet at skulle bruge noget fra et formfelt i en SQL sætning...
Avatar billede eagleeye Praktikant
12. maj 2003 - 16:27 #1
Hvis du bruger method="post" i din <form> tag skriver du Request.Form("xxx") hvor xxx er nanvet på det inputfelt du vil hendte fra.

SQL = "SELECT * FROM tabel WHERE kolonne = '" & Request.Form("rullemenu") & "'"
Avatar billede christian Nybegynder
12. maj 2003 - 16:29 #2
Er dette nok:
<%
sql: SELECT * FROM [navne] WHERE navn = '" & request.form("navn") & "'
%>
sql: <%= sql %><br>
Du har valgt: <%= request.form("navn") %><br>
<form>
<select name="navn">
    <option>Chris</option>
    <option>Bo</option>
</select>
</form>
Avatar billede hede98 Nybegynder
13. maj 2003 - 21:12 #3
Jeg har lidt problemer..
Jeg har lavet en "Rulleliste" i toppen, som henter nogle navne... når jeg vælger et navne, skal den kun hente de aktiviteter som navnet er ansvarlige for!!! Håber i fatter det,, ellers må i lige sige til :-)

<%' 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
%>
  <% set rskunder1 = Conn.execute("SELECT * FROM ansvar ")
%>                   
             
                 
                  <select size="1" name="ansvarlige">
                  <%do while not rskunder1.EOF%>
                  <option><%Response.Write rskunder1("int")%></option>
                  <%rskunder1.MoveNext
                  loop%>
                  </select></font></td>
<%
rskunder1.Close
set rskunder1 = Nothing
%>                   

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="985" id="AutoNumber1" height="37">
  <tr>
    <td width="32" height="19"><font face="Verdana" size="2">ID</font></td>
    <td width="291" height="19"><font face="Verdana" size="2"><a href="ss">Kunde</a></font></td>
    <td width="128" height="19"><font face="Verdana" size="2">Kontaktperson</font></td>
    <td width="92" height="19"><font face="Verdana" size="2">Type</font></td>
    <td width="87" height="19"><font face="Verdana" size="2">Dato</font></td>
    <td width="309" height="19"><font face="Verdana" size="2">Overskrift</font></td>
    <td width="38" height="19"><font face="Verdana" size="2">Ans.</font></td>
  </tr>
</table><%
' 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
%>
  <% set rskunder = Conn.execute("SELECT aktiviteter.*, kunder.firmanavn FROM Aktiviteter,kunder where aktiviteter.udført='nej' and aktiviteter.kundeid=kunder.kundeid order by aktiviteter.start")
do until rskunder.eof %>


<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="985" id="AutoNumber2" height="37">
  <tr>
    <td width="32" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("opgaveid")%></font></td>
    <td width="291" height="17"><font face="Verdana" size="2"><a href="aktiviteter.asp?kundeid=<%=rskunder("kundeid")%>"><%Response.Write rskunder("firmanavn")%></font></td>
    <td width="128" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("kontaktpersonid")%></font></td>
    <td width="92" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("type")%></font></td>
    <td width="87" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("start")%></font></td>
    <td width="309" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("Titel")%></font></td>
    <td width="38" height="17"><font face="Verdana" size="2"><%Response.Write rskunder("ansvarlige")%></font></td>
  </tr>
</table>
<%
rskunder.movenext
loop
rskunder.Close
set rskunder = Nothing
%>
Avatar billede eagleeye Praktikant
13. maj 2003 - 21:19 #4
Ja ok, så skal du havde rulle menuen ind i en form som bare reloader siden når man vælger en person.

Den første del af koden med rullemenuen bliver som vist her:


<%' 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
%>
  <% set rskunder1 = Conn.execute("SELECT * FROM ansvar ")
%>                   
             
                  <form action="" method="POST" name="ansvar">
                  <select size="1" name="ansvarlige" onchange="document.ansvar.submit();">
                  <%do while not rskunder1.EOF%>
                  <option><%Response.Write rskunder1("int")%></option>
                  <%rskunder1.MoveNext
                  loop%>
                  </select>
                  </form>
                  </font></td>
<%
rskunder1.Close
set rskunder1 = Nothing
%>
Avatar billede eagleeye Praktikant
13. maj 2003 - 21:19 #5
Hvis der ikke er valgt en kontakt person skal den så vise alle poster eller ingen?
Avatar billede eagleeye Praktikant
13. maj 2003 - 21:28 #6
Som minimum skal dette laves om.

<% set rskunder = Conn.execute("SELECT aktiviteter.*, kunder.firmanavn FROM Aktiviteter,kunder where aktiviteter.udført='nej' and aktiviteter.kundeid=kunder.kundeid order by aktiviteter.start")
do until rskunder.eof %>



Til dette så den tjekker på den ansvarlig, jeg ved ikke hvad kolonnen hedder som indeholder den ansvarlige. Men her gætter jeg på det er i kolonnen:
aktiviteter.int


<%
ansvarlig = Request.Form("ansvarlige")
set rskunder = Conn.execute("SELECT aktiviteter.*, kunder.firmanavn FROM Aktiviteter,kunder where aktiviteter.int = " & ansvarlig & " and aktiviteter.udført='nej' and aktiviteter.kundeid=kunder.kundeid order by aktiviteter.start")
do until rskunder.eof %>
Avatar billede hede98 Nybegynder
14. maj 2003 - 07:25 #7
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "aktiviteter.ansvarlige = and aktiviteter.udført='nej' and aktiviteter.kundeid=kunder.kundeid".

/ikkeudført.asp, linje 45
Avatar billede hede98 Nybegynder
14. maj 2003 - 18:51 #8
nogen der kan hjælpe med den fejl....
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:13 #9
Det betyder som regl en kolonne er stavet forkert.
Har du brugt den SQL sætning som jeg har vist for så skal kolonnenanvet int nok rettes til det navn som indeholder den ansvarlige i aktiviter tabellen.
Avatar billede hede98 Nybegynder
14. maj 2003 - 19:28 #10
Hej..
Nej det er ikke det.
Nu har jeg prøvet at rette det til følgende: Aktiviteter.ansvarlige='kh'
også kommer alle dem ud med ansvarlige=kh så det må være noget med den ansvarlig = Request.Form("ansvarlige") som bliver indsat i koden....
Avatar billede eagleeye Praktikant
14. maj 2003 - 19:31 #11
Så der er et tekst felt så skal der ' omkring :

ansvarlig = Request.Form("ansvarlige")
set rskunder = Conn.execute("SELECT aktiviteter.*, kunder.firmanavn FROM Aktiviteter,kunder where Aktiviteter.ansvarlige = '" & ansvarlig & "' and aktiviteter.udført='nej' and aktiviteter.kundeid=kunder.kundeid order by aktiviteter.start")
Avatar billede hede98 Nybegynder
31. maj 2003 - 22:48 #12
Fandet selv en brugbar løsningen, et andet sted på www.eksperten.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