Avatar billede slapstick Nybegynder
18. april 2003 - 19:09 Der er 4 kommentarer og
1 løsning

invalid use of null

jeg henter en masse poster fra en database og smider dem ind i en listbox
men efter den første post dvs ved post nr 2 i databasen så kommer den med fejlen invalid use of null runtime error 94
den siger fejlen er ved snot = rs("addy")
koden kommer her:

Public Sub loadfromdb()
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\addys.mdb"
sql = "SELECT * FROM addys"
Set rs = Conn.Execute(sql)
While Not rs.EOF
snot = rs("addy")
lstRcp.AddItem snot
Wend
Conn.Close
End Sub
Avatar billede mortrr Praktikant
18. april 2003 - 19:16 #1
Det sker hvis der ikke er nogen værdi i addy-feltet.

Brug enten:

Public Sub loadfromdb()
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\addys.mdb"
sql = "SELECT * FROM addys WHERE addy is not null"
Set rs = Conn.Execute(sql)
While Not rs.EOF
snot = rs("addy")
lstRcp.AddItem snot
Wend
Conn.Close
End Sub

Eller

Public Sub loadfromdb()
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\addys.mdb"
sql = "SELECT * FROM addys"
Set rs = Conn.Execute(sql)
While Not rs.EOF
if not isnull(rs("addy").Value) then
  snot = rs("addy")
  lstRcp.AddItem snot
end if
Wend
Conn.Close
End Sub
Avatar billede mortrr Praktikant
18. april 2003 - 19:16 #2
Det var vel egenligt et svar.
Håber jeg.
Avatar billede slapstick Nybegynder
18. april 2003 - 19:24 #3
hmm den første der siger den stadig den null fejl
og den anden der hænger programmet bare
Avatar billede mortrr Praktikant
18. april 2003 - 19:29 #4
Hmm - det er ellers metoder jeg selv bruger.

Ahhh - der mangler jo en rs.MoveNext. Også i din kode. Så det er nok derfor den "hænger". Den bliver jo aldrig færdig.

Den skal ind lige før wend.

Public Sub loadfromdb()
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\addys.mdb"
sql = "SELECT * FROM addys"
Set rs = Conn.Execute(sql)
While Not rs.EOF
if not isnull(rs("addy").Value) then
  snot = rs("addy")
  lstRcp.AddItem snot
end if
rs.MoveNext
Wend
Conn.Close
End Sub

Ellers, prøv det gode gamle hack.

Public Sub loadfromdb()
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\addys.mdb"
sql = "SELECT * FROM addys"
Set rs = Conn.Execute(sql)
While Not rs.EOF
  snot="" & rs("addy")
  if snot<>"" then
    lstRcp.AddItem snot
  end if
  rs.MoveNext
Wend
Conn.Close
End Sub
Avatar billede slapstick Nybegynder
18. april 2003 - 19:33 #5
ah ja
doh hehe
takker ! :)
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