دوستان سلام - براي ايمپورت اطلاعات فايل اكسل به داخل اكسس فقط يكي از شيتها قابل انتقال هست . آيا روشي وجود داره تا كليه شيتهاي فايل اكسل يكباره در يه ايمپورت بشه ؟ با سپاس
دوستان سلام - براي ايمپورت اطلاعات فايل اكسل به داخل اكسس فقط يكي از شيتها قابل انتقال هست . آيا روشي وجود داره تا كليه شيتهاي فايل اكسل يكباره در يه ايمپورت بشه ؟ با سپاس
چون هر شیت به یک جدول منتقل میشه در هر بار فقط یک شیت قابل انتقال هست
با کدنویسی این امکان هست که اسم شیت رو مشخص کنین
ضمن تشكر اگه زحمت كد و نمونه كشيده بشه ممنون ميشم .
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "table_name", "excel_filename", , "sheet_name!range"
منظور از range هم انتخاب سطرها و ستونها است مثل a1:z1000
برای هر شیت یک جدول جدا بعبارت دیگه بتعداد شیت ها باید دستور اجرا بشه و برای هر شیت هم یک اسم جدول جداگانه باید بدین
ضمن تشكر لطفاً بفرمائيد 1- مسير فايل اكسل ( غير از مسير پيش فرض ) رو چطوري مشخص كنيم .
2- با كدي شبيه كد زير ميشه تعداد شيتها رو مشخص كرد و يكباره كليه شيتها رو ايمپورت نمود .
for i=1 to 3
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "table_name", "excel_filename", , "sheet(i)!range"
next
1- مسیر فایل اکسل رو کامل بدین
D:\DATA\1388\SALES.XLSX2- اسم شیت باید خودش و بصورت استرینگ باشه و نمیشه بهش رفرنس داد (در حد اطلاعات من) بعبارت دیگه باید اسم شیتها رو دقیق بدونین.
ولی شما میتونین یک کار دیگه بکنین به اینصورت که یک ARRAY تعریف کنین که شامل اسامی واقعی شیت ها باشه:
DIM SHEET_NAMES(),TABLE_NAMES()
SHEET_NAMES=ARRAY("SHEET1","FOROOSH BAHAR","SHEET4")
TABLE_NAMES=ARRAY("SALES77","SALES_SPRING","PERS")
DIM FILE_LOCATION AS STRIN
FILE_LOCATION="D:\DATA\1388\SALES.XLSX"
DIM I AS INTEGER
FOR I=0 TO UBOUND(SHEET_NAMES)
DoCmd.TransferSpreadsheet acImport, _
acSpreadsheetTypeExcel12, _
TABLE_NAMES(I), _
FILE_LOCATION, , _
SHEET_NAMES(I) & "!A1:Z10000"
NEXT
باز هم از وقتي كه گذاشتين و راهنمائي شما ممنونم و يه سوال ديگه اينكه امكان اين هست كه range هاي مختلف رو ايمپورت كنيم مثلا" a1:a4;d1:d4
این رو نمیدونم و تابحال هم تست نکردم
خودتون تست کردین؟
آره متاسفانه جواب نداد شايد از كاركترهاي مناسب استفاده نكردم . در هر صورت منتظر عنايت اساتيد هستيم و مجدد از جنابعالي تشكر مي كنم .
بطور حسی فکر نکنم خواسته شما عملی باشه (بخاطر اینکه در ساخت جدول مشکل پیش میاد)
چرا برای هر رنج یک ایمپورت جداگانه انجام نمیدین؟
باز هم از لطف شما ممنونم . البته به شكلهاي مختلف ميشه به جواب رسيد ولي دنبال راحتترين روش هستم .
در خصوص ايمپورت رنجهاي مختلف هم فرض كنيد مي خوام a1:a10 در فيلد اول و b1:b10 در فيلد دوم قرار بگيره با ايمپورت ( روشي كه تا كنون بررسي ) اطلاعات هر دو ستون در فيلد اول قرار مي گيره . با سپاس مجدد