Avatar billede aero Nybegynder
29. juni 2003 - 18:42 Der er 10 kommentarer og
1 løsning

Fejl i opsætning af recorder på script

Kan nogle hjælpe med at få min side til at virke ??

Den skulle vise alle indlæg fra tabel B order by dennes id men min side viser kun den første record men over 10 gange !????

http://www.javacoder.dk:56400/joins/show.asp

min side code er:

<html>
</html>
<head>
</head>
<body>
<p align="center">
      <b>MULTI JOINS eks. - Show</b><br>
      <a href="admin_opret.asp">Opret nyt sammenhæng</a>
  </p>
<table width="260" border="0" cellpadding="0" cellspacing="0">
<%
Dim cn
Dim cnStr
Dim sql
Dim rs
Dim strSQL
Dim str

Dim strLName
Dim strENumber
Dim strEName


cnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath ("db.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open cnStr

strSQL = "SELECT DISTINCT B.id,B.employee_number,C.employee_name,A.location_name  FROM B,C,A WHERE A.location_code = B.location_code AND B.employee_number=C.employee_number"

Set rs = cn.Execute(strSQL)

  strENumber = rs("employee_number")
  strEName = rs("employee_name")
  strLName = rs("location_name")

If Not (rs.BOF or rs.EOF) Then
response.write "<form name=""deliting"" action=""admin_del.asp"" method=""post"">"

Do While Not rs.EOF
response.write "<tr><td>" & strENumber & "</td><td>" & strEName & "</td><td>" & strLName & "</td><td>"
response.write "<input type=""checkbox"" name=""ids"" value=" & rs("id") & ">"
response.write "</td></tr>"
rs.MoveNext

Loop
Response.Write "<tr><td colspan=""4"" align=""right"">"
Response.Write "<input type=""submit"" name=""btnDelete"" value=""Slet de valgte Records""></form>"
Response.Write "</td></tr>"
Response.Write "</table>"

Else
Response.write "<font face=""Arial"" size=""2"">No Records</font>"
End If

    cn.Close
    Set cn = Nothing
%>
</body>
</html>

Håber nogle vil hjælpe !??
Avatar billede eagleeye Praktikant
29. juni 2003 - 18:49 #1
Det er den måde du laver din SQL på med FROM A,B,C  den medtager en Record for hver gang WHERE delern passer på en record 

Prøv med INNER JOIN i stedet for.:

strSQL = "SELECT DISTINCT B.id, B.employee_number,C.employee_name,A.location_name FROM (B INNER JOIN C ON B.employee_number=C.employee_number) INNER JOIN A ON B.location_code = A.location_code"
Avatar billede aero Nybegynder
29. juni 2003 - 18:52 #2
okay har ændret min strSQL sætning til det du har skrevet men det lader ikke til at virke !!! jeg har slette DISTINCT også !!! 

kan du se hvad det evt er !??
Avatar billede eagleeye Praktikant
29. juni 2003 - 18:55 #3
Hvad indeholder de forskellige tabeller ?  som eksemple.
Hvis en af af tabellerne A,C indeholder mange records som passer på B skal du nhvade DISTINCT på for kun at få en.
Avatar billede aero Nybegynder
29. juni 2003 - 18:59 #4
A
location_code  Auto og Key
location_name  Tekst

B
id  Auto og Key
location_code  Tal
employee_number  Tal

C
employee_number  Auto og Key
employee_name    Tekst


A er mine locations tjek evt linket admin_loc.asp og ikke show.asp
C er mine employeers tjek evt linket admin_emp.asp og ikke show.asp
B er så den tabel hvor en locations sættes sammen med en employeer og vises i show.asp du kan evt tjekke min side UDEN slet funktion show2.asp den virke men ikke den med slet funktion !!!
Avatar billede eagleeye Praktikant
29. juni 2003 - 19:03 #5
Underligt at den viser så mange. Så der vil kun være En record i A og En record i C som passer med En record i B..
Avatar billede aero Nybegynder
29. juni 2003 - 19:06 #6
det virker jo ikke logist når min show2.asp side kan vise det rigtigt !!!
Avatar billede eagleeye Praktikant
29. juni 2003 - 19:08 #7
Ja hvad er forskellen så på de to SQL sætninger?
Avatar billede eagleeye Praktikant
29. juni 2003 - 19:12 #8
arh ;)

Du gemmer navn, location i 3 variable:

  strENumber = rs("employee_number")
  strEName = rs("employee_name")
  strLName = rs("location_name")


men det er kun uden for do while ... loop'et så den udsrkvier hele tiden det samme når den løber gennem recordsetet.
Avatar billede aero Nybegynder
29. juni 2003 - 19:12 #9
der er ingen min show2.asp ser sådan her ud:

<html>
</html>
<head>
</head>
<body>
<p align="center">
      <b>MULTI JOINS eks. - Show</b><br>
      <a href="admin_opret.asp">Opret nyt sammenhæng</a>
  </p>
<table width="260" border="0" cellpadding="0" cellspacing="0">
<%
Dim cn
Dim cnStr
Dim sql
Dim rs
Dim strSQL
Dim str

Dim strLName
Dim strENumber
Dim strEName


cnStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath ("db.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open cnStr

strSQL = "SELECT DISTINCT B.employee_number,C.employee_name,A.location_name  FROM B,C,A WHERE A.location_code = B.location_code AND B.employee_number=C.employee_number"
Set rs = cn.Execute(strSQL)

if rs.EOF then
Response.write "<font face=""Arial"" size=""2"">No Records</font>"
else
Do Until rs.EOF


  strENumber = rs("employee_number")
  strEName = rs("employee_name")
  strLName = rs("location_name")
 
response.write "<tr><td>" & strENumber & "</td><td>" & strEName & "</td><td>" & strLName & "</td></tr>"

  rs.MoveNext
Loop
        Response.Write "</table><br>"

    End If
    cn.Close
    Set cn = Nothing
%>
</body>
</html>
Avatar billede eagleeye Praktikant
29. juni 2003 - 19:13 #10
PRøv at lave dette om:


  strENumber = rs("employee_number")
  strEName = rs("employee_name")
  strLName = rs("location_name")

If Not (rs.BOF or rs.EOF) Then
response.write "<form name=""deliting"" action=""admin_del.asp"" method=""post"">"

Do While Not rs.EOF
response.write "<tr><td>" & strENumber & "</td><td>" & strEName & "</td><td>" & strLName & "</td><td>"
response.write "<input type=""checkbox"" name=""ids"" value=" & rs("id") & ">"
response.write "</td></tr>"
rs.MoveNext

Loop


Til dette hvor de 3 variable er inde io loopet og dermed bliver de opdateret med nye data.:


If Not (rs.BOF or rs.EOF) Then
response.write "<form name=""deliting"" action=""admin_del.asp"" method=""post"">"

Do While Not rs.EOF
  strENumber = rs("employee_number")
  strEName = rs("employee_name")
  strLName = rs("location_name")

response.write "<tr><td>" & strENumber & "</td><td>" & strEName & "</td><td>" & strLName & "</td><td>"
response.write "<input type=""checkbox"" name=""ids"" value=" & rs("id") & ">"
response.write "</td></tr>"
rs.MoveNext

Loop
Avatar billede aero Nybegynder
29. juni 2003 - 19:15 #11
Så virker det !!! 

Jeg takker !!!
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