if rsFakt("antal") = NULL ...
if len(rsFakt("antal")) <= 0 ...
------------------
Mvh
Patrik aka Brimba
Känner du någon som är alkoholist?
7 svar · 179 visningar · startad av tapani
Koden nedan skall räkna poster som innehåller ett NULL-värde. (posterna kan vara tomma i en kolumn)
Jag får fram posten som innehåller ett tomt värde men när den sedan går vidare med en post som där är något i så får jag fram följande felmeddelande:
error '80020009'
Exception occurred.
/bokn/apr3.asp, line 33
<%
Dim Counter
Set objConn = CreateObject("ADODB.Connection")
objConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\InetPub\drivingevent\bokn\test.mdb")
SQL = "SELECT * FROM Kund Where Datum LIKE '200004%'"
Set rsKal = objConn.execute(SQL)
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" leftmargin=0 Rightmargin=0 topmargin=4>
<br>
<table width="160" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="112" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2">Ej
betalat Dag</font></td>
<td width="42" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2">Antal</font></td>
</tr>
<%
SQL = "SELECT COUNT(*) AS antal FROM Kund WHERE FaktNr IS NULL"
Set rsFakt = objConn.execute(SQL)
Do While Not rsKal.EOF
counter = counter + 1
If rsFakt("antal") = "" Then
antal = 0
Else
antal = rsFakt("antal")
End If
Do While Not rsFakt.EOF
%>
<tr>
<td width="112" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2"><%=Counter%></font></td>
<td width="42" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2">
<%= rsFakt("antal")%></font></td>
</tr>
<%
rsKal.MoveNext
rsFakt.MoveNext
Loop
Loop
rsKal.close
rsFakt.close
set rsKal = Nothing
set rsFakt = Nothing
objConn.close
set objConn = Nothing
%>
</table>
Line 33 är:
If rsFakt("antal") = "" Then
Har även provat med:
If rsFakt("antal") < 0 Then
if rsFakt("antal") = NULL ...
if len(rsFakt("antal")) <= 0 ...
------------------
Mvh
Patrik aka Brimba
Känner du någon som är alkoholist?
Får inte till det..
Provade med:
If rsFakt("antal") = NULL then
antal = rsFakt("antal")
Else
If len(rsFakt("antal")) <= 0 then
antal = 0
End If
Felmeddelande:
Microsoft VBScript compilation error '800a040e'
'loop' without 'do'
/bokn/apr3.asp, line 48
Loop
^
Så här ska det se ut
If rsFakt("antal") = NULL then
antal = rsFakt("antal")
ElseIf len(rsFakt("antal")) <= 0 then
antal = 0
End If
------------------
"Den sanna kunskapen är erfarenhet" - Albert Ensten
[Redigerat av Grummel den 31 dec 2000]
Fungerar icke.. *hum*
error '80020009'
Exception occurred.
/bokn/apr3.asp, line 32
Får forfarande fram att den räknar den
första tomma posten men sedan kommer
felmeddelandet ovan när det finns något i en post.
testa med denna kod där du kollar om fältet är tomt eller inte:
if rsFakt("antal") = "" or rsFakt("antal") = null then
------------------
//Jonne
För att testa om något är NULL ska man använda if isNull(värde). Man ska inte testa detta på samma rad som en annan test
if isnull(värde) or värde="" then
för om värde är null så blir strängtesten felaktig
if isnull(värde) then
else
if värde="" then
.....
Löste det så här istället..
Vet inte om det är så bra men just nu fungerar det.
SQL = "SELECT COUNT(Datum) AS antal FROM Kund WHERE FaktNr IS NULL AND Datum LIKE '20000401'"
Set rs = objConn.execute(SQL)
Do While Not rs.EOF %>
<tr>
<td width="112" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2">20000401</font></td>
<td width="42" align="center" height="22"><font face="Arial, Helvetica, sans-serif" size="2"><%= rs("antal")%></font></td>
</tr>
Har kämpat med den här länge nu *hehe*