Ինչպես ստուգել, ​​թե արդյոք մի տողը պարունակում է այբբենական (ոչ թվային) նիշ ՝ Access VBA- ի միջոցով

Կիսվել հիմա ՝

Տեղեկատվությունը «մաքրելը» նախքան այն ձեր տվյալների բազա ներմուծելը բավականին ստանդարտ է. վերջիվերջո, տվյալների բազա օգտագործել սկսելու պատճառներից մեկն այն է, որ կարողանաք կանխատեսելիորեն հարցումներ կատարել այդ տվյալների բազայից՝ սահմանված չափանիշների համար, այնպես չէ՞… այդպես չէ՞: Այսպիսով, ինչպե՞ս եք վարվում արտաքին իրավիճակներում, երբ, օրինակ, ստիպված եք տեղեկատվություն ներմուծել ֆայլից, որտեղ մեկը մուտքագրում է «$», բայց մյուսը ենթադրում է, որ դուք գիտեք, որ դա դրամական արժեք է, կամ ավելի վատը՝ երբ մեկը մուտքագրում է «am» կամ «pm», բայց մեկ այլ անձ օգտագործում է 24-ժամյա ժամացույցը: Ինչպես միշտ, խնդրին մոտենալու բազմաթիվ եղանակներ կան, բայց մեկ եղանակ է ստուգել, ​​թե արդյոք տողը պարզապես թվերի հավաքածու է, թե արդյոք այն պարունակում է որևէ «ոչ թվեր»: Փոքր VBA-ի միջոցով այս տեսակի ստուգումը պարզ է, և այս հոդվածը ձեզ կցույց տա, թե որքան պարզ է…

Ինչու՞ պետք է դա անենք:

Տվյալների նիշերԵթե ​​դուք ներմուծում եք որևէ տեսակի տեղեկատվություն, որի մուտքագրման կամ արդյունահանման եղանակը չեք վերահսկում, ապա այս խնդրին արդեն բազմիցս (շատ!) անգամ բախվել եք. մարդիկ տվյալները մուտքագրում են իրենց համար առավել հարմար ձևով, այլ ոչ թե միատեսակ։ Սա նշանակում է, որ միայն ժամանակի հարց է, թե երբ դուք ստիպված կլինեք դա անել։ անել այն միատեսակ է, նախքան այն ներմուծելը:

Դրա տիպիկ օրինակն այն է, երբ անհրաժեշտ է տվյալներ ներմուծել թվային դաշտ, բայց երբ նայում ես տվյալները, տեսնում ես, որ ոմանք հազարավորներ են առանձնացրել ստորակետերով, ոմանք էլ արժույթի նշան են ավելացրել, և ով էլ ինչ գիտի:

Quickգուշացման արագ խոսք:

Ձեր տվյալների բազայում չմաքրված տվյալների ներմուծումը կարող է շատ աղետալի լինել. Լավագույն դեպքում կարող է շեղել ձեր զեկուցումը, իսկ վատթարագույն դեպքում կարող եք հայտնվել բոլոր տեսակի կոտրված բաներով. փորձում եմ շտկել Մուտքի խնդիրը ամբողջ հանգստյան օրերը:

Ինչպես «ազատվել» այբբենական նիշերից

Իհարկե, կարող եք որոնում կատարել և ձեռքով փոխարինել, բայց դա անելը կարող է ժամանակ պահանջել և կարող է ինչ-որ բան բաց թողնել (եթե որոնում եք, օրինակ, դոլարային նշաններ, կարող եք բաց թողնել եվրոյի նշանը կամ ստորակետերը, տարածությունները և այլն): , Այսպիսով, դրա կատարման ամենադյուրին և հուսալի ձևը թույլ է տալիս Access- ին կատարել քրտնաջան աշխատանք `օգտագործելով ստորև բերված կոդը:

Կոդի վրա

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

Ինչ է անում ծածկագիրը

VBA կոդԱյստեղ ֆունկցիան շատ պարզ է։ Մենք այստեղ պարզապես ցիկլով անցնում ենք փոխանցված տողի միջով՝ մեկ նիշ առ մեկ։ Եթե նիշը թիվ է, ապա մենք այն ավելացնում ենք մեր ժամանակավոր տողին, և երբ ավարտում ենք, այն վերածում ենք «երկար» թվի։

Կոդի հարմարեցումը ձեզ համար

Ինչպես տեսնում եք, գործառույթը վերադարձնում է տվյալների «երկար» տիպը. Եթե աշխատում եք ամբողջ թվերի կամ լողացող կետերի հետ և այլն, ապա դուք կցանկանաք համապատասխանաբար փոխել գործառույթը, որպեսզի այն վերադարձնի ձեր տվյալների բազայի ճիշտ տեսակի արժեքը:

Հեղինակի ներածություն.

Mitchell Pond- ը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում նորոգում SQL Server բազա և գերազանցել վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: