Nu tänker jag en gång för alla gå till botten med detta som irriterar mig så extremt. Om jag inte har något skrivet i ett fält, så har den värdet NULL. Bra så långt... När jag däremot behöver läsa ut värdet i fältet och kolla om det är NULL eller om det innehåller data, så blir det knäppt. Jag kör följande kod:
If rs1("Dit_kl") <> "" Then Dit_kl = rs1("Dit_kl") Else Dit_kl="Inget"
Det genererar följande fel oavsett om det är NULL eller inte:
(0x80020009)
Undantag inträffade.
Detta har jag alltid avhjälpt genom att läsa in värdet i en variabel först, för av nån korkad anledning går det inte att läsa samma värde 2 gånger. Problemet kommer då när man läser in värdet i variabeln Dit_kl och det är NULL. Då vet inte jag hur man kollar om det är NULL. För om jag kör detta:
If rs1("Dit_kl") = "" Then Nåt Else Nåt
Så kör den koden efter Else. Dvs det är NULL, men "" är inte NULL, men hur kollar jag om det är NULL?
VBScript och null är irriterande. null finns inte i VBS.
Klart det finns. Det heter bara inte null. För strängar heter det vbNullString och för objekt Nothing.
Ex:
If [b][i]sträng[/i][/b] = vbNullString Then ' Samma sak som [i]If sträng = "" Then[/i]
' Strängen är tom
End If
Dim FS
Set FS = CreateObject("Scripting.FileSystemObject")
If FS Is Nothing Then
' FS är av typen Object men inte satt som referens till något
End If
Set FS = Nothing
Jag vidhåller att null inte finns i VBS. Nu menar jag inte att det inte sker på samma sätt i andra språk utan mer att VBS är aningen tvetydigt på den punkten.