„Czyszczenie” informacji przed zaimportowaniem ich do bazy danych jest dość standardowe – w końcu jednym z powodów, dla których zacząłeś korzystać z bazy danych, jest możliwość przewidywalnego przeszukiwania jej pod kątem ustalonych kryteriów, prawda… prawda? Jak więc poradzić sobie z sytuacjami zewnętrznymi, na przykład z importem informacji z pliku, gdzie jedna osoba wpisuje „$”, a inna zakłada, że wiesz, że to wartość pieniężna – lub, co gorsza, gdy ktoś wpisuje „am” lub „pm”, a ktoś inny używa zegara 24-godzinnego? Jak zwykle, istnieje wiele sposobów na rozwiązanie problemu, ale jednym ze sposobów jest sprawdzenie, czy ciąg znaków jest po prostu zbiorem liczb, czy też zawiera jakieś „nieliczby”. Z odrobiną VBA tego typu sprawdzenie jest proste – a ten artykuł pokaże Ci, jak proste…
Dlaczego musimy to zrobić?
Jeśli importujesz jakiekolwiek informacje, nad którymi nie masz kontroli, jak są wprowadzane lub pobierane, na pewno wielokrotnie (wiele!) razy natknąłeś się na ten problem – ludzie wprowadzają dane w sposób, który jest dla nich najwygodniejszy, a nie w jednolity sposób. Oznacza to, że to tylko kwestia czasu, zanim będziesz musiał… robić jest jednolity, zanim będzie można go zaimportować.
Typowym przykładem tego jest sytuacja, w której musisz zaimportować dane do pola liczbowego, ale gdy spojrzysz na dane, zobaczysz, że niektóre oddzieliły tysiące przecinkami, inni dodali znak waluty - i kto wie, co jeszcze.
Krótkie słowo ostrzeżenia!
Importowanie danych, które nie zostały wyczyszczone do bazy danych, może być katastrofalne w skutkach - w najlepszym przypadku może wypaczyć Twoje raportowanie, w gorszym może skończyć się uszkodzeniem różnego rodzaju - nie pozwól, aby przyczyną były „brudne” importy danych Próbuję naprawić problem z dostępem cały weekend!
Jak „pozbyć się” znaków alfabetu
Oczywiście możesz wyszukiwać i zamieniać ręcznie, ale może to zająć trochę czasu i możesz coś przeoczyć (jeśli szukasz na przykład tylko znaków dolara, możesz przegapić znak euro lub przecinki, spacje itp.) . Dlatego najłatwiejszym i bardziej niezawodnym sposobem jest umożliwienie Accessowi wykonania ciężkiej pracy przy użyciu poniższego kodu.
Na kod…
Public Function removeNonNumeric(inString As String) As Long Dim outputString, chrString As String Dim strPos As Integer For strPos = 1 To Len(inString) chrString = Mid(inString, strPos, 1) If IsNumeric(chrString) Then outputString = outputString & chrString Next removeNonNumeric = CLng(outputString) End Function
Co robi kod

Dopasowanie kodu do Twoich potrzeb
Jak widać - funkcja zwraca typ danych „long” - jeśli pracujesz z liczbami całkowitymi lub zmiennoprzecinkowymi itp., Będziesz chciał odpowiednio zmienić funkcję, aby zwracała właściwy typ wartości dla Twojej bazy danych.
Wprowadzenie autora:
Mitchell Pond jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym naprawa SQL Server baza danych i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com