Avatar billede a55830 Praktikant
17. august 2004 - 23:55 Der er 16 kommentarer og
1 løsning

Hent udvalgte posteringer fra access

Hej Igen Igen

jeg har en database hvor jeg gerne vil hente nogle posteringer der er 4 valg muligheder der kan vælges men er der valgt en i G2 og G4 skal kun posteringer med  de data komme

håber i kan hjælpe

her er starten på scriptet :

Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\web\blueeye.dk_p7e8vv\db\PicData.mdb"
conn.Open strDSN
strSQL = "SELECT * FROM tabel1 Where gruppe_1 = 'G1' or Where gruppe_2 = 'G2' Where Gruppe_3 = 'G3' or Where Gruppe_4 = 'G4'"

rs.Open strSQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 8  'Antal billeder pr. side
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
Avatar billede eagleeye Praktikant
17. august 2004 - 23:57 #1
Du skal kun havde where en gang:

strSQL = "SELECT * FROM tabel1 Where gruppe_1 = 'G1' or gruppe_2 = 'G2' or Gruppe_3 = 'G3' or Gruppe_4 = 'G4'"
Avatar billede a55830 Praktikant
17. august 2004 - 23:58 #2
den laver fejl i linie 19

som er ---> rs.Open strSQL, Conn, 1
Avatar billede a55830 Praktikant
18. august 2004 - 00:01 #3
hmm  der kommer ikke noget frem

kan det være at det er min form der er problemet

<option value="">Vælg</option> hvad resultat giver den
Avatar billede eagleeye Praktikant
18. august 2004 - 00:02 #4
Hvis det kommer fra en form skal du havde Request.Form ind på en måde.
Jeg forstår ikke helt det du skriver her:
der er 4 valg muligheder der kan vælges men er der valgt en i G2 og G4 skal kun posteringer med  de data komme
Avatar billede eagleeye Praktikant
18. august 2004 - 00:03 #5
Har du 4 drop down menuer?
Avatar billede a55830 Praktikant
18. august 2004 - 00:04 #6
ja

ok her er hele scriptet

<html><head>
<title>Paging af et recordset vælg efter form</title>
<meta name="Generator" content="Stone's WebWriter 4">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
</head><body>
<div style="text-align:center">
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\web\blueeye.dk_p7e8vv\db\PicData.mdb"
conn.Open strDSN
strSQL = "SELECT * FROM tabel1 Where gruppe_1 = 'G1' or gruppe_2 = 'G2' or Gruppe_3 = 'G3' or Gruppe_4 = 'G4'"

rs.Open strSQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 8  'Antal billeder pr. side
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount

  antalPrRow = 4 'antal billeder pr række
  noPrRow=0 'tælle variable

  Response.Write "<p><b>Side " & intPage & " af " & intPageCount & "</b></p>"
  response.Write "<table>"
  Do While Not rs.EOF And intRecCount > 0
    if noPrRow=0 then Response.Write "<tr>"

    strPic = "<img src='" & rs("link") & "' width='160' height='120'>"
    strLink = "<a href='" & rs("Link") & "'>" & strPic & "</a>"

    Response.Write "<td>" & strLink & "</td>"

    noPrRow=noPrRow+1
    if noPrRow=antalPrRow then
      response.write "</tr>"
      noPrRow=0
    end if
    intRecCount = intRecCount - 1
    rs.MoveNext
  Loop
  if noPrRow>0 then response.write "</tr>"
  response.write "</table>"
End If
rs.Close
Set rs = Nothing
Conn.Close
Set Conn=nothing

Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If

<!--#include file="skriv.asp"


%>
</div>
</body></html>
Avatar billede eagleeye Praktikant
18. august 2004 - 00:09 #7
Ok så du har 4 drop down som hedder G1, G2, G3 og G4 og de skal medtages i SQL'en hvis de er valgt så prøv at rette denne:

strSQL = "SELECT * FROM tabel1 Where gruppe_1 = 'G1' or gruppe_2 = 'G2' or Gruppe_3 = 'G3' or Gruppe_4 = 'G4'"


