24. juli 2007 - 15:29
Der er
23 kommentarer og 2 løsninger
Sætte n/a i tomme felter
Hej Jeg hiver data på en asp side fra en Access database med denne kode: <%= rs("data1") %> Af og til er der ikke data tilgængelig i feltet, og i de tilfælde kunne jeg godt tænke med at skrive n/a i stedet for at have et tomet felt. Er det muligt??? Mvh. Kim
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
function na(fData) if trim(fData&"") = "" then na="n/a" else na=fData end if end function <%= na(rs("data1")) %>
Så vidt jeg ved, er et tomt felt i databasen lig null, og ikke "".. men det kommer an på typen af feltet.. Derfor: "" & rs("data1") Eksempel: <%= na("" & rs("data1")) %> Det konverterer et null felt til "", så man kan checke med: if felt = "" then
Ellers skal man bruge: If IsNull(rs("data1")) then
Det gælder typisk, hvis man prøver på at lave en replace, på et felt der er null (ikke indeholder noget).. Så får man en fejl / siden crasher.. Det undgår man med: replace("" & rs("data1"), ......)
thesurfer >> Det er netop derfor jeg smider &"" på trim i funktionen: if trim(fData&"") = "" then
fennec> Ahh.. vidste jeg da godt.. at du havde "" der.. :-P
Jeg får denne fejl: Microsoft VBScript compilation error '800a03ea' Syntax error ...., line 189 function na(fData) ^ Med denne kode: <% function na(fData) if trim(fData&"") = "" then na="n/a" else na=fData end if end function %> <%= na(rs("data1")) %>
Virker fint for mig... Har du placeret den inden i en anden funktione eller sub??
Måske er det bedre, at den får afviklet alle linierne, inden den returnerer strengen.. Altså: <% function na(fData) dim retur if trim(fData & "") = "" then retur = "n/a" else retur = fData end if na = retur end function %>
24. juli 2007 - 16:31
#10
Jeg har en anden if, samt et loop <% If (rs.BOF AND rs.EOF) Then Response.Redirect "no_values.asp" Else While NOT rs.EOF %> NY KODE <% rs.MoveNext Wend End If %>
24. juli 2007 - 16:33
#11
Prøv at smide funktionen helt i bunden eller toppen af din side...
24. juli 2007 - 16:36
#12
Eksempel: <% function na(fData) if trim(fData&"") = "" then na="n/a" else na=fData end if end function ... din kode her og så: If (rs.BOF AND rs.EOF) Then Response.Redirect "no_values.asp" Else While NOT rs.EOF response.write na(rs("data1")) rs.MoveNext Wend
24. juli 2007 - 16:37
#13
Og egentligt burde det være OR i stedet for AND: If (rs.BOF AND rs.EOF) Then Jeg tror ikke at det kan forekomme, at den er BOF og ikke samtidigt EOF, men det kunne jo ske.. Med OR er man i sikkerhed..
24. juli 2007 - 16:47
#14
Hvis jeg sætter den i toppen, så virker den fint
24. juli 2007 - 16:48
#15
thesurfer: din kode kommer med samme fejl
24. juli 2007 - 16:49
#16
Det kan ikke passe.. :-) Hvis os så meget kode som muligt.. også gerne det hele.. Jeg tror at du har en fejl, lige før funktionen..
24. juli 2007 - 16:50
#17
Forresten.. har du prøvet 24/07-2007 16:20:44 ?
24. juli 2007 - 16:56
#18
Hmm... i 24/07-2007 16:47:54 skriver du, at det virker fint? Hvis det virker fint, behøver du ikke at ændre på noget.. :-)
24. juli 2007 - 17:10
#19
Jeg har ikke brug for koden i toppen af side :)
24. juli 2007 - 17:12
#20
Ups - nu ved jeg hvad du mener. resultatet kan jeg placere hvor det passer mig. Takker for hjælpen :)
24. juli 2007 - 17:18
#21
Det var godt nok fennec løsning jeg brugte, men i begge har brugt tid på det, så skal jeg splitte point'ene 45 / 15???
24. juli 2007 - 17:19
#22
Hvis det er iorden med fennce.. :-)
24. juli 2007 - 17:20
#23
Rettelse: fennec :-) Som vist nok bruger ".-) <-- One Eyed Jack".. good ol' days.. :-)
25. juli 2007 - 08:39
#24
Det er i orden med mig .o) <-- One Eyed Jack
25. juli 2007 - 11:59
#25
Takker for superb hjælp
Kurser inden for grundlæggende programmering