استيراد جدول الوصول إلى Excel باستخدام VBA (الصور والتعليمات البرمجية)
ما هذا؟يساعدك رمز VBA هذا على التنزيل أو الاستيراد وصول بيانات الجدول أو الاستعلام إلى Excel بنقرة واحدة.لماذا هو؟يمكنك استيراد بيانات جدول Access إلى Excel دون فتح قاعدة بيانات Access.كيفية استيراد بيانات جدول Access إلى Excel
الخطوة 1: افتح مصنف Excel وانتقل إلى منشئ أكواد VBA (Alt + F11) وافتح وحدة نمطية جديدة.الخطوة 2: انسخ وألصق الكود أدناه فيه.
Sub importAccessdata() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim sQRY As String Dim strFilePath As String strFilePath = "C:\DatabaseFolder\myDB.accdb" 'استبدل 'DatabaseFolder' و'myDB.accdb' بالملفين الخاصين بك مسار قاعدة البيانات واسم قاعدة البيانات Set cnn = مجموعة ADODB.Connection الجديدة rs = ADODB.Recordset الجديدة cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "مصدر البيانات =" & strFilePath & ";" sQRY = "SELECT * FROM tblData" 'استبدل 'tblData' باسم جدول قاعدة بيانات Access أو اسم الاستعلام الذي تريد تنزيل البيانات منه rs.CursorLocation = adUseClient rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly Application.ScreenUpdating = False Sheet1.Range("A1").CopyFromRecordset rs rs.Close Set rs = لا شيء cnn.Close Set cnn = لا شيء خروج Sub End Sub
الخطوه 3: انقر فوق الزر "تشغيل" أو F5 (يمكنك أيضًا إدراج زر/شكل في ورقة Excel ثم النقر بزر الماوس الأيمن وتعيين هذا الماكرو للتشغيل في كل مرة.)
تم تحميل سجلات قاعدة بيانات Access بنجاح إلى Excel، افتح مصنف Excel الخاص بك وتحقق من البيانات.
ملحوظة: تأكد من تمكين "مكتبة كائنات بيانات Microsoft ActiveX" من ملف أدوات - مراجع (الرقم يستخدم الإصدار الأحدث [6.1 اعتبارًا من هذا المنشور]).
Pin
أنا متأكد من أنك تعمل على الكثير من بيانات Excel وMS Access وVBA، لذا فأنا بقوة أنصحك بالانضمام إلى نموذج مستخدم Ultimate Excel VBA أدناه مع قاعدة بيانات Access! إنه استثمار يستحق في نفسك! افعلها الآن!
قم ببناء برنامج العالم الحقيقي الخاص بك، وتعلم Excel الحقيقي VBA (وحدات الماكرو)، وتجاوز حدود Excel مع المشروع الكامل
8 Responses
سيدي أريد تصدير سجلات قاعدة بيانات الوصول إلى Excel باستخدام زر الأمر في الإصدار vb6.0، من فضلك أرسل لي رمز vb6.0 الكامل
لدي ورقة 1 في برنامج Excel الخاص بي ولكني أحصل على خطأ وقت التشغيل 424 على الماكرو في الخطوة التالية، لماذا؟
Sheet1.Range("A1").CopyFromRecordset rs
مرحبًا، أردت التحقق مما إذا كنت سأحتفظ بقاعدة بيانات Access الخاصة بي في محرك أقراص مشترك وقم بتوزيع ماكرو Excel هذا في مؤسستي، فهل سينجح ذلك؟ أريد أن يقرأ ماكرو Excel بعض القيم من قاعدة بيانات Access هذه ثم يقوم بتحديث بعض المتغيرات عند فتح Excel.
وأيضًا إذا لم يعمل Access، فهل يمكنني استخدام برنامج Excel آخر محفوظ في محرك أقراص المؤسسة والوصول إليه بدلاً من قاعدة البيانات. لقد حاولت باستخدام طريقة فتح المصنف في وحدة الماكرو الخاصة بي لقراءة برنامج Onedrive Excel الذي تتم مشاركته مع الجميع في شركتي ولكنه لم ينجح.
خطأ في التجميع في السطر 5، 8، 9...
لقد فعلت ذلك أخيرًا.
أنا أستخدم متغيرين (textbox1 كقيمة "عملة، تنسيق R$0.000,00" وtextbox2 كـ "تاريخ"، تنسيق mm/dd/yyyy)
الكود ↓
'======================================================================== ===|
'============================ كاوي فاز==|
'======================================================================== ===|
الخيار صريح
انقر فوق الأدوات والمراجع وحدد
مكتبة كائنات بيانات Microsoft ActiveX 2.0
getDataFromAccess الفرعي (strValue، strDate)
خافت DBFullName كسلسلة
خافت الاتصال كسلسلة، المصدر كسلسلة
اتصال خافت باسم ADODB.Connection
مجموعة السجلات الخافتة مثل ADODB.Recordset
خافت العقيد كعدد صحيح
خافت mySQLVariable كسلسلة
خافت mySQLVariable_1 كسلسلة
خافت strSQL كسلسلة
mySQLVariable = strValue 'القيمة من textbox1 (تنسيق العملة R$0.000,00)
mySQLVariable_1 = strDate 'القيمة من textbox2 (تنسيق التاريخ mm/dd/yyyy)
'رمز SQL
strSQL = "اختر * من tblDatabase أين"
strSQL = strSQL & "[القيمة] = '" & (mySQLVariable) & "" و "
strSQL = strSQL & "[التاريخ] = '" & (mySQLVariable_1) & "' "
'قاعدة البيانات، حدد الوصول إلى قاعدة البيانات الخاصة بك
DBFullName = "C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb"
' فتح الاتصال
تعيين الاتصال = ADODB.Connection جديد
الاتصال = "Provider=Microsoft.ACE.OLEDB.12.0;"
الاتصال = الاتصال & "مصدر البيانات =" & DBFullName & "؛"
Connection.Open ConnectionString:=Connect
'إنشاء مجموعة السجلات
تعيين مجموعة السجلات = ADODB.Recordset الجديد
مع مجموعة السجلات
'البحث عن القيم باستخدام متغير كود SQL strSQL
المصدر = strSQL
.Open Source:=Source، ActiveConnection:=Connection
'استيراد الأعمدة من قاعدة البيانات.
بالنسبة للعمود = 0 إلى Recordset.Fields.Count – 1
النطاق ("A5").الإزاحة (0، العمود).القيمة = Recordset.Fields(Col).Name
التالي
'استيراد الخطوط من قاعدة البيانات.
النطاق ("A5").الإزاحة (1، 0).CopyFromRecordset Recordset
انتهت ب
تعيين مجموعة السجلات = لا شيء
اتصال.إغلاق
ضبط الاتصال =
ActiveSheet.Columns.AutoFit
نهاية الفرعية
يعتبر
هل يمكنني استيراد بعض البيانات فقط؟ التصفية حسب متغيرين؟
مثال:
س = 13/03
ص = '122315124'
إحضار من الوصول دينار بحريني فقط الأسطر التي تحتوي على هذه المتغيرات؟
عملت بالنسبة لي. شكراً جزيلاً!
هذا هو أفضل الاستعلام الذي رأيته على الإطلاق. هل يمكنك المساعدة في إضافة جملة Where في بيان SQL. لقد حاولت تعديل الاستعلام الخاص بك لكنه يلقي خطأ.