الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطابقة بيانات من الإكسل إلى الأكسس توماتيكياً!

مغلق
بدأه أبو مالك1 في 13 نوفمبر 2006 · 14 رد · 7,044 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

أولاً: لدي برنامج معمول بالأكسس وأقوم بطباعة الشيكات من خلاله وعددها يزيد عن الـ 1000 شيك وماشي معاي من أحسن مايكون.

ثانياً: أقوم بعد ذلك بتسليم الشيكات للمستفيدين.

ثالثاً: بعد ذلك أقوم شهرياً باستلام كشف طويل وعريض من البنك يبين فيه الشيكات المصروفة بأرقامها وتاريخ صرفها ... طبعاً واجب عليَّ إدخال بيانات صرفها وهي عبارة عن معلومتين فقط ( صُرِف - تاريخ صرفه ).

تخيل أخي العزيز إنك بتقوم بالبحث عن رقم الشيك أولاً ومن ثم إدخاله يدوياً واحداً واحداً حتى تحصل على نتيجة الشيكات غير المصروفة.

تطوّر اللابنك شويه فصار يرسل هذه المعلومات على الإيميل في ملف إكسل ليسهل تحريرها والاستفادة منها...

أظنكم فهمتم سؤالي .... السؤال هو:

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

أنا أعرف إن الموضوع شبه معقد نوعاً ما وحبيت أسأل السؤال في هذا المنتدى المبارك لعلّي أجد حلاً.....

أرفقت لكم المثال للتطبيق عليه .. وجزاكم الله خيراً

f3ca00e605.jpg

الملف:

المرفق

#2

و عليكم السلام و رحمة الله و بركاته

قم بعمل التالي:

1- استورد ملف الاكسل الى الداتبيس ليكون اسمه اما (sheet1) او ( ورقة1 ).

2- حول نوع حقل رقم الشيك في الجدول المحول من الاكسل وليكن اسمه (feld3) الى رقم لان نوعه يكون نص عند تحويله الى جدول في اكسس.

3- اعمل استعلام تحديث كما في الصورة المرفقة.

4- اعمل زر امر يقوم بتشغيل الاستعلام السابق ( استعلام التحديث )وذلك بوضع العبارة التالية في حدث عند النقر على زر الامر docmd.OpenQuery ("query1") :I

تحياتي

( كيف يمكنني رفع صورة الاستعلام الى الموقع ؟)

تم تعديل هذه المشاركة بواسطة alibukheet في 13 نوفمبر 2006 في 14:23

العراق - البصرة

#3

بالنسبة لصورة الاستعلام فيمكنك ادراج جملة الاستعلام التالية في الاستعلام(Query1) عوضا عن شكل الاستعلام الموجود في الصورة غير المرفقه

UPDATE sheet1 INNER JOIN cheques ON sheet1.Field3 = cheques.cheque_no SET cheques.encashed = Yes;

العراق - البصرة

#4

أشكرك أخي الكريم على تفضلك بقراءة النوضوع والرد السريع غير المتوقع.

وأنا إن شاء الله جاري في تنفيذ ما أخبرتني عليه .... وسوف أوافيك بالنتيجة

#5

تفضل .....

هذا الموقع لرفع الملفات وتحميل الصور من الأخت الغالية زهرة ..

http://00op.com/up/

#6

أساتذي الغالي:

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

طريقة تحديث البيانات تقوم بحذف الارقام السابقة وإحلالها بأرقام جديدة فقط ..........

ولكم مني جميعاً جزيل الشكر والتقدير،،،

تم تعديل هذه المشاركة بواسطة أبو مالك1 في 13 نوفمبر 2006 في 16:25

#7

إخواني الأعزاء.....

أنا في انتظار الرد... وهل يمكن عمل ذلك برمجياً أم أنه مستحيل في الأكسس وممكن في غيره؟؟؟؟؟؟؟؟؟

#8

اخي الفاضل ابو مالك

الذي فهمته منك واعتقد ان الكثير من الاعضاء ايضا لديهم نفس الفكره انه يوجد لديك ملف اكسيل يصلك بالبريد كل فتره من البنك او من اي مكان اخر المهم انك تحصل على ملف اكسيل به ارقام الشيكات وتريد مقارنة هذه الشيكات مع ما هو موجود لديك في قاعدة البيانات .

الى هنا جميل ويمكن ذلك بطريقتين :

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

نقوم الان بإنشاء استعلام ما يسمى استعلام البحث عن غير المتطابقات وستكون نتيجة الاستعلام اظهار ارقام الشيكات غير المتطابقة بين الجدولين وبالتأكيد لن تكون 1000 شيك او 2000 شيك ارقامها غير متطابقه او قمت بالخطأ بها ولكن سيكون هناك 3 الى 6 شيكات قد يكون بها خطأ ما فتقوم بتدوين هذه الارقام وتعديلها في ملف الاكسيل .

اما انك تعدل وتضع علامة صح كما اشرت في سؤالك فلا تستطيع لان برنامج الاكسيل مخصص فقط للعمليات الحسابية وبه امكانات محدوده لقاعدة البيانات .

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

مثلا قمت بريط ملف الاكسيل مع الاكسيس من خلال ملف احضار بيانات خارجية ثم ربط الجداول .

نقوم الان بإنشاء استعلام البحث عن غير المتطابقات للجدول الذي في الاكسيس - تأكد جيدا انه يتم عمل الاستعلام لجدول الاكسيس وليس لورقة البيانات المرتبطة الخاصة بالاكسيل لان اي اختلاف سيتم كتابته مباشرة الى ملف الاكسيل لان الجدول مرتبط كأنك تعمل على ملف الاكسيل - فيفضل ان تكون المطابقة والمقارنه على ملف الاكسيس واذا ظهرت الاختلافات فبإمكانك تعديلها يدويا او انشاء استعلام تحديث بيانات لهذه الارقام الغير مطابقة للجدول المرتبط بداخل الاكسيس .

هذا ما تستطع عمله بين الاكسيس والاكسيل

#9

أختي الغالية زهرة...

أشكر لك الروح العالية في إجابتك لموضوعي .. وأنت تشكرين على مرورك للموضوع والرد عليه.

أما عن الطريقتين فأظن أن الطريقة الأولى التي أخبرتي عنها هي المراده لأني لا أحتاج ربط جدول الإكسيل بالأكسس وذلك لأن ملف الإكسل يأتي شهرياً غير الملف للشهر الماضي فأنا بحاجة إلى استيراد معلومات جديدة شهرياً من ملف جديد ومن ثم القيام بعملية المقارنة بإنشاء استعلام للبحث عن غير المتطابقات..

لكن هل لك أن تعطيني لذلك تجربة عملية وأكون لك من الشاكرين وجزاك الله خيراً...

#10

السلام عليكم

اخي العزيز عند مطالعتي لموضوع مشاركتك فان تعبيرك كان واضح و حيث انه سبق وقد عملت نظام مطابقة كشف المصرف اردت

الافادة .

بالنسبة لاستعلام التحديث في جملة الاستعلام السابقة فانه يقوم بمطابقة ارقام الصكوك المتشابهة ثم يقوم بوضع علامة صح على المتشابهة منها بنفس الوقت .

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

المرجوه منه.

لقد ارفقت لك المثال المطلوب و الظاهر ان حقل ارفاق الملفات لم يكن موجودا حينها في كتابة المشاركات في المنتدى لسبب ما.

كما ان الرابط الذي ارفقته انت مشكورا لادراج الصور لم يعمل عند الضغط عليه بالماوس.

تحياتي... علي البخيت.

العراق - البصرة

#11

New.rar

ما ادري شنو سالفة المرفقات؟؟!!!

العراق - البصرة

#12

السلام عليكم..

أخي المبارك أسأل الله ان يبارك لك في معلومات القيمة ...

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

#13

علي بركة الله .

تحياتي

العراق - البصرة

#14

اخي ابومالك

السلام عليكم ورحمة الله وبركاته

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

طريقة وآلية عمل البرنامج :

1. يوجد لديك ملف اكسيل تحصل عليه من البنك او من اي مكان المهم انه يتكون من الخلايا التالية

*. خلية بإسم cheque_no ( رقم الشيك )

*. خلية بإسم amount ( المبلغ )

*. cheque_date تاريخ الشيك

*. خلية بإسم encashedDate ( تاريخ الصرف )

ملاحظة 1: تم تعديل اخر خلية من encashed Date الى encashedDate لان البرنامج لا يقبل المسافات بين الكلمات يجب ان تقوم بتعديلها لديك

ملاحظة 2 : لا يجب بأي حال من الاحوال تغيير او تعديل اسماء الخلايا .

هذا الملف ضعه في اي مكان فسوف يتم استيراده من خلال مربع حوار استعراض الملفات

قمت بعملية التجربة وذلك بتغيير ارقام بعض الشيكات وتواريخها لغرض المقارنه فقط مع ما هو موجود في البرنامج

انتهينا من ملف الاكسيل

نأتي الان الى ملف الاكسيس

ملف الاكسيس يحتوي على التالي :

الجداول :

1. جدول الشيكات بإسم cheques وهو الذي يعتمد عليه النموذج الاساسي cheques واهم الحقول المطلوبة به هي :

*. cheque_no رقم الشيك وخاصيته مفهرس ( لا تقم بتغييره او حذفه )

*. amount المبلغ ( لا تقم بتغييره او حذفه )

*. cheque_date تاريخ الشيك

*. encashedDate تاريخ الصرف ( لا تقم بتغييره او حذفه )

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

2. جدول المقارنة MSysCompareTable هذا الجدول مخفي حتى لا يتم العبث به او بمحتوياته ويحتوي الحقول التالية :

*. cheque_no رقم الشيك خاصيته مفهرس

*. amount المبلغ نوعه رقمي

*. encashedDate نوعه نصي التغير في تاريخ الصرف

*. cheque_date تاريخ الشيك

*. encashed مربع اختيار ( صواب True - خطأ False )

