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
Skrevet man. d. 23. juli 2012 kl. 19:56:10| #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] & "*"
Skrevet man. d. 23. juli 2012 kl. 19:56:40| #2
"*" & [Me.ICAOType] & "*"
Skrevet man. d. 23. juli 2012 kl. 20:53:28| #3
Det virker ikke, jeg får følgende fejlmeddellelse - "kan ikke finde feltet "|" der refereres til"
Skrevet man. d. 23. juli 2012 kl. 21:06:52| #4
can you send the dB?
ekspertenATsanthell.dk
AT = @
Skrevet man. d. 23. juli 2012 kl. 21:14:53| #5
Det kan jeg godt men den er efterhånden ret kompliceret og fylder 25Mb
Skrevet man. d. 23. juli 2012 kl. 21:19:18| #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
Skrevet man. d. 23. juli 2012 kl. 21:27:55| #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
Skrevet man. d. 23. juli 2012 kl. 21:47:52| #8
did you try using the debugger like I asked?
we need to know what dlookuo returns!
Skrevet man. d. 23. juli 2012 kl. 22:00:01| #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.
Skrevet man. d. 23. juli 2012 kl. 22:04: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 & "'")
Skrevet man. d. 23. juli 2012 kl. 22:09:26| #11
The DLookup gives the SignCode(774740). If I instead of "Me...." write the value it should give (Like "*C172*") it works.
Skrevet man. d. 23. juli 2012 kl. 22:10:16| #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
Skrevet man. d. 23. juli 2012 kl. 22:16:00| #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] & "*"
Skrevet man. d. 23. juli 2012 kl. 22:17:14| #14
If it gives you "*774740*" then you must be using the wrong field
Skrevet man. d. 23. juli 2012 kl. 22:22:10| #15
And I wil be closing down shortly, need to be up early tomorrow
Skrevet man. d. 23. juli 2012 kl. 22:30:37| #16
I'l take a look again tomorrow
Skrevet man. d. 23. juli 2012 kl. 22:32:47| #17
ok thanks, I will go on trying to solve the problem, don't have to get up early - retired.
Skrevet man. d. 23. juli 2012 kl. 23:35:35| #18
Me.ICAOType skal ikke have [] omkring!~)
Skrevet tir. d. 24. juli 2012 kl. 00:39:06| #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.
Skrevet tir. d. 24. juli 2012 kl. 01:26:36| #20
Vi stopper denne tråd indtil Terry har kigget DB.
Skrevet tir. d. 24. juli 2012 kl. 19:59:34| #21
I have sent you an email
TRy this
If DLookup("[PLicensTypes]", "TblClearedStaffInfo", "[SignCode]='" & Stringsearch & "'") Like "*" & Me.ICAOType & "*" Then
Else
....
Skrevet tir. d. 24. juli 2012 kl. 20:20:02| #22
It's working. Thank's very much and "læg et svar"
Skrevet tir. d. 24. juli 2012 kl. 20:30:08| #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