اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

اريد تحديث بيانات اكسس من اكسل وقد استخدمت هذا الكود :

Sub UPDATE_FROM_EXCEL()
  
  '-- GET EXCEL FILE
  Dim XL_FILE As String
  XL_FILE = CurrentProject.Path & "\ITEMX.xlsx"
  
  '-- WRITE SQL STATEMENT
  Dim SQL As String
  SQL = SQL & "UPDATE TABLE1 AS T1 "
  SQL = SQL & "RIGHT JOIN "
  SQL = SQL & "(SELECT * FROM [SHEET1$] IN'" & XL_FILE & "'"
  SQL = SQL & "[EXCEL 12.0;HDR=YES;IMEX=1;]) AS T2 "
  SQL = SQL & "ON T1.[كود_الصنف] = T2.[كود الصنف] "
  SQL = SQL & "SET T1.[كود_الصنف] = T2.[كود الصنف],"
  SQL = SQL & "T1.[اسم_الصنف] = T2.[اسم الصنف]"
  
  '-- RUN SQL STATEMENT
  CurrentDb.Execute SQL
    
End Sub

ولكن يضهر لي خطاء في  CurrentDb.Execute SQL

تم تعديل بواسطه Moosak
تنسيق الكود
قام بنشر (معدل)
16 ساعات مضت, mhm55 said:

ولكن يضهر لي خطاء في  CurrentDb.Execute SQL

في مشاركتك الأولى ، أهلا وسهلاً بك معنا أخي الكريم @mhm55 . ونتمنى أن تجد ما تبحث عنه من فائدة ومعلومة ونصيحة :welcomeani:

 

اسمح لي أولا بلفت انتباهك إلى ضرورة التقيد بـ قوانين المنتدى ، حتى تصل إلى مطلوبك بشكل سريع و واضح . ومن هذه الأمور التي عليك الإلتزام بها :0

1. ضرورة الإيضاح في طلبك بشكل كافي و شافي و وافي .

2. ارفاق ملف لتوضيح الصورة إن لزم الأمر .

3. لوضع كود في المشاركة ، استخدم علامتي التكويد <> ثم لصق الكود ليكون سهلاً في القراءة ؛ كما سترى لاحقاً .

 

أما بالنسبة لطلبك ومشكلتك ،، عليك أولا التأكد من أمرين مهمين هما :-

 

1. تأكد أن ملف الإكسيل موجود في المسار المحدد في الكود (CurrentProject.Path & "\ITEMX.xlsx")

2. تأكد أن اسم ورقة العمل في ملف الإكسيل هو فعلاً = "SHEET1$" . إذا كان الاسم مختلفاً ، قم بتعديله في الكود .

3. جملة الإستعلام في الكود الذي ارسلته غير صحيحة في آكسيس ، والتالي تعديل عله يكون صحيحاً
:excl:* بعد تجربة الكود على ملف سابق كما أشار معلمنا @أبو إبراهيم الغامدي ، تبين ان الكود الأصلي في مشاركتك يعمل بدون أي مشاكل . والجملة 3 أعلاه أصبحت بعد لتجربة غير صحيحة 

 

 

أشكر معلمنا الفاضل للفت انتباهي :fff: 

تم تعديل بواسطه Foksh
تصحيح معلومة خاطئة ، وحذف الكود لعدم أدائه المهمة
  • Thanks 1
قام بنشر
1 ساعه مضت, Foksh said:

3. جملة الإستعلام في الكود الذي ارسلته غير صحيحة في آكسيس ، والتالي تعديل عله يكون صحيحاً

أصل هذه الشفرة في المشاركة التالية

 

  • Like 1
قام بنشر (معدل)

اخي حاولت اعدل الاستعلام لاكن لم يقبل الا حقلين فقط واريده لعدة حقول سارفق الملف وانت عدل الاستعلام على هذه الحقول شاكر تعاونكم معي

 

ITEMX.rar

تم تعديل بواسطه mhm55
قام بنشر
في 11‏/12‏/2024 at 23:55, أبو إبراهيم الغامدي said:

أصل هذه الشفرة في المشاركة التالية

 

واذا سمحت معلمنا واستاذنا شرح عمل كل سطر من الكود لكي يتسنى لي الفهم والاستفادة اكثر ولك جزيل الشكر

قام بنشر
6 ساعات مضت, mhm55 said:

واذا سمحت معلمنا واستاذنا شرح عمل كل سطر من الكود لكي يتسنى لي الفهم والاستفادة اكثر ولك جزيل الشكر

لكون ورقة البيانات في أكسل تحتوي على حقول كثيرة، أقترح عليك عمل ذلك عن طرق استخدام محرر الاستعلام في أكسس... وفقا للخطوات التالية

الخطوة الأولى.. قم بتغيير الدليل الإفتراضي لأكسس لكي يشير إلى دليل قاعدة البيانات الحالية، كما في القصاصة التالية

  MSACCESS_Bpt8SFEk88.png.cda7d6af9db3f0875baf199c253f0f8c.png

 

الخطوة الثانية.. نكون جملة استعلام للاتصال بورقة البيانات ومن ثم نوقوم بحفظه، كما في القصاصة التالية

MSACCESS_70umBiVIOg.png.cfb37b118045e4de0551b9cd663ca52b.png

 

الخطوة الثالثة: ننشىء استعلام تحديث بيانات بين جدول البيانات وبين استعلام الاتصال الذي أنشأناه في الخطوة السابقة، مع مراعات العلاقة بين هذين المصدرين (جميع البيانات من استعلام بيانات أكسل، والبيانات التي تقابها من جدول بيانات الموظفين)..

العلاقة بهذه الصورة تسمح بتحديث جدول بيانات الموظفين إذا كانت اليانات موجودة مسبقا، كما تسمح باضافة البيانات الجديدة.. أنظر القصاصة التالية

MSACCESS_vvRCevYTgn.png.cbbffb4815c9a4b978988a02705701c1.png

الخطوة الرابعة.. اختيار الحقول المطلوب تحديثها كما في القصاصة التالية (إصدار الأكسس لدي يدعم التحرير الذكي)

MSACCESS_Z69ZFuDHov.thumb.gif.ea71403205d0bdbccf5adcd8e1c30e43.gif

الخطوة الأخيرة نغير الشفرة تحت زر الأمر لتصبح كالتالي

Private Sub CMD_UPDATE_Click()
   '-- تعطيل رسائل التحذير
   DoCmd.SetWarnings False
   '-- تشغيل استعلام مزامنة البيانات
   DoCmd.OpenQuery "[مزامنة البيانات]"
   '-- تفعيل رسائل التجذير
   DoCmd.SetWarnings True
   '-- إعادة تنشيط جدول بيانات الموظفين
   Me.Child0.Requery
End Sub

ملاحظة مهمة..

ورقة البيانات ليس فيها بيانات! ولذا عند تشغيل استعلام مزامنة البيانات سوف يرجع لنا رسالة خطأ بعدم مطابقة البيانات  

 

المرفق بعد التعديل..

tb_الموضفين.zip

MSACCESS_gU1H3Kvlm9.png

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information