Avatar billede 49jensen Nybegynder
23. juli 2012 - 19:10 Der er 22 kommentarer og
1 løsning

Problemer med If - Then- Else kode

Jeg kan ikke få nedenstående kode til at virke. Om det er fordi jeg sætter "Me." ind som sammenligning eller værdierne ikke kan findes er jeg i tvivl om.
Feltet "Me.ICAOType" henter værdien "C172" når formlen åbnes.
Værdien som der skal sammenlignes med ligger i et notatfelt - således C172komma mellemrum 182komma mellemrum o.s.v.
Som koden er nu, kommer MsgBox i alle tifælde, fjerner jeg klammerne omkring Me.ICAOType ingen MsgBox i alle tilfælde.
Jeg tror det er fordi jeg sammenligner med "Me.....", men hvad kan jeg ellers gøre for at få værdien i feltet.
 
Private Sub Sign_BeforeUpdate(Cancel As Integer)
Dim Stringsearch As String

Stringsearch = Me!Sign
Me!Initials = DLookup("[Initials]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'")

If DLookup("[PLicensTypes]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'") Like "*[Me.ICAOType]*" Then
Else
MsgBox "You must have a valid C172 typerating", vbExclamation
End If
End Sub
Avatar billede terry Ekspert
23. juli 2012 - 19:56 #1
"*[Me.ICAOType]*"

this is just a string containg the characters *[Me.ICAOType]*

it doesnt contain the contents of teh field Me.ICAOType]

Try

"*" &[Me.ICAOType] & "*"
Avatar billede terry Ekspert
23. juli 2012 - 19:56 #2
"*" & [Me.ICAOType] & "*"
Avatar billede 49jensen Nybegynder
23. juli 2012 - 20:53 #3
Det virker ikke, jeg får følgende fejlmeddellelse - "kan ikke finde feltet "|" der refereres til"
Avatar billede terry Ekspert
23. juli 2012 - 21:06 #4
can you send the dB?

ekspertenATsanthell.dk
AT = @
Avatar billede 49jensen Nybegynder
23. juli 2012 - 21:14 #5
Det kan jeg godt men den er efterhånden ret kompliceret og fylder 25Mb
Avatar billede terry Ekspert
23. juli 2012 - 21:19 #6
OK.

"kan ikke finde feltet "|" der refereres til"

I cant see what you are doing but you need to use the debugger to try and find out where "|" is comming from.

Try and explain wht you did to get that error
Avatar billede 49jensen Nybegynder
23. juli 2012 - 21:27 #7
This is how that part of the code was when I got the message,
maybe I did something wrong, I'm knew in this "VBA".
If DLookup("[PLicensTypes]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'") Like "*" & [Me.ICAOType] & "*" Then
Else
Avatar billede terry Ekspert
23. juli 2012 - 21:47 #8
did you try using the debugger like I asked?


we need to know what dlookuo returns!
Avatar billede 49jensen Nybegynder
23. juli 2012 - 22:00 #9
Me.ICAOType shows the "SignCode" (774740) and it should show the ICAOType (C172)
Before with the earlier code the ICAOType shows "C172" but I did not get the correct info as explained earlier.
Avatar billede terry Ekspert
23. juli 2012 - 22:04 #10
OK, so you are at least geting a value in Me.ICAOType.

What does Dllokup give?

CTRL+G

?DLookup("[PLicensTypes]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'")
Avatar billede 49jensen Nybegynder
23. juli 2012 - 22:09 #11
The DLookup gives the SignCode(774740). If I instead of "Me...." write the value it should give (Like "*C172*") it works.
Avatar billede terry Ekspert
23. juli 2012 - 22:10 #12
I cant see why Me.ICAOType shows the "SignCode" (774740) but if it sa field on the form then you should be able to seewhat the value is.

Using the debugger wil help you find the problem I'm sure
Avatar billede terry Ekspert
23. juli 2012 - 22:16 #13
..should give (Like "*C172*") it works.

So what you are saying is the part after Like is wrong

Try looking at this in debug

?"*" & [Me.ICAOType] & "*"
Avatar billede terry Ekspert
23. juli 2012 - 22:17 #14
If it gives you "*774740*" then you must be using the wrong field
Avatar billede terry Ekspert
23. juli 2012 - 22:22 #15
And I wil be closing down shortly, need to be up early tomorrow
Avatar billede terry Ekspert
23. juli 2012 - 22:30 #16
I'l take a look again tomorrow
Avatar billede 49jensen Nybegynder
23. juli 2012 - 22:32 #17
ok thanks, I will go on trying to solve the problem, don't have to get up early - retired.
Avatar billede Slettet bruger
23. juli 2012 - 23:35 #18
Me.ICAOType skal ikke have [] omkring!~)
Avatar billede 49jensen Nybegynder
24. juli 2012 - 00:39 #19
Det har jeg prøvet. Hvis jeg sætter klammer om får jeg ikke Åbnet MsgBox ved nogen SignCode jeg indtaster, selvom en af dem skulle give Msg.Box. Hvis jeg fjerner klammerne får jeg Msg.Box ved alle SignCode hvor jeg kun skulle have en.
Avatar billede 49jensen Nybegynder
24. juli 2012 - 01:26 #20
Vi stopper denne tråd indtil Terry har kigget DB.
Avatar billede terry Ekspert
24. juli 2012 - 19:59 #21
I have sent you an email

TRy this
If DLookup("[PLicensTypes]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'") Like "*" & Me.ICAOType & "*" Then
Else

....
Avatar billede 49jensen Nybegynder
24. juli 2012 - 20:20 #22
It's working. Thank's very much and "læg et svar"
Avatar billede terry Ekspert
24. juli 2012 - 20:30 #23
there is one a Looong way up :o)

Skrevet man. d. 23. juli 2012 kl. 19:56:10| #1

but here's another ...

Thanks
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