Article View: pl.comp.bazy-danych.msaccess
Article #137748Re: Maska Wprowadzania dla nr dokumentu.
From: Zbigniew Bratko
Date: Tue, 23 Jun 2020 15:00
Date: Tue, 23 Jun 2020 15:00
86 lines
4539 bytes
4539 bytes
W dniu 23.06.2020 o 09:18, Ryszard Tober pisze:
> Cześć,
> Mam zadanie problematyczne do rozwiązania, z którym nie wiem jak sobie poradzić, może ktoś będzie miał jakiś pomysł.
>
> Mam bazę danych składającą się z trzech pól:
> - nr dokumentu
> - nr przesyłki
> - nr sreyjny
>
> Wszystkie pola tabeli są uzupełniane poprzez formularz wprowadzania danych.
> Wszystkie dane do formularza są wprowadzane za pomocą skanera, który generuje na końcu spację. Dla pól "Nr Dokumentu" oraz "Numer przesyłki" ma być ustalona autotabulacja w taki sposób, że zaraz po przeskanowaniu kursor przeskakuje do kolejnego pola. Na obu polach ustawiłem Autotab, ale żeby całość zadziałała trzeba również ustawić maskę wprowadzania.
>
> O ile dla Nr przesyłki temat jest prosty, ponieważ numer przesyłki składa się z 24 cyfr i spacji na końcu generowanej przez skaner, maskę wprowadzania ustawiłem w sposób następujący:
>
> 000000000000000000000000" ";;
>
> Całość działa.
>
> Natomiast nie mam zielonego pojęcia jak ustawić maskę wprowadzania dla Nr dokumentu.
> Numery dokumentu wyglądają w sposób następujący:
>
> FS 4302/06/2020
> PA 10075/2020
>
> Ich długość jest zmienna i schemat/klucz jest różny.
>
> Jedyna prawidłowość jaka jest w tych numerach to cztery ostatnie znaki jako cyfry. Niestety nie mam pojęcia jak można ustawić maskę, żeby autotabulacja po zeskanowaniu zadziałała.
>
> Ma ktoś może jakiś pomysł?
> Może autotabulację dla tego pola można ustawić jakoś inaczej?
A może bez maski wprowadzania i Autotabulacji.
' spróbuj obsłużyć zdarzenie "Przy Zmianie" pól tekstowych.
' Sądzę, że skaner wkleja odczytany tekst do formantu mającego fokus
' zawsze ze spacją na końcu.
' Poniżej szkic procedur dla dwóch formantów
'__________________________________
Private Sub txtNrPrzesylki_Change()
Dim sNrPrzesylki As String
sNrPrzesylki = Nz(Me.txtNrPrzesylki.text, "")
' 24 cyfry i spacja końcowa
If Len(sNrPrzesylki) = 25 And Right$(sNrPrzesylki, 1) = " " Then
If IsNumeric(RTrim$(sNrPrzesylki)) Then
Me.txtNrDokumentu.SetFocus
Else
MsgBox "NrPrzesylki - Coś nie tak"
End If
End If
End Sub
'___________________________________
Private Sub txtNrDokumentu_Change()
Dim sNrDokumentu As String
sNrDokumentu = Nz(Me.txtNrDokumentu.text, "")
' na końcu musi być spacja ???
If Right$(sNrDokumentu, 1) = " " Then
'można także szukać (sprawdzać) znak ukośnika i jego położenie
' 4cyfry i spacja końcowa
If Len(sNrDokumentu) >= 5 Then
' usuń spację(spacje) końcowe
sNrDokumentu = RTrim$(sNrDokumentu)
'być może znajdą się dwie spacje końcowe
If Len(sNrDokumentu) = 4 And IsNumeric(sNrDokumentu) Then
'przejdź do następnego formantu
'Me.txtJakiePoleNastepne.SetFocus
Else
MsgBox "NrDokumentu - Coś nie tak"
End If
End If
End If
End Sub
Zwracam uwagę, że IsNumeric dla wyrażenie "12d3" i "12e3" zwraca TRUE.
Jeżeli coś takiego może zajść, to lepiej napisać własną funkcję
sprawdzającą, czy wyrażenie jest Numeryczne.
--
Pozdrowienia
Zbigniew Bratko
Technical Details
Message-ID:
<5ef2191d$0$536$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!aioe.org!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<7ea3907a-1d5e-4aeb-982b-b0a89ae2931eo@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin2!goblin.stu.neva.ru!aioe.org!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Maska Wprowadzania dla nr dokumentu. Newsgroups: pl.comp.bazy-danych.msaccess References: <7ea3907a-1d5e-4aeb-982b-b0a89ae2931eo@googlegroups.com> From: Zbigniew Bratko <adminBEZTEGO@accdb.pl> Date: Tue, 23 Jun 2020 17:00:44 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <7ea3907a-1d5e-4aeb-982b-b0a89ae2931eo@googlegroups.com> Lines: 112 Message-ID: <5ef2191d$0$536$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 31.0.122.155 X-Trace: 1592924445 unt-rea-a-02.news.neostrada.pl 536 31.0.122.155:32784 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 4982 X-Received-Body-CRC: 462852074 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit