Avatar billede yxos Nybegynder
12. januar 2006 - 05:43 Der er 7 kommentarer og
2 løsninger

Error 94 - Invalid use of Null

Jeg har en database til at styre lejrture for en spejdergruppe.

Jeg har en tur-tabel med en masse felter for hver tur.
Bla et boolean der fortæller om en tur er et kursus eller ej.

Jeg har en form der viser data for tur tabellen.
Jeg har 2 subforms; en for kurser og en for ikke-kurser. kun den ene vises, afhængig af værdien i felter kursus:

      frmSubKursus.Visible = chkKursus.Value
      frmSubTur.Visible = Not chkKursus.Value

Formen har desuden adskillige subforms, alle baseret på samme tabel, men med forskellige queries bag, således at jeg får 8 (ja, otte!) små lister med ture, som alle har samme status. På den måde kan jeg overskue hvilke ture der står med de status som de queries definerer.

Når jeg klikker på en linie i en subform, så viser jeg den pågældende turs data i enten kursussubformen eller den anden, via kodelinierne herover.

Problem:
------------
Når jeg starter databasen, får jeg x antal fejlmeddelelser; '94 Invalid use of Null', på netop overnnævnte kodelinier.
Det sker, når en subform er tom, dvs. når der ikke er nogen ture med lige den status som subformens query er sat til at vise.
Jeg får fejl-pop-up'en ligeså mange gange som der er tomme subforms.

Jeg kan klikke på "end" i pop-up'en, for at komme videre, og derefter er der ingen problemer, men det er da irriterende.

Hvordan slipper jeg for denne fejl ?
Avatar billede mugs Novice
12. januar 2006 - 05:50 #1
Du kan f.eks. indsætte en fejlhåndtering:

On error goto errorhandler
evt. noget mere kode
errorhandler:
If err.number = 94 then
resume next
end if
Avatar billede Slettet bruger
12. januar 2006 - 05:56 #2
hvad med at checke om chkKursus er null inden du begynder at bruge den?
Avatar billede yxos Nybegynder
12. januar 2006 - 06:11 #3
Jeg er ingen vb / access ørn... Og det hele er lavet for et års tid siden. Nu skal jeg overdrage databasen og vil gerne aflevere den "pæn".

kryptos, hvordan laver jeg det check?
Avatar billede yxos Nybegynder
12. januar 2006 - 06:25 #4
chkKursus er navnet på tick-feltet i formen. tabelnavnet er udlaeg.Kursus
Avatar billede Slettet bruger
12. januar 2006 - 07:35 #5
Som nedenstående skulle jeg tro
    If IsNull(chkKursus ) Then
'      The chkKursus contains a Null value.
    Else
'      The chkKursus does not contain a Null value.
    End If
Avatar billede mugs Novice
12. januar 2006 - 07:56 #6
Det er selvfølgelig optimalt at undgå at fejlen opstår. kryptos' forslag opfanger fejlen men hvad skal der så ske, hvis betingelsen er opfyldt?
Avatar billede yxos Nybegynder
12. januar 2006 - 08:11 #7
Ja, det virker.  Jeg brugte følgende:

    If Not IsNull(chkKursus) Then
      frmSubKursus.Visible = chkKursus.Value
      frmSubTur.Visible = Not chkKursus.Value
    End If

I dette tilfælde ved jeg hvorfor fejlen opstår, nemlig fordi formen er tom, og der ikke ER nogen værdi at teste på.
Men principielt har Mugs reg.

Jeg foreslår at kryptos lægger et svar, og fordeler som mugs:25; kryptos; 75.
Er det ok med jer begge?
Avatar billede Slettet bruger
12. januar 2006 - 08:15 #8
svar ;)
Avatar billede mugs Novice
12. januar 2006 - 08:53 #9
Tak for point :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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