اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

كيف أخزن تعديلات السجلات في جدول مستقل


أبوليان

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

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

أخواني ... أريد أن أخزن تعديل السجل في جدول مستقل .. بمعنى إذا تم التعديل على سجل ما

أريد أن يظهر في الجدول المستقل مايلي:

* الحقل قبل التغيير ــ الحقل بعد التغيير حتى وإن كان في أكثر من حقل

* من الذي قام بالإضافة ــ من الذي قام بالتغيير (( مهمه جداً لنفرض أن الصلاحيات هي لإبن مسقط ))

* تاريخ الإضافة ـــ وتاريخ التعديل

* وقت الإضافة ــ وقت التعديل

أنا بحثت في المنتديات ووجدت مثال أجنبي لكني قليل الخبرة في اللغة الإنجليزية

سأرفقه لعل من إخواننا في المنتدى يشرحه أو يرشدني إلى ماأريد

جزاكم الله كل خير

أبو ليان :fff:

___________________________________.rar

رابط هذا التعليق
شارك

الشرح :

البرنامج يعمل استدعاء لدالة دائماً هي المسؤولة عن تعبئة جدول التعديلات مع تمرير بيانات التعديل المطلوبه لها

WriteAuditUpdate(txtTableName, lngRecordNum, txtFieldName, OrgValue, CurValue)

هذه الداله مسؤوله عن عمليات التحديث و يتم تمرير المتغيرات التالية إليها

1- txtTableName ... اسم الجدول الذي حُدثت بياناته

2- lngRecordNum ... رقم الصف ( إما أن تكون ترتيبه في الجدول أو قيمة حقل المفتاح الرئيسي لتمييز الصف الذي عُدلت بياناته )

3- اسم العمود الذي عًدلت بياناته .

4- OrgValue .. القيمه القديمه أو الأصلية Original Value

5- CurValue ... القيمة الحديثة ... Current Value

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

أعتقد إن الانجليز يميلون أحيانا إلى التعقيد و التطويل و أنه يمكن عملها بطريقة أبسط من الملف الموجود

رابط هذا التعليق
شارك

مشرفنا الغالي

أشكر ردك السريع وشرحك اللطيف

جزاك الله ألف خير ....

وأود أن ترفق مثال بالطريقه التي قلت أنها الأسهل

لأن الإنجليز أحياناً يميلون إلى التطويل والتعقيد كما قلتم...

واسأل الله أن ينفع بعلمك المسلمين ,,,

أبو ليان

تم تعديل بواسطه الإمبراطور66
رابط هذا التعليق
شارك

يستحسن إرفاق قاعدة بياناتك في هذه الحالة ...

حتى تتحد مجهوداتنا في نفس البرنامج (أنت بتصميمك للجداول و النماذج و أنا بتعديلي عليها ) ... دون أن يعمل كل منا على برنامج مختلف ... :smile2:

رابط هذا التعليق
شارك

قاعدة بياناتك تحتوي على العديد من الجداول و النماذج ... أرجو الآتي :

1- تحديد النموذج أو النماذج المطلوب تسجيل بيانات تعديلاتها .

2- تصميم جدول التعديلات و إبلاغي باسمه

رابط هذا التعليق
شارك

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

جزاك الله الف خير إستاذي Dream_Works :clapping:

وآسف على تأخرى لعدم تمكني من دخول المنتدى اليومين الماضيه

إنت أعمل على النموذج المسمى ITEMS وأنا سوف اعمل على باقي النماذج ( هل هذا ممكن أم لا )

مع العلم أن جدول التعديل إسمه alamari ولك تعديل ماتراه مناسباً

المستخدم وكلمة السر : 1

اللهم بارك له وعليه والمسلمين أجمعين

أبو ليان :fff:

ali.rar

رابط هذا التعليق
شارك

بما أنك مستعجل قليلاً ... فسأخبرك بما توصلت اليه الى الآن (الحل غير مكتمل)

أضفت الوحدة النمطية FillItems ووضعت الكود المطلوب بها و الذي تتم مناداته بالحدث BeforeUpdate للنموذج

ما ينقصني حالياً ... هو استخدام وسيلة ممتازة لاستخراج اسم الجدول من الكنترول دون تحميل مجهود يُذكر على المعالج ... هذا غير أن الكود لم أختبره يشكل جيد ... أرجو منك رؤيته و إبلاغي بملاحظاتك

Public Sub FillItems(StrFormName As String)
Dim ctrl As Control, rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("alamari")
For Each ctrl In Forms(StrFormName)
With ctrl
Select Case .ControlType
Case acTextBox, acComboBox, acCheckBox, acListBox
If .ControlSource <> "" And .Value <> .OldValue Then
' Fill The Table
rs.AddNew
rs.Fields("اسم الحقل") = .ControlSource
rs.Fields("القيمة الأصلية") = .OldValue
rs.Fields("القيمة المتغيرة") = .Value
rs.Fields("اسم المستخدم") = acbCurrentUser()
rs.Fields("التاريخ و الوقت") = Now
rs.Update
End If

