Avatar billede pelsmid Nybegynder
04. august 2000 - 11:06 Der er 1 kommentar og
1 løsning

Dubletfjerner...

Hejsa Alle!!..

Jeg har følgende kode:

DELETE DISTINCTROW * FROM optagelser WHERE (((Firma) In (SELECT Firma FROM Firma As Tmp GROUP BY Firma HAVING Count(*)>1 )));

Jeg vil så have at den sotere via tabel der hedder fagrubrik

Databasen ser \"sådan\" ud:

ID | Firma | Fagrubrik
1 | Peter Larsen Kaffe | 3
2 | Peter Larsen Kaffe | 3
3 | Peter Larsen Kaffe | 2
osv osv...

Ved selve DELETE DISTINCTROW vil jeg have den til at slette dubletter hvis Firma samt Fagrubrik er ens..

Altså

ID | Firma | Fagrubrik
1 | Peter Larsen Kaffe | 3 < SLET
2 | Peter Larsen Kaffe | 3
3 | Peter Larsen Kaffe | 2

Det er også et lille problem i scriptet det er at den sletter ALLE dubletter.. Er der nogen der har idé til hvordan man bibeholder én ud af de dubletter den fjerner

På forhånd tak

Pelle Martin Smidt
Avatar billede dr-data Nybegynder
05. august 2000 - 00:54 #1
lytter bare med....
Avatar billede tpiil Nybegynder
06. august 2000 - 02:37 #2
er det kun 3 tallet under fagrubrik du vil ha slettet eller er det både id, firma og fagrubrik selvfølgelig???

men dette script sletter en hel række ud for id:

her kommer koden:
filen skal hedde slet.asp

<%
mode = request(\"mode\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"firma.mdb\")
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open strDSN
%>
<%
if mode = \"\" then
    strSQL = \"SELECT * FROM optagelser\"
    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then

        response.write \"<b>Slet:</b><br>\"
        response.write \"<table border=\'1\'><tr><td><b>Slet:</b></td><td><b>ID:</b></td><td><b>Firma:</b></td><td><b>Fagrubrik:</b></td></tr>\"
        response.write \"<form action=\'slet.asp?mode=slet\' method=\'POST\'>\"

            Do While Not rs.EOF %>
                <tr>
                <td valign=\"top\">
                    <input type=\"Checkbox\" name=\"delet\" value=\"<%= rs(\"id\") %>\">
                </td>
                <td valign=\"top\">
                    <%response.write rs(\"ID\") %>
                </td>
                <td valign=\"top\">
                    <%response.write rs(\"Firma\") %>
                </td>
                <td valign=\"top\">
                    <%response.write rs(\"Fagrubrik\") %>
                </td>
                </tr><%
                rs.movenext
            loop

        response.write \"<tr><td><input type=\'Submit\' value=\'Slet brugeren\'></td></tr></form>\"
        response.write \"</table>\"
    else
        response.write \"<b>Der er ingen id\'er i databasen</b>\"
    end if
    end if

if mode = \"slet\" then
    id = request(\"delet\")
    if id = \"\" then
        response.write \"<b>Du skal v&aelig;lge en id</b><p>\"
        fejl = 1
    end if
    if fejl = 1 then
        call sletbruger
    end if
    if not fejl = 1 then
        str = request(\"delet\") & \", \"
   
        lPos = 1
        Do While lPos <= Len(str)
            If InStr(lPos, str, \", \") = 0 Then Exit do
            aItem = Mid(str, lPos, InStr(lPos, str, \", \") - lPos)
            lPos = lPos + InStr(lPos, str, \", \") - lPos + 2
            aItem2 = aItem
            strSQL = \"SELECT * FROM optagelser WHERE ID = \" & aItem2 & \"\"
            Set rs = myConn.Execute(strSQL)
            ID = rs(\"ID\")
            Firma = rs(\"Firma\")
            strSQL = \"Delete * FROM optagelser WHERE\"
            strSQL = strSQL & \" (ID LIKE \'%\" & aItem & \"%\')\"
            Set rs = myConn.Execute(strSQL)
            response.write \"<b>ID\'en er slettet</b><p>\"
        loop
    end if
end if

%>
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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