Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 2.886 pregleda

Najnovija ↓

dlookup type mismatch 07.08.2010. u 22:26 · pre 197 meseci #1
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... :)

Re: dlookup type mismatch 07.08.2010. u 22:46 · pre 197 meseci #2
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

Potpis
http://zoraneremija.wix.com/eremijacv
Re: dlookup type mismatch 08.08.2010. u 02:43 · pre 197 meseci #3
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... :)
Re: dlookup type mismatch 08.08.2010. u 09:09 · pre 197 meseci #4
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...
Potpis
http://zoraneremija.wix.com/eremijacv
Re: dlookup type mismatch 08.08.2010. u 09:10 · pre 197 meseci #5
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...
Potpis
Lanci, Kuke, Spojnice, Priveznice, Skopci, Hvataljke, Celicna uzad, Valjkasti lanci, Galovi Lanci MM Veriga d.o.o.
Agrorade atomizeri
Re: dlookup type mismatch 08.08.2010. u 11:54 · pre 197 meseci #6
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?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme