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

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

مغلق
بدأه اسماعيل ارشاد في 22 مايو 2007 · 9 رد · 758 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قمت بعمل جدول للنقل بين الأقسام وقمت بنقل موظف من قسم إلى قسم آخر وأيضاً نفس الموظف قمت بنقله مرة أخرى إلى قسم آخر

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

______________18.rar

تم تعديل هذه المشاركة بواسطة اسماعيل ارشاد في 22 مايو 2007 في 20:45

أقم صلاتك ... قبل مماتك ...

#2

عملت استعلام باسم qryShowLastDatePerEmployeeNumber و استخدمته في الاستعلام last update

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

تحيايتي

Employees.rar

#3

نعم هذا هو المطلوب لكن لماذ لا يظهر جميع الموظفين في الإستعلام النهائي المفروض ظهور جميع الموظفين الموجودين في جدول الموظفين كل شخص في قسمه والموظفين اللي نقلوا إلى أقسام أخرى ظهور آخر قسم له وأنا تأكدت من نوع العلاقة وهي جميع السجلات من جدول الموظفين وتلك السجلات الموجودة في جدول النقل بين الأقسام

أقم صلاتك ... قبل مماتك ...

#5

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

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

أقم صلاتك ... قبل مماتك ...

#6

القسم: IIf((IsNull([القسم الجديد])=خطأ) And ([القسم الجديد]<>[جدول الموظفين]!sector);[القسم الجديد];[جدول الموظفين]!sector)

إذا كان حقل القسم الجديد خالي عندها شوف القسم الجديد هل مساوى للقسم في جدول الموظفين فعندها اختار القسم من جدول الموظفين .

هل هذا صحيح أم أنا خاطئ في فهمي لهذا الكود

أما بالنسبة للكود تبع الإستعلام فلا يمكنني فتحة تطلع رسالة تقول 3 احتمالات اخرها ربما استخدمت عامل غير موجود أو استخدمت >< فكيف أتمكن من فتح الكود في الاستعلام وأنا آسف على الإطالة لكن بودي أفهم المثال جيداً

أقم صلاتك ... قبل مماتك ...

#7

حياك الله اخي:

بالنسبة للشراظ IIF فهي كالتالي:

1- اذا كان حقل القسم الجديد يحتوي على بيانات و في نفس الوقت له قيمة مختلفة عن بيانات القسم في جدول الموظفين. عندها اعتمد قيمة حقل القسم الجديد.

2- غير ذلك اعتمد قيمة حقل القسم في جدول الموظفين.

بالنسب لكود الاستعلام فهو الاتي:

حاولت اعادة صياغة اسماء الحقول و الجدول الي اللغة الانجليزية وذلك من اجل وتضوح الكود:

SELECT Transfer.EmployeeID, Transfer.SectionID, Transfer.TransferDate
FROM Transfer
INNER JOIN
(SELECT Transfer.EmployeeID, Max(Transfer.TransferDate) AS LastTransferDate
FROM Transfer
GROUP BY Transfer.EmployeeID) As Temp
ON
((Transfer.EmployeeID=Temp.EmployeeID)
AND
(Transfer.TransferDate = Temp.LastTransferDate((;

اتركك مع الكود و اذا اردت توضيح اكثر اعلمني

تحياتي

Whale

#8

الكود الأول فهمته مزبوط

بالنسبة للكود الثاني :

SELECT Transfer.EmployeeID, Transfer.SectionID, Transfer.TransferDate

FROM Transfer

اختار رقم الموظف والقسم وتاريخ النقل من جدول النقل

INNER JOIN

جوين يعني ربط لكن وايش تطلع انر؟

(SELECT Transfer.EmployeeID, Max(Transfer.TransferDate) AS LastTransferDate

FROM Transfer

اختار رقم الموظف من آخر تاريخ من جدول النقل ..... ؟

GROUP BY Transfer.EmployeeID) As Temp

ON

رتب الجدول على حسب الرقم الوظيفي as temp on ؟

((Transfer.EmployeeID=Temp.EmployeeID)

AND

(Transfer.TransferDate = Temp.LastTransferDate((;

ياريت تشرح الكود مثل ما عملت في الكود الأول وأنا آسف بصراحة أشغلتك معايا وخائف أرفع السكر والضغط عندك

أقم صلاتك ... قبل مماتك ...

#9
اقتباس
الكود الأول فهمته مزبوط

بالنسبة للكود الثاني :

SELECT Transfer.EmployeeID, Transfer.SectionID, Transfer.TransferDate

FROM Transfer

اختار رقم الموظف والقسم وتاريخ النقل من جدول النقل

صيح

اقتباس
INNER JOIN

جوين يعني ربط لكن وايش تطلع انر؟

انسى الانر واحذفها

اقتباس
(SELECT Transfer.EmployeeID, Max(Transfer.TransferDate) AS LastTransferDate

FROM Transfer

اختار رقم الموظف من آخر تاريخ من جدول النقل ..... ؟

GROUP BY Transfer.EmployeeID) As Temp

ON

رتب الجدول على حسب الرقم الوظيفي as temp on ؟

وهذه العبارة تعطي لنتائج الاستعلام اسم مؤقت الاوهو temp

وبعد ذلك يتم الربط بين جدول temp و جدول ل transfer بالشرط التالي:

اقتباس
((Transfer.EmployeeID=Temp.EmployeeID)

AND

(Transfer.TransferDate = Temp.LastTransferDate((;

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

تحياتي

Whale

#10

شكراً لك على هذا الشرح الوافي وإن شاء الله في ميزان حسناتك

أقم صلاتك ... قبل مماتك ...

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

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