🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych.msaccess
Article #137748

Re: Maska Wprowadzania dla nr dokumentu.

#137748
From: Zbigniew Bratko
Date: Tue, 23 Jun 2020 15:00
86 lines
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-mail
References: <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