ik doorzoek een access database mbv een pulldown menu.
dus je maakt een keuze uit de selecties, klikt op de knop zoeken
en dan wil ik de resultaten tonen op het scherm.
in mijn geval heb ik een medewerker gekoppeld aan een kennisgebied
aan de hand van een koppeltabel. een medewerker kan meerdere
kennisgebieden hebben en andersom.
het werkt in principe goed, alleen toont hij maar 1 resultaat. volgens
mij dus ook de 1e hit die hij vindt, geeft hij die op scherm. ook al zijn
er meerdere medewerkers gekoppeld aan dat gebied, toont hij
toch 1 resultaat.
hieronder de relevante asp code + querie:
iemand idee?
dus je maakt een keuze uit de selecties, klikt op de knop zoeken
en dan wil ik de resultaten tonen op het scherm.
in mijn geval heb ik een medewerker gekoppeld aan een kennisgebied
aan de hand van een koppeltabel. een medewerker kan meerdere
kennisgebieden hebben en andersom.
het werkt in principe goed, alleen toont hij maar 1 resultaat. volgens
mij dus ook de 1e hit die hij vindt, geeft hij die op scherm. ook al zijn
er meerdere medewerkers gekoppeld aan dat gebied, toont hij
toch 1 resultaat.
hieronder de relevante asp code + querie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
| <%
Dim objDC, objRS
' Create and establish data connection
Set objDC = Server.CreateObject("ADODB.Connection")
objDC.ConnectionTimeout = 15
objDC.CommandTimeout = 30
'Use this line to use Access
objDC.Open "DBQ=" & Server.MapPath("db\kenniskaart.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;MaxBufferSize=8192;Threads=20;", "", ""
' Create recordset and retrieve values using the open connection
Set objRS = Server.CreateObject("ADODB.Recordset")
' Opening record set with a forward-only cursor (the 0) and in read-only mode (the 1)
' If a request for a specific id comes in, then do it o/w just show pulldown
If Len(Request.QueryString("dbo_kennisgebied.kennisgebiedId")) <> 0 Then
' request record for requested id
objRS.Open "SELECT * FROM ((((dbo_kennisgebied INNER JOIN dbo_kt_mk ON dbo_kennisgebied.kennisgebiedId = dbo_kt_mk.kennisgebiedId) INNER JOIN dbo_medewerker ON dbo_kt_mk.medewerkerId = dbo_medewerker.medewerkerId) INNER JOIN dbo_afdeling ON dbo_medewerker.afdelingId = dbo_afdeling.afdelingId) INNER JOIN dbo_functie ON dbo_medewerker.functieId = dbo_functie.functieId) INNER JOIN dbo_sector ON dbo_medewerker.sectorId = dbo_sector.sectorId WHERE dbo_kennisgebied.kennisgebiedId = " & Replace(Request.QueryString("dbo_kennisgebied.kennisgebiedId"), "'", "''"), objDC, 0, 1
' Show selected record
If Not objRS.EOF Then
objRS.MoveFirst
%>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><b><font face="Verdana" size="2"><%= objRS.Fields("aanhef").Value %> <%= objRS.Fields("titel").Value %> <%= objRS.Fields("tussenvoegsel").Value %> <%= objRS.Fields("achternaam").Value %>, <%= objRS.Fields("voorletters").Value %></font></b><br>[img]"<%=[/img]" align="left" border="1" bordercolor="#000000"></td>
</tr>
<tr>
<td><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Roepnaam:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("roepnaam").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Functie:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("functienaam").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Sector/Onderdeel:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("sectornaam").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Afdeling:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("afdelingnaam").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Kamernummer:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("kamernummer").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Telefoon:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("telefoonnummer1").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>E-mail:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("emailadres1").Value %></font></td>
</tr>
<tr>
<td style="width: 50mm"><font face="Verdana" size="1"><b>Kennisgebied:</b></font></td>
<td style="width: 100mm"><font face="Verdana" size="1"><%= objRS.Fields("kennisgebied").Value %></font></td>
</tr>
</table>
<%
End If
objRS.Close
End If
objRS.Open "dbo_kennisgebied", objDC, 0, 1
' Loop through recordset and display results
If Not objRS.EOF Then
objRS.MoveFirst
' the form below calls this file only this time with an id in the QueryString
%>
<form action="zoekopkennisgebied2.asp" method="get">
<select name="dbo_kennisgebied.kennisgebiedId">
<option>- - > Selecteer een kennisgebied < - -</option>
<%
' Continue until we get to the end of the recordset.
Do While Not objRS.EOF
' For each record we create a option tag and set it's value to the employee id
' The text we set to the employees first name combined with a space and then their last name
%>
<option value="<%= objRS.Fields("kennisgebiedId") %>"><%= objRS.Fields("kennisgebied") %></option>
<%
' Get next record
objRS.MoveNext
Loop
%>
</select>
<input type="Submit" value="Zoeken" class="borderbutton" />
</form>
<%
End If
' Close Data Access Objects and free DB variables
objRS.Close
Set objRS = Nothing
objDC.Close
Set objDC = Nothing
%> |
iemand idee?