اگر شما یک برنامه نویس پایگاه داده هستید، ممکن است گاهی اوقات فایل های اکسل را دریافت کنید که باید آنها را پاک کنید تا در اکسس قرار دهید. دو مشکل رایج توسط شماره های تامین اجتماعی و کد پستی ایجاد می شود. اینها بهتر است به عنوان متن در پایگاه داده ذخیره شوند، و نه به اعدادی که اغلب در اکسل هستند. (در اکسل اعداد ممکن است به دلیل قالب بندی سلول ها به درستی نمایش داده شوند و نه به این دلیل که به عنوان متن ذخیره می شوند.)
حتی زمانی که محدوده به صورت متن در اکسل، کامل با صفرهای ابتدایی، فرمت می شود، Access اغلب این مقادیر را به اعداد تبدیل می کند. با این حال، اگر قبل از عدد با آپاستروف باشد، مانند یک برچسب، Access آن را به درستی به عنوان متن بدون آپستروف اصلی وارد می کند.
برای آماده کردن شماره های تامین اجتماعی برای وارد کردن در اکسس، یک ماکرو کوچک و سریع می تواند مفید باشد—یکی که از وجود صفرهای ابتدایی اطمینان می دهد و آپوستروف برای سلول در جای خود قرار دارد. برای استفاده از ماکرو، کافی است محدوده شماره های تامین اجتماعی را انتخاب کنید و سپس ماکرو را اجرا کنید:
Sub SSN2Text()
Dim c As Range
Application.ScreenUpdating = False
Format selected cells as text
Selection.NumberFormat = "@"
For Each c In Selection
If Left(c, 1) = "" Then
strip the apostrophe, if any
c = Mid(c, 2, 99)
Else
c = "" & Right("000000000" & c, 9)
End If
Next c
Application.ScreenUpdating = True
End Sub
راه حل برای کدهای پستی ماهیت مشابهی دارد. ماکرو برای پردازش کدهای پستی از هر سلول در انتخاب عبور می کند، آن را به صورت متن قالب بندی می کند، یک آپوستروف اصلی اضافه می کند، و هر صفر اول را وصل می کند. تفاوت این است که ماکرو باید مواردی را نیز در نظر بگیرد که کدهای پستی پنج رقمی یا نه رقمی وجود دارد.
Sub ZIP2Text()
Dim c As Range
Application.ScreenUpdating = False
Format selected cells as text
Selection.NumberFormat = "@"
For Each c In Selection
If Left(c, 1) = "" Then
strip the apostrophe, if any
c = Mid(c, 2, 99)
End If
If Len(c)