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 fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
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