Avatar billede arnejensen22 Nybegynder
22. april 2010 - 21:54 Der er 13 kommentarer

Fjerne #fejl ved Dlookup?

Hej Eksperter

Jeg har en access applikation hvor jeg bruger en Dlookup på en låst tekstboks til at slå navnet på en kommune op (når brugeren har indtastet postnr i et åbent tekstfelt)

Således:
=DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])

Mit problem, er når tekstfeltet "Postnr" er tom, så returnere Dlookup "#fejl" og det er ikke særlig prangerne på min fine applikation at der står #fejl :)

Er kan jeg fjerne #fejl indtil der bliver tastet data i postnr feltet?
22. april 2010 - 22:42 #1
Proev nz(=DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr]),"")

Ikke testet.

Men du faar sandsynligvis error fordi du har NULL vaerdier, og med nz(et eller andet, "") forandrer du NULL til en tekststreng.
Avatar billede mugs Novice
23. april 2010 - 07:56 #2
I stedet for at manipulere med tekststrengen, foretrækker jeg at behandler den opståede fejl. Det er korrekt, som Christian skriver, at fejlen opstår fordi der ikke er nogen værdi der svarer til feltet Postnr. I nedenstående eksempel elimineres fejlen, da koden går til den linie, der kommer efter linien med fejlen. Man kan naturligvis vælge en anden hændelse hvis fejlen opstår som f.e.ks en meddelelsesboks:

on error goto errorhandler
=DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])
errorhandler:
Resume next
Avatar billede arnejensen22 Nybegynder
23. april 2010 - 16:52 #3
Hej tak for svar.

Mugs, når jeg forsøger med din formel kommer access med en fejlmeddelse: "Expected: line number or label or statement or end of statement"

Det jeg forsøger at indtaste er:

Private Sub Postnr_BeforeUpdate(Cancel As Integer)
on error goto errorhandler
=DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])
errorhandler:
Resume next
End sub
Avatar billede mugs Novice
23. april 2010 - 17:19 #4
Det SKAL fungere.
Men du har ikke noget til venstre for = i din DLookUp!!
25. april 2010 - 18:43 #5
arnejensen22, hvordan kommer vi videre med dette spoergsmaal?  Fik du loest problemet ved hjaelp af indlaeggene?  I saa fald maa du uddele points og lukke spoergsmaalet.  Eller har du behov for yderligere hjaelp?  I saa fald fortael.  Eller loeste du det selv eller er det i mellemtiden ikke laengere aktuelt?  I saafald maa du selv oprette og acceptere et svar og derved lukke spoergsmaalet.  Det vi gerne skulle undgaa er at spoergsmaalet bliver haengende som et evigheds-aabent spoergsmaal.

Saafremt du som nyt medlem ikke ved det, saa lukker man et spoergsmaal ved at acceptere et svar, et indlaeg markeret med gult, som #2 ovenfor.  Man accepterer svaret ved at saette et flueben i den lille firkant og derefter i det felt der opstaar, "Accepter svar og uddel points."  Hvis du fra et medlem faar et hjaelpsomt indlaeg men som kommentar (ikke markeret med gult, saasom #1 ovenfor) som du gerne vil give points til saa laver du et indlaeg og beder det medlem oprette et svar som du kan acceptere.  Du har ogsaa muligheden for selv at oprette et svar (for eksempel blot sige "Jeg lukker") og acceptere det.  Under alle omstaendigheder, afslut hvad du har paabegyndt.  Please.

Jeg bringer (maaske til overflod) disse citater fra FAQ:

"Hvordan accepterer eller afviser jeg et svar?

Når der er kommet et svar som du kan bruge, så klikker du ud for selve svaret i boksen "Acceptér dette svar". Derefter accepterer du svaret i den boks som dukker frem.

Er løsningen kommet gennem en kommentar, skal du stadig give point. Du skriver bare, at bruger XXX har løst problemet og beder vedkommende om et svar. Når svaret kommer, accepterer du bare dette."

"Hvordan lukker man sit spørgsmål?