End Select
End With
Next ctrl
rs.Close
End Sub

ملاحظات :

1- تمت إضافة حقل في الجدول يحتوي على اسم الحقل المعدله بياناته

2- مازال البحث عن طريقة شاملة لتعبئة اسم الجدول سارياً حتى يتم الاعتماد على هذا الكود لكل النماذج

3- أسماء الحقول الموجودة بالكود مختلفة لذلك أرجو تعديلها حسب المطلوب

4- الكود غير مكتمل و لم يتم اختباره بشكل جيد

رابط هذا التعليق
شارك

مشرفنا الغالي Dream_Works

أولاً آسف جداً على إزعاجكم

ثانياً أشكر ردكم الكريم وشرحكم

لقد جربت الكود ولكن لم يفي بالغرض الكامل .. طبعاً لعدم إكتماله

اكرر شكري لشخصكم الكريم وأنا في إنتظار إجابة شافية منكم أو أي شخص من المنتدى العزيز

تحملني يالغالي.... تراني أخوك الصغير ؟؟؟؟؟!!!!

بارك الله فيك والمسلمين أجمعين

أبو ليان

رابط هذا التعليق
شارك

مشرفنا الغالي

شاكرين سرعة ردكم

لقد جربت الكود وأستدعيت الوحدة النمطية FillItems وتم مناداته بالحدث BeforeUpdate للنموذج

والنموذج هنا إسمه alamari ولكن إذا عدلت في جدول ما لاتظهر التغيرات مع العلم أنه لايوجد ربط في الجدول

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

أبو ليان

ali.rar

تم تعديل بواسطه الإمبراطور66
رابط هذا التعليق
شارك

أخي الكريم

أرجو منك القيام بالتعديلات التالية في البرنامج:

تعديل أسماء الحقول الموجودة في الكود حتى تكون مطابقة تماماً لأسماء الحقول في الجدول

rs.Fields("اسم الحقل") = .ControlSource
rs.Fields("قيمة الحقل الأصلية") = .OldValue
rs.Fields("قيمة الحقل المتغيرة") = .Value
rs.Fields("من قام بالتعديل") = acbCurrentUser()
rs.Fields("تاريخ ووقت التعديل") = Now
يجب إضافة الحقل "اسم الحقل" في جدول ال Alamari ... يجب أن تكون أسماء الحقول في الكود متطابقة تماماً مع أسماء الحقول في الجدول 2- هذا هو الكود الصحيح لمناداة الوحدة النمطية
Call FillItems.FillItems(Me.name)

3- يجب تجربة الكود على فورم آخر غير ال AlAmari هذا إذا كان على حسب فهمي أن جدول Alamari هو المسؤول عن تسجيل التعديلات ... حتى تتم التجربة بشكل صحيح ... جرب نسخ أي نموذج آخر و في الحدث BeforeUpdate للنموذج استدعِ الكود من الوحدة النمطية

يتبقي فقط حقل "اسم الجدول" الذي سأضيفه إنشاء الله قريبا في الكود ...

أرجو أن تقوم بتنفيذ تعليماتي بنفسك للأسباب التالية

1- حتى تتعلم على تصميم البرامج

2- لأن قاعدة بياناتك كبيرة بعض الشيء فلا نريد تنزيل نسخة منها على السيرفر ... بين الحين و الآخر ... أو مسح النسخ السابقة

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

4- تعليماتي بسيطة نسبياً و يمكنك عملها بسهولة و بسرعة

إذا لم تستطع تنفيذ تعليماتي ... أرجو إبلاغي بذلك

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

بالتوفيق

تم تعديل بواسطه Dream_Works
رابط هذا التعليق
شارك

مشرفنا الغالي Dream_Works

الله يعطيك مائة الف عافية :clapping::clapping:

الآن كل شئ تمام ولم يتبقى إلا إسم الجدول فقط

للمعلومية أعتمدت مسميات الحقول التي في الكود الأول

جزاك الله كل خير ... اللهم فرج عنه كربه والمسلمين أجمعين

أبو ليان :fff:

رابط هذا التعليق
شارك

الأخ العزيز

آسف جداً على الإزعاج

في حقل إسم المستخدم يطلع إسم المستخدم للويندوز أو الجهاز

والذي اريده أن يطلع إسم مستخدم البرنامج عندما تدخل على البرنامج بإسم المستخدم وهو حالياً 1

شاكرين سعة صدركم لنا

ابو ليان

تم تعديل بواسطه الإمبراطور66
رابط هذا التعليق
شارك

أخواني المشرفين واعضاء المنتدى الكريم

لتعم الفائدة إنشاء الله فقد تم الحل على هذا الرابط من الأخت زهرة مشكورة

والشكر موصول بالأخ Dream_Works

http://www.arabteam2000-forum.com/index.ph...st&p=731140

أبو ليان

رابط هذا التعليق
شارك

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