Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dlookup type mismatch

[es] :: Access :: dlookup type mismatch

[ Pregleda: 2207 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Vladimir Djuric

Član broj: 110840
Poruke: 42
77.239.80.*

Sajt: www.medical-bn.com


Profil

icon dlookup type mismatch07.08.2010. u 21:26 - pre 167 meseci
Ludim vise od run-time error 13 - data type mismatch, a ne znam sta da radim...
Evo vam dole kod, koji radi kako treba sa brojevima, ali sa textom mi izbacuje problem:

Code:

Private Sub Broj_protokola_AfterUpdate()
If DLookup("[Broj_protokola]", "[TABljekuvjerenje]", "Broj_protokola ='" & Forms![Fljekuvjerenje]![Broj_protokola] & "'") Then
MsgBox "Ovaj broj vec postoji u protokolu"
Me.Broj_protokola.SetFocus
End If
End Sub


Broj_protokola je inace tekstualno polje, ali - kada u njega ukucam neki broj, dlookup odradi kako treba, a kada u broj protokola ukucam tekst, izbaci mi gresku...
Nakon bezuspesnog guglanja, molim za pomoc...

 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
...148.91.adsl.dyn.beotel.net.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: dlookup type mismatch07.08.2010. u 21:46 - pre 166 meseci
A sa cime uslovljavate u IF Uslov Then ?

Uslov Vam nije potpun samo ste dali konstataciju tj dali vrednost ali cemu ona treba da bude jednaka?

Bolje bi bilo da upotrebite funkciju DCount()


Private Sub Broj_protokola_AfterUpdate()

Dim Broj AS Integer

Broj=DCount("[Broj_protokola]", "TABljekuvjerenje", "Broj_protokola ='" & Forms![Fljekuvjerenje]![Broj_protokola] & "'")

If Broj > 0 Then
MsgBox "Ovaj broj vec postoji u protokolu"
Me.Broj_protokola.SetFocus
End If
End Sub


 
Odgovor na temu

Vladimir Djuric

Član broj: 110840
Poruke: 42
77.239.80.*

Sajt: www.medical-bn.com


Profil

icon Re: dlookup type mismatch08.08.2010. u 01:43 - pre 166 meseci
Ovo sa Dcount-om zaista radi, i na tome sam Vam zahvalan, ali interesuje me zasto ona varijanta sa Dlookup-om ne radi?
Koliko sam ja shvatio Dlookup, njegov pozitivan rezultat u If-u uslovljava than (pozitivan ishod). Moguce je da gresim (ipak sam manje-vise pocetnik), ali kako onda objasniti da sa numbers radi, ali sa textom nece, a pri tome izbacuje samo type mismatch?

Unapred se zahvaljujem na svakom objasnjenju...

P.S. Hvala i na ovom resenju sa Dcountom, nasao sam na par mesta tu varijantu, ali me interesovalo zasto ono prvo resenje ne radi...
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
...148.91.adsl.dyn.beotel.net.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: dlookup type mismatch08.08.2010. u 08:09 - pre 166 meseci
Definicija Funkcije je da za zadate parametre vraca i mora da vrati neku vrednost. Sve bi vam bilo jasnije kada bi ste iz uslovnog grananja koje se definise naredbom

If uslov Then
[naredbe]
End If

izvukli Vasu Dlookup funkciju.

Private Sub Broj_protokola_AfterUpdate()

Dim Tekst as String
Tekst = DLookup("[Broj_protokola]", "[TABljekuvjerenje]", "Broj_protokola ='" & Forms![Fljekuvjerenje]![Broj_protokola] & "'")
Msgbox Tekst

Tada biste videli da vi u varijabli Tekst nemate nikakav Uslov

If Tekst Then
MsgBox "Ovaj broj vec postoji u protokolu"
Me.Broj_protokola.SetFocus
End If
End Sub

Znaci to bi izgledalo kao gore a to bi recimo znacilo: Ako je Tekst tada ispisi poruku, sto znaci da je narusena osnovna truktura Naredbe IF u kojoj nije definisan uslov.
a kada biste napisali
Dim Uslov AS String

Uslov = Tekst & " = '" & Forms![Fljekuvjerenje]![Broj_protokola] & "'"

IF Uslov Then ...
Tada bi ispostovali osnovnu strukturu IF naredbe...
 
Odgovor na temu

djux66
Beograd

Član broj: 66577
Poruke: 75
*.adsl-3.sezampro.yu.

Sajt: www.mmveriga.co.rs


+9 Profil

icon Re: dlookup type mismatch08.08.2010. u 08:10 - pre 166 meseci
Probaj da staviš ovako i trebalo bi da radi i za text
Code:

Private Sub Broj_protokola_AfterUpdate()
If IsNull(DLookup("[Broj_protokola]", "[TABljekuvjerenje]", "[Broj_protokola] ='" & Forms![Fljekuvjerenje]![Broj_protokola] & "'")) = False Then
MsgBox "Ovaj broj vec postoji u protokolu"
Me.Broj_protokola.SetFocus
End If
End Sub


Ako proveravaš da li je neki podatak već unet možda je bolje da koristiš BeforeUpdate event...
 
Odgovor na temu

Vladimir Djuric

Član broj: 110840
Poruke: 42
77.239.80.*

Sajt: www.medical-bn.com


Profil

icon Re: dlookup type mismatch08.08.2010. u 10:54 - pre 166 meseci
Slazem se i sa jednim i sa drugim, i shvatam da sam pogresio oko uslova. Zoranovo resenje sa Dcountom sam probao, i radi. Djux-ovo resenje nisam probao, ali cini mi se da bi radilo. Hvala Vam obojici na tome.
Mene sada interesuje (vise kopka) zasto ona moja nakaradna varijanta radi sa brojevima, a za text mi izbacuje type mismatch?
 
Odgovor na temu

[es] :: Access :: dlookup type mismatch

[ Pregleda: 2207 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.