Et spørgsmål er lukket når der er lagt et svar, som er blevet accepteret af vedkommende som oprettede spørgsmålet. Hvis du har et spørgsmål hvor ingen af svarene kunne bruges, kan du selv lægge et svar og acceptere dette.

Husk at hvis du selv fandt en løsning, så skriv den endelig som svar da andre kan have glæde af den i fremtiden! Samtidig viser du de brugere, som har brugt tid på dit spørgsmål, at du selv fandt en mere velegnet løsning."
Avatar billede arnejensen22 Nybegynder
27. april 2010 - 18:18 #6
Hej Christian

Du må undskylde jeg ikke har svaret. Jeg har ikke været hjemme de sidste på dage, så har slet ikke fået set på tråden her efter min sidste post.

Hej Mugs.. Jeg er ikke så god til Access og dets Visual basic sprog. Hvad er det præcis der stå til venstre for min =Dlookup?
Avatar billede arnejensen22 Nybegynder
29. april 2010 - 16:04 #7
Hej

Ville lige sige at jeg staddigvæk har problemmet :(
Har forsøgt alle forslåede løsninger ("NZ" løsningen og "on error") men desværre uden held.

Jeg har en mistanke om det er fordi jeg indtaster visual basic scriptet forkert.

Jeg forsøger at indtaste følgende:
Private Sub Postnr_BeforeUpdate(Cancel As Integer)
on error goto errorhandler
=DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])
errorhandler:
Resume next
End sub

Men får fejl ved Dlookup.
Jeg har så læst mig frem til der skal noget til venstre for Dlookup, jeg har forsøgt mig med "Postnr = Dlookup" men uden held

er der nogen der kan forklare mig præcis hvad der skal stå for at scriptet virker?
Avatar billede mugs Novice
03. maj 2010 - 08:06 #8
Prøv f.eks. at indsætte en MsgBox, så du er sikke på, at det fungerer.

Hvilken fejlmeddelelse får du?
08. maj 2010 - 07:50 #9
arnejensen22, traaden haenger.  Hvis det i mellemtiden er lige meget saa ryd venligst op og luk spoergsmaalet.  Ellers reager. 

Du startede traaden med at fortaelle at naar postnummer er tomt saa faar du #fejl.  Betyder det at naar postnummeret ikke er tomt saa faar du kommunenavnet at se?  Hvor faar du i saa fald kommunenavnet at se?  I et felt paa en formular?  Hvis for eksempel Postnr sidder paa en formular der hedder KommuneSlaaOp og kommunenavnet skal vises i feltet KommuneNavnHer saa kunne koden vaere: Me.KommuneNavnHer = =DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])

Vis os den kode der fungerer naar postnummer ikke er tomt.
Avatar billede mugs Novice
08. maj 2010 - 09:13 #10
Christian > Helt enig i dine betragtninger.

I din kode har du et = for meget:

Me.KommuneNavnHer = DLookUp("[Kommune_navn]","Kommune","[Postnr] = " & [Postnr])
08. maj 2010 - 12:48 #11
mugs, det gjorde jeg for at se om du var vaagen.
arjensen22, hvad siger du?
14. maj 2010 - 05:13 #12
arnjensen22, er det ved at vaere lukketid?
15. november 2010 - 18:44 #13
arnejensen22, jeg proever lige en gang mere.  Du oprettede dette spoergsmaal paa eksperten for at faa hjaelp (gratis og frivilligt) til et problem.  Du fik indlaeg fra adskillige medlemmer, men du fulgte ikke op til en konklusion og du lukkede ikke spoergsmaalet.  Som jeg forklarede i #5, du lukker ved at acceptere et svar, et indlaeg markeret med gult.  Du accepterer svaret ved at saette et 'flueben' i den lille firkant og derefter klikke paa feltet "Accepter svar og afgiv points."  Hvis du ikke mener at have haft hjaelp af indlaeggene saa maa du selv oprette et svar og acceptere det.  Men under alle omstaendigheder, afslut hvad du begyndte og faa svaret lukket.  Lad os ikke blive haengende i et evigheds-aabent spoergsmaal.
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