Til dette:

G1=request("g1")
if G1<>"" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " OR "
  SQLwhere = SQLwhere & " gruppe_1 = '" & G1 & "'"
end if
G2=request("g2")
if G2<>"" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " OR "
  SQLwhere = SQLwhere & " gruppe_2 = '" & G2 & "'"
end if
G3=request("g3")
if G3<>"" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " OR "
  SQLwhere = SQLwhere & " gruppe_3 = '" & G3 & "'"
end if
G4=request("g4")
if G4<>"" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " OR "
  SQLwhere = SQLwhere & " gruppe_4 = '" & G4 & "'"
end if
strSQL = "SELECT * FROM tabel1 "
if SQLwhere <> "" then strSQL = strSQL & " WHERE " & SQLwhere
Avatar billede a55830 Praktikant
18. august 2004 - 00:13 #8
det virker men ....

hvis der er mere end 8 så tager den alle poster hvis jeg klikker på side 2
Avatar billede a55830 Praktikant
18. august 2004 - 00:15 #9
og hvis jeg vælger 1 i G1 og 4 i G2 så tager den alle med 1 i G1 og alle me 4 i G2 og ikke kun dem der kun har 1 I G1 og 4 i G2
Avatar billede eagleeye Praktikant
18. august 2004 - 00:16 #10
Ja så skal man overføre G1, G2, G3, G4 vidre til side 2,3,4 osv.

Dette skal rettes:

  Response.Write "<a href=?page=" & intNum & ">" & intNum & "</a> "

Til:

  Response.Write "<a href=?page=" & intNum & "&G1="&Server.URLEncode(G1)&"&G2="&Server.URLEncode(G2)&"&G3="&Server.URLEncode(G3)&"&G4="&Server.URLEncode(G4)&">" & intNum & "</a> "
Avatar billede eagleeye Praktikant
18. august 2004 - 00:17 #11
>> og hvis jeg vælger 1 i G1 og 4 i G2 så tager den alle med 1 i G1 og alle me 4 i G2 og ikke kun dem der kun har 1 I G1 og 4 i G2

Så skal du rette alle linjerne med:
  if SQLwhere <> "" then SQLwhere = SQLwhere & " OR "

Til:
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND "


Så skal alle de valg man gør være opfyldt før posten tages med.
Avatar billede eagleeye Praktikant
18. august 2004 - 00:18 #12
så lige de to sidste links skal rettes fra:

If Clng(intPage) > 1 Then
  Response.Write "<a href=?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=?page=" & intPage + 1 & ">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If


Til:

If Clng(intPage) > 1 Then
  Response.Write "<a href=?page=" & intPage - 1 & "&G1="&Server.URLEncode(G1)&"&G2="&Server.URLEncode(G2)&"&G3="&Server.URLEncode(G3)&"&G4="&Server.URLEncode(G4)&">&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=?page=" & intPage + 1 & "&G1="&Server.URLEncode(G1)&"&G2="&Server.URLEncode(G2)&"&G3="&Server.URLEncode(G3)&"&G4="&Server.URLEncode(G4)&">&gt;&gt;</a> "
Else
  Response.Write "&gt;&gt;"
End If
Avatar billede a55830 Praktikant
18. august 2004 - 00:20 #13
WAYYYYYYY
takker hvilken uddanelse har du

for jeg kunne godt tænke mig at have den samme
Avatar billede eagleeye Praktikant
18. august 2004 - 00:23 #14
Jeg er ingeniør :)
men jeg har også kodet i ASP de sidste par år :)
Avatar billede a55830 Praktikant
18. august 2004 - 00:24 #15
ok send du bare et svar for det var alle points vær
Avatar billede eagleeye Praktikant
18. august 2004 - 00:25 #16
Ok, sidste post var et svar :)
Avatar billede a55830 Praktikant
18. august 2004 - 00:25 #17
tak det var super nu virker mit billede arkiv
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