Hej Det är bättra att göra det med en SQL fråga. Tack Andreas Typ Något sånt här: Det är ett jättebra förslag...det funkar perfeckt HejJämförelse mellan två recordset från två olika tabeller
Jag jämför mellan två recordset från olika tabeller som jag sedan presenterar resultatet i samma tabell. Men jag får inte till det
Dim varSQL1
Dim varSQL2
Dim objRS1
Dim objRS2
'kör vår lagrade procedur
varSQL1= "EXEC[sp_SelectAllPersonal]" 'stored procuder som hämtar alla personal
Call Connection()
Set objRS =objConn.execute(varSQL)
VarSQL2= "EXEC[sp_SelectAllmeeting]" 'stored procuder som hämtar alla är med mötet
Call Connection()
Set objRS2 =objConn.execute(varSQL2)
'Den första recorset
If Not objRS.EOF Then
Response.Write ("<table width=400 border=0>")
Response.Write("<tr><th width=40>Namn</th><th>Finns med /th><th>Finns inte med</th></tr>")
Do While Not objRS.EOF
Response.Write("<tr><td>" & objRS("personal_namn") & "</td>")
'Den andra recordset
If Not objRS1.EOF Then
Do While Not objRS1.EOF
'kolla om personalID finns i ...
If objRS2("personalID") = objRS1("personalID") Then
Response.Write("<td>JA</td>")
else
Response.Write("<td>NEJ</td>")
End If
objRS2.MoveNext
Loop
End IF
'ta nästa post'
objRS2.MoveNext
Response.Write ("</tr>")
Loop
Response.Write ("</table>")
End If
'frigör objekten och stäng databasen
objRS1.Close
set objRS1=nothing
objConn.Close
set objConn=nothing
Något förslag???
Sv: Jämförelse mellan två recordset från två olika tabeller
Men en relativ liten förändring är:
Dim varSQL1
Dim varSQL2
Dim objRS1
Dim objRS2
'kör vår lagrade procedur
varSQL1= "EXEC[sp_SelectAllPersonal]" 'stored procuder som hämtar alla personal
Call Connection()
Set objRS =objConn.execute(varSQL)
VarSQL2= "EXEC[sp_SelectAllmeeting]" 'stored procuder som hämtar alla är med mötet
Set objRS2 = CreateObject("ADODB.Recordset")
objRS2.Open varSQL2, objConn, 3, 1
'Den första recorset
If Not objRS.EOF Then
Response.Write ("<table width=400 border=0>")
Response.Write("<tr><th width=40>Namn</th><th>Finns med /th><th>Finns inte med</th></tr>")
Do While Not objRS.EOF
Response.Write("<tr><td>" & objRS("personal_namn") & "</td>")
'Den andra recordset
'kolla om personalID finns i ...
objRS2.Find "personalID=" & objRS("personalID"), 0, 1, 1
If objRS2.EOF Then
Response.Write("<td>NEJ</td>")
Else
Response.Write("<td>JA</td>")
End If
Response.Write ("</tr>")
'ta nästa post'
objRS1.MoveNext
Loop
Response.Write ("</table>")
End If
'frigör objekten och stäng databasen
objRS1.Close
set objRS1=nothing
objRS2.Close
Set objRS2 = Nothing
objConn.Close
set objConn=nothing
Sv:Jämförelse mellan två recordset från två olika tabeller
Det funkade bra med ditt förslag... men du nämnde också om SQL, "det är bättre att göra med en SQL Fråga".
Jag har tre tabeller i databasen.
1.tblPersonal
2.tblMeetings
3.tblRelations (N:N)(personalID,meetingsID)
Idags läget, jag har hämtar först hela tblPersonal och loopa den,
sedan hämtar jag tblRelations för att kolla om vem ska vara med mötet t ex idag...
det känns lite omväg tycker jag men något bättre förslag om SQL Fråga?
/Tack Sv: Jämförelse mellan två recordset från två olika tabeller
SELECT tblPersonal.*, SubTable.personalID AS HasMeeting
FROM tblPersonal LEFT JOIN
(SELECT tblRelations.personalID
FROM tblRelations INNE JOIN
tblMeetings ON tblRelations.meetingsID = tblMeetings.meetingsID
WHERE tblMeetings.zzzDaumFältzzz = GETDATE()
GROUP BY tblRelations.personalID) AS SubTable ON tblPersonal.personalID = SubTable.personalID
Om HasMeeting är null så har personen inga möten.
Sv:Jämförelse mellan två recordset från två olika tabeller
Tack Andreas
/AndersSv: Jämförelse mellan två recordset från två olika tabeller
Jag har bara en fråga kvar. Jag använder mig av Recordset Find
objRS2.Find "personalID=" & objRS("personalID"), 0, 1, 1
den är väldigt långsam för att hämta data från databasen. hur kan den lite snabbare ?
/Anders