Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » Bar kod čitac i SetFocus
Amelasar 14.08.2012 17:14
Predmet:Bar kod čitac i SetFocus

Bar kod se spaja na COM port.
Slijedeci kod koristim (pomogao mi je Gjoreski):

PreuzmiIzvorni kôd (Text):
  1. Private Sub MSComm1_OnComm()                                    ' Linija 1
  2.  Static stEvent1             As String                          ' Storage for an Modem event
  3.  Dim stComChar              As String * 1                       ' Temporary storage for received comm port data
  4.      Select Case msComm1.CommEvent
  5.         Case comEvReceive                                       ' Received RThreshold # of chars.
  6.                  Do
  7.                stComChar = msComm1.Input                        ' read 1 character .Inputlen = 1
  8.                 Select Case stComChar
  9.                     Case vbLf                                   ' Ignore linefeeds
  10.                     Case vbCr                                   ' The CR indicates the end of the Receive String
  11.                         If Len(stEvent1) > 0 Then
  12.                           ProcessEvent1 stEvent1                  ' Process the Modem event
  13.                           stEvent1 = ""
  14.                         End If
  15.                     Case Else
  16.                         stEvent1 = stEvent1 + stComChar           ' Save everything between CR's
  17.             End Select
  18.          Loop While msComm1.InBufferCount                       ' Loop until all characters in receive buffer are processed
  19.      End Select
  20. End Sub

PreuzmiIzvorni kôd (Text):
  1. Private Sub Form_Unload(Cancel As Integer)
  2.      If msComm1.PortOpen Then
  3.         msComm1.PortOpen = False
  4. End If

PreuzmiIzvorni kôd (Text):
  1. Private Sub Form_Load()
  2.  
  3.  Dim CommPort As String
  4.  
  5.  msComm1.CommPort = 1                                ' Opcija porta
  6.  msComm1.Settings = "4800,N,8,1"
  7.  If CommPort <> "" Then msComm1.CommPort = CommPort
  8.  msComm1.PortOpen = True
  9.  msComm1.DTREnable = True
  10.  msComm1.RTSEnable = True
  11.  msComm1.RThreshold = 1                                    ' Generate a receive event on every character received
  12.  msComm1.InputLen = 1                                      ' Read the receive buffer 1 char at a time
  13. End Sub

PreuzmiIzvorni kôd (Text):
  1. Private Sub ProcessEvent1(stEvent1 As String)                               ' Linija 1
  2. BarkodPolje = stEvent1
  3. End Sub

Kako da napravim provjeru da li se kursor nalazi na zeljenoj poziciji? Jednostavno da iskljucim bar kod ako nije na zeljenom polju. Nadam se da sam bila razumljiva.

Pokusavala sam nesto kao:

If BarkodPolje.SetFocus=True then
dalje
else
end if

Ocigledno tako neide. Svaka pomoc bi dobro dosla.

Hvala.

zxz 14.08.2012 17:47
Predmet:Re: Bar kod čitac i SetFocus

Na on enter polja bar koda ukljuci proceduru a na on exit iskljuci.

Nemogu ovo sve da sagledam jer nedostaje koda vjerovatno ali mi nije jasno da moras otvarati com port za bat kod citac.
Doduse neznam kakav je.
Inace barkod citaci rade bez otvaranja com porta.
Znaci mozes unijeti podatak i u vordu bez ikakvog programiranja.
Najbolje bi bilo da zakacis tu formu i procedure ako sama ne uspijes napraviti ovo gore sto sam napisao.

Amelasar 14.08.2012 18:19
Predmet:Re: Bar kod čitac i SetFocus

To su barkod citaci koji se spajaju na tastaturu ili usb i za njih ne treba nikakvo programiranje.
Ovaj se spaja na com port i zbog toga treba sve programirati.

Sav kod je tu nista nisam preskocila. Com port se otvara kada ulazim na formu (Form_Load) i zatvara kada izlazim iz forme (Form_Unload).

Sto se tice barkod-a sve funkcionise.

Problem je ako ocitam bar kod a nalazim se bilo gdje na formi ide mi na polje:
Private Sub ProcessEvent1(stEvent1 As String)
BarkodPolje = stEvent1
End Sub

Znaci trebam samo napraviti provjeru gdje se kursor nalazi i to dodati u gornji kod.
Ako je kursor na polju BarkodPolje upisi barkod sa com porta, a ako nije nista se ne desava.
To mi je potrebno ako korisnik greskom pritisne skeniranje.

Ili na drugi nacin da pokusam objasniti: Kako provjeriti da li se kursor nalazi na nekom polju?

Hvala.

zxz 14.08.2012 21:18
Predmet:Re: Bar kod čitac i SetFocus

Dim Provjera as Boolean
Private Sub ProcessEvent1(stEvent1 As String)
if provjera=true then
BarkodPolje = stEvent1
endif
End Sub

Private Sub ProcessEvent1_Enter()
Provjera = True
End Sub

Private Sub ProcessEvent1_Exit(Cancel As Integer)
Provjera = False
End Sub

zxz 14.08.2012 21:39
Predmet:Re: Bar kod čitac i SetFocus

Ako ti je taj bar kod citac dostupan probaj ga ipak u vordu.
Trebalo bi da radi.

Amelasar 14.08.2012 22:24
Predmet:Re: Bar kod čitac i SetFocus

Dostupan mi je barcod i neradi u wordu.

Ovaj kod mi ne funkcionise. Mogu zakaciti primjer ali vam bez barcoda ne moze pomoci.

Kad ocitam barkod uvijek mi javi da se ne nalazim na pravom polju.

Hvala zxz na trudu.

zxz 14.08.2012 23:02
Predmet:Re: Bar kod čitac i SetFocus

Ovo bi trebalo da funkcionise i mogu ja to provjeriti bez bar koda.
Zakaci primjer.
Na on enter trebalo bi da ukljuci pozivanje procedure a na on exit da je iskljuci.

zxz 14.08.2012 23:04
Predmet:Re: Bar kod čitac i SetFocus

Dim Provjera as Boolean
Jesil ovo stavila na vrh modula ispod ono option explicit.
Nesmije biti unutar niti jedne procedure.

Amelasar 15.08.2012 00:14
Predmet:Re: Bar kod čitac i SetFocus

Sve sam stavila kako si objasnio. Evo primjer.
Rijesila sam sa Check kontrolom ali bi voljela da naucim i tvoj primjer.

Hvala.
Prilozi:
barcode.rar (Velicina datoteke:313.10 KB)

zxz 15.08.2012 00:42
Predmet:Re: Bar kod čitac i SetFocus

Evo probaj moj primjer.
Prilozi:
barcodezxz.zip (Velicina datoteke:413.98 KB)