Avatar billede joni@vordb Nybegynder
27. december 2000 - 09:22 Der er 17 kommentarer og
1 løsning

record vises ikke, hvorfor ?????

Jeg har følgende stump kode. i basen findes 1 post, et ubesvaret spm., alligevel får jeg hele tiden sætningen \"Der er ingen ubesvarede spørgsmål\" udskrevet. Dog, fjerner jeg ekspertsvar=\'\' så viser den posten som den skal, der er altså forbindelse til basen så hvorfor f***** vil den ikke vise den rigtigt ?
<%
if session(\"godkendt\") = true then
set rs = server.createobject(\"ADODB.recordset\")
sql = \"Select * from kassen Where (brugerspm<>\'\' AND EkspertSvar=\'\')\"
rs.open sql, brevkasse
if rs.bof or rs.eof then
response.write \"<h3>Der er ingen ubesvarede spørgsmål</h3>\"
else
....... mere kode.
%>
Avatar billede erikjacobsen Ekspert
27. december 2000 - 10:14 #1
if rs.eof then

...det skal du nøjes med
Avatar billede joni@vordb Nybegynder
27. december 2000 - 10:40 #2
Desvære, jeg får stadig ikke vist posten med det ubesvarede spm.
både \"brugerspm\" og \"ekspertsvar\" er oprettet som Notat i databasen og ekspertsvar har fået attributterne tillad nullængde = ja og obligatorisk = nej
hele kode til dette afsnit ser således ud:
<%
DBPath = \"DBQ=\" & server.mappath(\"brevkasse.mdb\")
brevkasse = \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath

case \"admin\"
if session(\"godkendt\") = true then
set rs = server.createobject(\"ADODB.recordset\")
sql = \"Select * from kassen Where (brugerspm<>\'\' AND EkspertSvar=\'\')\"
rs.open sql, brevkasse, 3,3
if rs.eof then
response.write \"<h3>Der er ingen ubesvarede spørgsmål</h3>\"
else
response.write \"<form action=\'opdate.asp\' method=\'post\'>\"
response.write \"<input type=\'hidden\' name=\'ekspert\' value=\'\" & request(\"ekspert\") & \"\'>\"
response.write \"<Table border=0>\"
while not rs.eof
  response.write \"<input type=\'hidden\' name=\'id\' value=\'\" & rs(\"ID\") & \"\'>\"
  response.write \"<tr><td>Spørgsmål</td><td>\" & rs(\"Brugerspm\") & \"</td></tr>\"
  response.write \"<tr><td>Stillet af</td><td><a href=\'mailto:\" & rs(\"brugeremail\") &\"\'>\" & rs(\"brugernavn\") & \"</a></td></tr>\"
  response.write \"<tr><td>Svar:</td><td><textarea name=\'svar\' col=\'15\' row=\'10\'></textarea></td></tr>\"
rs.movenext
wend
  response.write \"<tr><td>&nbsp;</td><td><input type=\'submit\' value=\'send svar\'></td></tr>\"
  response.write \"</table></form>\"
end if
rs.close
set rs=nothing
else
response.write \"<h3>Enten har du ikke adgang til denne side, eller også har du været inaktiv for længe.</h3>\"
end if
%>
Avatar billede erikjacobsen Ekspert
27. december 2000 - 10:43 #3
Så må vi lige sikre os at tomme strenge og null-værdier opfattes ens - hvilket
jeg ikke tror. Står der der Null i din database i de felter, hvor du ikke har
noget stående?
Avatar billede joni@vordb Nybegynder
27. december 2000 - 10:45 #4
Nej, der står intet i de tomme felter, end ikke et mellemrum
Avatar billede kasseper Nybegynder
27. december 2000 - 10:48 #5
Altså Ja der står Null, hvilken base bruger du Access ?
Avatar billede erikjacobsen Ekspert
27. december 2000 - 10:49 #6
Uha, hvorfor roder jeg mig også ud i den slags spørgsmål om Access, som jeg
egentlig ikke har forstand på  ;-)  Jeg gætter som sagt på, at du har et lille
problem med tomme strenge og udefinerede felter, men jeg har ikke tid til at
lave en afprøvning. TDAUGAARD - hvor eeer du?
Avatar billede joni@vordb Nybegynder
27. december 2000 - 10:49 #7
Access2000
Avatar billede joni@vordb Nybegynder
27. december 2000 - 10:51 #8
erikjacobsen>> Jeg tror han holder ferie, undrede mig faktisk også over at han ikke svarede inden for 1 minut, som han plejer *g*
Avatar billede joni@vordb Nybegynder
27. december 2000 - 11:03 #9
Indtil nu er følgende muligheder brugt, uden held

ekspertsvar=\'\'
ekspertsvar=\' \'
ekspertsvar=\'Null\'
ekspertsvar=Null
ekspertsvar=\"& null
ekspertsvar=\'\"&null&\"\'\"
Avatar billede kasseper Nybegynder
27. december 2000 - 11:14 #10
Jeg kan ikke lige teste, da min maskine går i ged når jeg prøver din kode mod en test Access base, men det du evt. kan gøre for at komme udenom Null problematikken, er at sætte en standard værdi i dit EkspertSvar f.eks. none og derefter ændre din TilladNullVærdi attribut til Nej. Så bliver du fri for at tjecke mod \'\' eller Null så kan du bruge denne kode :
<%
DBPath = \"DBQ=\" & server.mappath(\"brevkasse.mdb\")
brevkasse = \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath

case \"admin\"
if session(\"godkendt\") = true then
set rs = server.createobject(\"ADODB.recordset\")
sql = \"Select * from kassen Where (brugerspm<>\'\' AND EkspertSvar=\'none\')\"
rs.open sql, brevkasse, 3,3
if rs.eof then
response.write \"<h3>Der er ingen ubesvarede spørgsmål</h3>\"
else
response.write \"<form action=\'opdate.asp\' method=\'post\'>\"
response.write \"<input type=\'hidden\' name=\'ekspert\' value=\'\" & request(\"ekspert\") & \"\'>\"
response.write \"<Table border=0>\"
while not rs.eof
  response.write \"<input type=\'hidden\' name=\'id\' value=\'\" & rs(\"ID\") & \"\'>\"
  response.write \"<tr><td>Spørgsmål</td><td>\" & rs(\"Brugerspm\") & \"</td></tr>\"
  response.write \"<tr><td>Stillet af</td><td><a href=\'mailto:\" & rs(\"brugeremail\") &\"\'>\" & rs(\"brugernavn\") & \"</a></td></tr>\"
  response.write \"<tr><td>Svar:</td><td><textarea name=\'svar\' col=\'15\' row=\'10\'></textarea></td></tr>\"
rs.movenext
wend
  response.write \"<tr><td>&nbsp;</td><td><input type=\'submit\' value=\'send svar\'></td></tr>\"
  response.write \"</table></form>\"
end if
rs.close
set rs=nothing
else
response.write \"<h3>Enten har du ikke adgang til denne side, eller også har du været inaktiv for længe.</h3>\"
end if
%>

Avatar billede joni@vordb Nybegynder
27. december 2000 - 11:28 #11
Naturligvis, hvorfor har jeg dog ikke tænkt på det?
Men det irriterer(?) mig stadig at det andet ikke virker.
Hvis jeg fjerner ekspertsvar=\'\' skriver den jo posten som den skal og hvis jeg så udskriver henholdsvis værdi og længde af rs(\"ekspertsvar\"), giver det \'\' og ingen længde.
Se selv på http://www.vordingborg.dk/john/admin.asp
login som admin admin
Avatar billede erikjacobsen Ekspert
27. december 2000 - 11:32 #12
Den viser jo længden som den tomme streng, og ikke som tallet nul - hvorfor
det?  (ikke \"hvorfor dit\" ... hehe)
Avatar billede kasseper Nybegynder
27. december 2000 - 11:38 #13
Jamen det er klart at det ikke virker, det er fordi du sammenligner en streng med længden 0 med Null og det er to meget forskellige ting.
Hvis du udelader din ekspertsvar og laver et tjeck for Null f.eks. sådan her :
***************************************************
if rs.eof then
if IsNull(rs(\"EkspertSvar\")) Then
response.write \"Denne streng er ikke eksisterende, altså Null\"
else
response.write \"Joh denne streng findes se selv : \" & rs(\"EkspertSvar\")
end if
.....
Så vil du få \"Denne streng er ikke eksisterende, altså Null\" skrevet på skærmen
***************************************************
Det kan sikkert godt lade sig gøre at lave f.eks. et IsNull tjeck inde i din sql men jeg kan ikke huske syntaksen, når det er en Access base, og jeg kan som sagt ikke afprøve det...!
Håber det opklarede lidt det du ikke forstod...
Avatar billede kasseper Nybegynder
27. december 2000 - 11:40 #14
P.S. : \'og hvis jeg så udskriver henholdsvis værdi og længde af rs(\"ekspertsvar\"), giver det \'\' og ingen længde.\' -> ingen længe er også tegn på en Null værdi ellers ville længden være 0......
Avatar billede madd Nybegynder
27. december 2000 - 11:42 #15
Prøv denne i din sql sætning:

sql = \"Select * from kassen Where (brugerspm <> \'\'AND EkspertSvar=\'\')\"

Mellem-rum plejer at være meget vigtige...ved ikke om det her kan gøre det, men det er forsøget værd..
/MadD
Avatar billede madd Nybegynder
27. december 2000 - 11:42 #16
Det skulle have været et svar...
Avatar billede joni@vordb Nybegynder
27. december 2000 - 11:47 #17
MadD>Har prøvet alle de kombinationer jeg overhovedet har kunne komme i tanke om.

Kasseper>Takker for forklaringen, så blev jeg lidt klogere :-)

Jeg tror jeg hopper på dit løsningsforslag med at lægge en værdi i feltet og \"none\" er da et meget godt forslag *s*
Avatar billede kasseper Nybegynder
27. december 2000 - 11:48 #18
OK;)
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