„Curățarea” informațiilor înainte de a le importa în baza de date este destul de standard – la urma urmei, unul dintre motivele pentru care ați început să utilizați o bază de date este acela de a putea interoga previzibil baza de date respectivă pentru anumite criterii, nu-i așa? Deci, cum gestionați situațiile externe în care, de exemplu, trebuie să importați informații dintr-un fișier în care o persoană introduce „$”, dar alta presupune că știți că este o valoare monetară – sau, mai rău, în care cineva introduce „am” sau „pm”, dar o altă persoană folosește formatul de 24 de ore? Ca de obicei, există o mulțime de modalități de a aborda problema, dar o modalitate este de a verifica dacă un șir de caractere este doar un set de numere sau dacă conține „non-numere”. Cu puțin VBA, acest tip de verificare este simplu – iar acest articol vă va arăta cât de simplu…
De ce trebuie să facem asta?
Dacă importați orice fel de informații asupra cărora nu aveți control asupra modului în care sunt introduse sau extrase, atunci v-ați mai confruntat cu această problemă de multe (multe!) ori înainte - oamenii introduc detalii în modul care le este cel mai confortabil, nu într-un mod uniform. Aceasta înseamnă că este doar o chestiune de timp până când va trebui să... face este uniform înainte de a-l putea importa.
Un exemplu tipic în acest sens este cazul în care trebuie să importați date într-un câmp numeric, dar când vă uitați la date, vedeți că unii au separat miile cu virgule, alții au adăugat un semn de monedă - și cine știe ce altceva.
Un scurt cuvânt de precauție!
Importarea datelor care nu au fost curățate în baza de date poate fi destul de dezastruoasă – în cel mai bun caz, vă poate denatura raportarea, în cel mai rău caz, puteți ajunge cu tot felul de lucruri rupte – nu lăsați importurile de date „murdare” să fie motivul pentru care încerci remediați problema de acces tot sfarsitul de saptamana!
Cum să „scăpați de” caracterele alfabetice
Puteți căuta și înlocui manual, desigur, dar acest lucru poate dura timp și este posibil să pierdeți ceva (dacă căutați doar semne de dolar, de exemplu, este posibil să pierdeți semnul euro sau virgulele, spațiile etc.) . Deci, cel mai simplu și mai fiabil mod de a face acest lucru este să lăsați Access să facă munca grea folosind codul de mai jos.
Pe cod...
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
Ce face codul

Adaptarea codului pentru a vă potrivi
După cum puteți vedea – funcția returnează un tip de date de „lung” – dacă lucrați cu numere întregi, sau puncte mobile etc., atunci veți dori să modificați funcția în consecință, astfel încât să returneze tipul potrivit de valoare pentru baza de date.
Introducerea autorului:
Mitchell Pond este un expert în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv repara SQL Server Baza de date și produse software de recuperare Excel. Pentru mai multe informații vizitați www.datanumen.com