*. cheque نوعه نصي نوع التغير في ارقام الشيكات ( ويقصد بها هل الشيك جديد او محذوف او تم تغييره )

3. جدول بإسم ImportTable هذا الجدول يعمل ديناميكي وهو اهم جدول لانه هو الجدول المستورد من ملف الاكسيل ومهما كان لديك اسم ملف الاكسيل فسيتم تغييره بعد استيراد البيانات الية الى ImportTable من خلال كود تغيير اسم الكائن .

عند استيراد ملف اكسيل جديد يتم حذف هذا الجدول مباشرة لانه يعتبر قديم ووضع الملف الجديد مكانه بإسم ImportTable

لاحظ ان الجدول الاساسي cheques وخلايا ملف الاكسيل والجدول المستورد ImportTable تتكون من نفس الحقول وليس بينها اختلاف لغرض المقارنه والمطابقة والا ستفشل العملية .

النماذج :

نموذج cheques ويعتمد على الجدول cheques

يوجد به عدة اوامر :

1. زر امر استيراد بيانات من ملف اكسيل ( عند الضغط عليه سيتم فتح نموذج PickFile وهو خاص بإستيراد بيانات من ملف اكسيل ووضعها في جدول ImportTable )

2. مربع تحرير وسرد لعرض كافة الجداول في القاعدة ( عند اختيار اي جدول والضغط عليه سيتم فتح الجدول المختار ومعاينته )

3. زر امر مقارنة الجدولين cheques وهو الاساسي في القاعدة و ImportTable وهو المستورد من الاكسيل وسيتم وضع النتيجة في الجدول المخفي MSysCompareTable الذي يعتمد عليه نموذج مقارنة الشيكات frmCompareTable )

نموذج PickFile هذا النموذج خاص بعملية استيراد ملف الاكسيل

قمن خلال رز الامر استعراض الملفات سيفتح مربع حوار الملفات ومنه نختار ملف اكسيل وسيتم وضع المسار الخاص بالملف في مربع نص

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

نضغط الان على زر الامر موافق لتتم عملية استيراد البيانات من ورقة بيانات اكسيل الى الجدول ImportTable

يوجد امكانية مسح الحقول من هذا النموذج لغرض انك تريد استيراد ملف اخر

بعد الانتهاء من عملية الاستيراد نقوم بإغلاق النموذج وسنعود الى النموذج الرئيسي cheques

3. نموذج frmCompareTable

الخطوة الاخيره وهي عملية المقارنة بين الجدولين الحالي والمستورد من خلال زر الامر مقارنة الجدولين

وسيتم فتح نموذج frmCompareTable الخاص بمعرفة التغيرات التي طرأت بين الملف الحالي والملف المستورد من الاكسيل .

وسوف يقوم بتحديد الشيكات المصروفة وعددها والشيكات الجديده وعددها والشيكات المحذوفة وعددها

الاستعلامات :

يوجد استعلامين بالقاعدة هما

استعلام qryTable وهو خاص بعرض الجداول في النووذج الرئيسي - مخفي ( لا تقم بالعبث به او حذفه لانك لن تستطيع مشاهدة الجداول )

استعلام qrycheques وهو عبارة عن استعلام البحث عن غير المتطابقات بين الجدولين ( لك حرية الخيار في ابقاءه او حذفه وقد وضعته للفائدة فقط )

الوحدات النمطية :

يوجد وحدة نمطية zahrah_PickFile خاصة بعملية استيراد بيانات من ملف الاكسيل الى جدول في الاكسيس وقيمته الافتراضية هو ImportTable

ملاحظة هامة جدا 1 : البرنامج يعتمد اعتمادا كليا على ملف الاكسيل واي تغيير في اسماء حقول الاكسيل قد لا يعمل البرنامج والسبب ان المقارنة تتم بعد استيراد اسماء الحقول الى جدول ImportTable في الاكسيس ويمكنك تغيير البيانات في ملف الاكسيل بما تريد عدى اسماء الحقول لا تقم بتغييرها .

ملاحظة 2 : البرنامج جاهز لعملية الاستيراد فعند فتح قاعدة البيانات قم بعملية استيراد البيانات من ملف الاكسيل NEW.xls المرفق من ورقة البيانات رقم 1

ثم اتبع الخطوات السابقة وانظر النتائج .

وهذا الملف بعد التعديل

Abo_Malk_UP.rar

#15

السلام عليكم ورحمة الله وبركاته .. وبعد:

أولاً: أعتذر بشدة عن تأخري في الرد.

ثانياً: يعجز لساني عن شكرك يا أخت زهرة ، كنت أعلم أن جوابك لسؤالي سوف يكون كاملاً وبدون أي تقصير فهذا ما وجدته في جوابك المبارك وبالتفصيل الملل.

كان جوابك هو ما أردته بالفعل بل أني استفدت اشياء أخرى غيرها... فجزاك الله عنا كل خير

ولا أنسى بالشكر الجزيل أخي علي بخيت وإيهاب عثمان على جهودهم المباركة في الرد والتفاعل ...

هذا الموضوع مغلق.

مواضيع مشابهة