Avatar billede avt Nybegynder
24. januar 2002 - 12:00 Der er 2 kommentarer og
1 løsning

opslag i access database

Jeg har en side som slår op i en datebase
er bestemt ikke den store ASP-haj
hvordan og hvor kan jeg rette i min (meget sjuskede) kode - sådan at hvis det søgte ikke findes i database - så bliver de forskellige værdier(ID, Id, Regnr, PI, Info, Version, Note) udfyldt med f.eks "ukendt værdi"

hvis jeg har søger på noget som ikke eksiterer i databasen så blanker den siden ...



<% strKeyword = "" + RegNr + ""

    If Len(strKeyword) = 0 Then
        ' Hvis der ikke er skrevet i feltet
        Response.Redirect("default.asp?08129506432")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, Id, Regnr, PI, Info, Version, Note FROM pireg WHERE"
strSQL = strSQL & " (Id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Regnr LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (PI LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Info LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Version LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Note LIKE '%" & strKeyword & "%')"


' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("pi.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
    Do While Not rs.EOF

if isDate(HotlineSlutSvar) then
    If DateDiff("s", HotlineSlutSvar, Now) > 0 then
        strAktiv = "<b><font color=#FF0000>UDLØBET!!</font></b><br> <i>(" & rs("Info") & ")</i>"
    else
        strAktiv = "Aktiv"
    end if
else
    strAktiv = "Fejl i dato (muligvis ukendt bruger)"
end if

NavneLinie1 = Replace(NavneLinie1,"{","æ")
NavneLinie1 = Replace(NavneLinie1,"|","ø")
NavneLinie1 = Replace(NavneLinie1,"}","å")

NavneLinie2 = Replace(NavneLinie2,"{","æ")
NavneLinie2 = Replace(NavneLinie2,"|","ø")
NavneLinie2 = Replace(NavneLinie2,"}","å")

NavneLinie3 = Replace(NavneLinie3,"{","æ")
NavneLinie3 = Replace(NavneLinie3,"|","ø")
NavneLinie3 = Replace(NavneLinie3,"}","å")

NavneLinie4 = Replace(NavneLinie4,"{","æ")
NavneLinie4 = Replace(NavneLinie4,"|","ø")
NavneLinie4 = Replace(NavneLinie4,"}","å")

response.write "<table border=2>"
response.write "<tr><td>"
response.write "<b>PI: </b><td>" & rs("PI") & " <font size=1><a href=http://its_sna/search/ target=_blank>(PI-Opslag)</a></font>"
response.write "</td></tr><tr><td>"
response.write "<b>Opslagsstatus:</b> <td><b>" + ReturKodeSvar + "</b><i> (" + SQLCICSKodeSvar + ")</i>"
response.write "</td></tr><tr><td>"
response.write "<b>Tryk&Lyt Status: </b><td>" + AftaleStatus1KodeSvar + ""
response.write "</td></tr><tr><td>"
response.write "<b>Kundeoplysninger: </b><td><b>" + NavneLinie1 + "</b>(" + RegNr + " " + KortNr + ")<br>" + NavneLinie2 + "<br>" + NavneLinie3 + "<br>" + NavneLinie4 + "" + Email + ""
response.write "</td></tr><tr><td>"
Response.Write "<b>Dato: </b><td>" & HotlineSlutSvar & " " & strAktiv & ""
response.write "</td></tr><tr><td>"
response.write "<b>Antal fejlindtastninger: </b><td><b>" + AntalFejlindtastninger + "</b>"
response.write "</td></tr><tr><td>"
response.write "<b>AftaleStatus: </b><td><b>" + AftaleStatus2KodeSvar + "</b>"
response.write "</td></tr><tr><td>"
response.write "<b>Browser aftale statuskode: </b><td>" + BrowserAftaleStatusSvar + ""
response.write "</td></tr><tr><td>"
response.write "<b>Browser type: </b><td>" + BrowserTypeSvar + " (" & rs("Version") & ")"
response.write "</td></tr><tr><td>"
response.write "<b>Særlig note: </b><td>" & rs("Note") & " <i>(" & rs("Info") & ")</i>"
response.write "</td></tr></table>"


rs.MoveNext
    Loop

' Rydder op efter os
myConn.Close
Set myConn = Nothing

i = InStr(Request.ServerVariables("LOGON_USER"),"\") + 1
USERNAME = UCase(mid(CStr(Request.ServerVariables("LOGON_USER")),i))
%>
Opslag foretaget <%= now%> af <% Response.Write ("" + USERNAME + "") %>

</BODY>
</HTML>
Avatar billede goose Nybegynder
24. januar 2002 - 12:20 #1
Jeg bruger selv noget lign:

if not rs("note") = "" then
response.write rs("note")
else
response.write "Feltet er tomt"
end if

Dette skal du så blot have flettet ind hvor du laver udtrækket, altså hvis feltet ikke er tomt skal det vises, ellers skal deer vises noget andet.

/Goose
Avatar billede coltau Juniormester
24. januar 2002 - 14:18 #2
Når du laver SQL-sætning der er tom vil denne linie (do while not rs.eof) sørge for at dine Response.Write - linier ikke bliver udført. derfor bliver siden blank.

Du kan tage alle de linier der findes i while-løkken (som udskriver siden) og putte dem i en sub med 4 parametre og anvende disse linier.

sub VisLinier(rsInfo, rsPI, rsVersion, rsNote
' Her skal alle udskrivningslinierne være
if isDate(HotlineSlutSvar) then
    If DateDiff("s", HotlineSlutSvar, Now) > 0 then
        strAktiv = "<b><font color=#FF0000>UDLØBET!!</font></b><br> <i>(" & rsInfo & ")</i>" ' RS("Info") ændret til rsInfo
    else
        strAktiv = "Aktiv"
    end if
else
    strAktiv = "Fejl i dato (muligvis ukendt bruger)"
  end if

  NavneLinie1 = Replace(NavneLinie1,"{","æ")
  NavneLinie1 = Replace(NavneLinie1
  ' osv.
end sub


if RS.EOF then
  VisLinier "", "", "", ""
else
  do while not RS.EOF
    VisLinier RS("Info"), RS("PI"), RS("Version"), RS("Note")
    RS.MoveNext
  loop
end if
Avatar billede avt Nybegynder
24. januar 2002 - 16:04 #3
Kan jeg lokke en til at smide det ind i min kode ?
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