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

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

قام بنشر

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

لدي كود برجاء من اساتذة الأكسس تعديله للمطلوب 

(SELECT MAX(G n) FROM جدول تسجيل الكتب)

المطلوب من هذا الكود الموجود في التقرير اظهار أخر رقم في الحقل G n الموجود بجدول تسجيل الكتب 
اعلم أنه من الخطأ الكبير تسمية اسم جدول باللغة العربية ولكن هذه المعلومة كانت متأخرة لي ويصب تعديل قاعدة البيانات بأكملها حاليا مع تغيير اسم الجدول 

برجاء تعديل هذا الطلب 
(SELECT MAX(G n) FROM جدول تسجيل الكتب)

ولكم جزيل الشكر 

 

قام بنشر

اذا كنت تريد إظهار أكبر قيمة فقط فالافضل استخدام دالة DMax 

يمكنك نسخ مايلي الى مصدر بيانات مربع النص

=DMax("G n";"جدول الكتب")

اذا جصل خطأ قد يكون بسبب الفاصلة المنقوطة ";" حولها لفاصلة عادية كهذه ","

قام بنشر
15 ساعات مضت, منتصر الانسي said:

اذا كنت تريد إظهار أكبر قيمة فقط فالافضل استخدام دالة DMax

تمام ولكن اسم الجدول هو جدول تسجيل الكتب  وليس جدول الكتب 

لأنه يعطي هذه الرسالة كما في الصورة 
جزاكم الله خيرا 

11.JPG

قام بنشر

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

في المسميات العربية والتي دائماً ننبه من خطأ وخطورة استعمالها في الحقول والجداول من جهة ، ومن جهة أخرى الفصل بمسافة بين اسماء الحقول والجداول بدلاً من استعمال إشارة "_" ، يجب استعمال الحاصرتين [] لتمييز اسماء الحقول والجداول بالعربية ..

جرب هذا التعديل :-

SELECT MAX([G n]) FROM [جدول تسجيل الكتب]

 

قام بنشر
38 دقائق مضت, Foksh said:

في المسميات العربية والتي دائماً ننبه من خطأ وخطورة استعمالها

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

2.JPG

قام بنشر
14 دقائق مضت, أبو أحمد said:

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

2.JPG

ابعت ملفك أخي الكريم

قام بنشر
4 دقائق مضت, Foksh said:

بعت ملفك أخي الكريم

انظر لهذه الرسالة يمكن 

انا اريد أضع مع معيار التحديث أن يكون في أعلى رقم 

3.JPG

  • Confused 1
قام بنشر

هل استخدمت التجميع في الاستعلام ؟؟؟؟

اذا لم يكن هناك دوال حسابية في الاستعلام ، فحاول استخدم التجميع ، وفي الحقل G N ، في الحقل Total = Max ...

غير ذلك ، أعتذر لعدم إفادتك دون ملف مرفق !!!!

قام بنشر
3 ساعات مضت, Foksh said:

غير ذلك ، أعتذر لعدم إفادتك دون ملف مرفق !!!!

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

1.في النموذج F_GardBooks

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

SELECT MAX([G N]) FROM [جدول تسجيل الكتب]

2. عند تسجيل الرقم العام للكتاب في الحقل txtSearch

يتم تحوبل حالة الكتب من الفاقد إلى موجود (زر تحديث) كما هو موجود

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

MsgBox " الكتاب تالف في عملية الجرد سابقة لسنة " & from_to

3. في التقرير وضع في المعيار
(SELECT MAX(from_to) FROM T_Gard)

في العمود

G N  مع تعديل ما يلزم (اسم الجدول "جدول تسجل الكتب"، واسم العمود "G N

وجزاكم الله خيرا وأشكركم لسعة صدركم  هلما بأن القاعدة على أكسس 2003 

القاعدة.rar

قام بنشر
8 دقائق مضت, أبو أحمد said:

1.في النموذج F_GardBooks

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

SELECT MAX([G N]) FROM [جدول تسجيل الكتب]

2. عند تسجيل الرقم العام للكتاب في الحقل txtSearch

يتم تحوبل حالة الكتب من الفاقد إلى موجود (زر تحديث) كما هو موجود

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

MsgBox " الكتاب تالف في عملية الجرد سابقة لسنة " & from_to

3. في التقرير وضع في المعيار
(SELECT MAX(from_to) FROM T_Gard)

في العمود

G N  مع تعديل ما يلزم (اسم الجدول "جدول تسجل الكتب"، واسم العمود "G N

ما فهمت شي من المطلوب بشكل واضح للأسف ، ولكن من خلال رؤية بنية الإستعلام ، استعمل الشرط التالي في الحقل G N :-

(SELECT MAX([G N]) FROM [جدول تسجيل الكتب])

 

بدلاً من عبارة  ( [أعلى رقم جرد] ) .

:biggrin: على ما أعتقد إذا كان فهمي للوضع صحيح ..

 

وأخبرنا بالنتيجة

قام بنشر (معدل)
48 دقائق مضت, Foksh said:

1.في النموذج F_GardBooks

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

SELECT MAX([G N]) FROM [جدول تسجيل الكتب]

 

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

وفي حالة كانت حالة الرقم العام لهذا الكتاب فاقد من سنوات جرد سابقا  تظهر العبارة التالية "هذا الكتاب كان فاقد في سنة الجرد      /       "
أرجو أكون وصلت الفكرة 

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

تم تعديل بواسطه أبو أحمد
قام بنشر

المطلوب الأول حسب ما فهمت ، استبدل الاستعلام في الزر "تحويل حالة هذه الكتب ..." بالاستعلام التالي
 

CurrentDb.Execute "UPDATE [جدول تسجيل الكتب] SET CaseBook = 'مفقود' WHERE [G N] = (SELECT MAX([G N]) FROM [جدول تسجيل الكتب]);", dbFailOnError

 

المطلوب الثاني غير مفهوم ..

وأتمنى منك التوضيح بشكل مفهوم أخي الكريم :wub: 

قام بنشر (معدل)
22 ساعات مضت, Foksh said:

لمطلوب الثاني غير مفهوم ..

هذا الكود موجود  في زر أمر "تحويل حالة هذه الكتب الى فاقد"  بالنموذج
DoCmd.RunSQL "UPDATE [جدول تسجيل الكتب] SET [جدول تسجيل الكتب].CaseBook = ""فاقد"" " & vbCrLf & _

"WHERE ((([جدول تسجيل الكتب].CaseBook)=""موجود"") AND (Not ([جدول تسجيل الكتب].title) Is Null) AND (([جدول تسجيل الكتب].searinumber) Between [forms]![F_GardBooks]![text] And [forms]![F_GardBooks]![text2])) OR ((([جدول تسجيل الكتب].CaseBook)=""موجود"") AND (([جدول تسجيل الكتب].title) Is Null) AND (([جدول تسجيل الكتب].searinumber) Between [forms]![F_GardBooks]![text] And [forms]![F_GardBooks]![text2]));"

وهو يعني تحويل حالة الكتب بجدول تسجيل الكتب من موجود إلى فاقد في الكتب التي تقع بين الرقم الموجود "نص1" إلى الرقم الموجود في "نص2" في النموذج الذي بعنوان  F_GardBooks  

 المطلوب من حضرتك 

1.     اضافة اليه المعيار في أحدث جرد MAX([G N])

2.     تحويله إلى استعلام (في صورة تصميم) (عمل استعلام عليه)

أرجو أن تكون الفكرة وصلت وجزاكم الله خيرا

تم تعديل بواسطه أبو أحمد
قام بنشر
في 16‏/6‏/2025 at 20:14, Foksh said:

وأتمنى منك التوضيح بشكل مفهوم أخي الكريم

أستاذي الكريم 

المطلوب اضافة لهذا التعبير عند تعديل حالة الكتب تحويلها الى فاقد وتعديل رقم الجرد هو أيضا أحدث رقم 
زلو في امكانية وعمل استعلام أيضا له (استعلام تحديث) 
علما بأنه موجود في زر أمر "تحويل حالة هذه الكتب الى فاقد"  بالنموذج الذي بعنوان  F_GardBooks 
DoCmd.RunSQL "UPDATE [جدول تسجيل الكتب] SET [جدول تسجيل الكتب].CaseBook = ""فاقد"" " & vbCrLf & _

"WHERE ((([جدول تسجيل الكتب].CaseBook)=""موجود"") AND (Not ([جدول تسجيل الكتب].title) Is Null) AND (([جدول تسجيل الكتب].searinumber) Between [forms]![F_GardBooks]![text] And [forms]![F_GardBooks]![text2])) OR ((([جدول تسجيل الكتب].CaseBook)=""موجود"") AND (([جدول تسجيل الكتب].title) Is Null) AND (([جدول تسجيل الكتب].searinumber) Between [forms]![F_GardBooks]![text] And [forms]![F_GardBooks]![text2]));"

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

قام بنشر
22 ساعات مضت, أبو أحمد said:

اضافة اليه المعيار في أحدث جرد MAX([G N])

بهذا الشكل ، سيكون علينا جلب أكبر قيمة للحقل G N في جدولك ، ثم تحديث قيم سجلاته بشرطين إما كاملة اذا لم يتم تحديد قيم محددة ، أو للقيم التي تم تحديدها برقمين ( من - إلى ) صحيح ؟؟

اذا كان ما فهمته صحيحاً ، فسيتم تعديل الاستعلام في كود الزر بالشكل التالي :-

Private Sub أمر8_Click()
 If MsgBox("أنت على وشك تحديث حالة جميع الكتب  باليومية                                          من كتب موجودة إلى كتب فاقد                              " & vbCrLf & _
    "لتأكيد الأمر أضغط موافق ، ولإلغائه أضغط إلغاء", _
    vbInformation + vbOKCancel + vbMsgBoxRight, _
    "                         تأكيد تنفيذ الأمر ") = vbOK Then
    DoCmd.SetWarnings False
    

Dim maxGN As Variant
Dim filter As String

If IsNull(Forms!F_GardBooks!text) Or IsNull(Forms!F_GardBooks!text2) Then
    filter = "[CaseBook]='موجود'"
Else
    filter = "[CaseBook]='موجود' AND searinumber BETWEEN " & Forms!F_GardBooks!text & " AND " & Forms!F_GardBooks!text2
End If

maxGN = DMax("[G N]", "[جدول تسجيل الكتب]", filter)

If Not IsNull(maxGN) Then
    DoCmd.RunSQL "UPDATE [جدول تسجيل الكتب] SET CaseBook = 'فاقد' " & _
                 "WHERE [CaseBook]='موجود' AND [G N]=" & maxGN & ";"
End If

    DoCmd.SetWarnings True
End If
MsgBox "تم تحديث البيانات بنجاح والحمد لله"
End Sub

 

أما من خلال استعلام SQL فلم أفلح في ضبط الأمور لوجود شرطين أو أكثر ،

لذا قد يكون هناك حل يعتمد على استعلام مبني على استعلام آخر ، بحيث :-

1. انشاء استعلام جديد ولنفترض باسم qry_GetMaxGN_Conditional علشان نحصل على أعلى قيمة للحقل G N  و ( مع أو بدون ) الشرط الثاني وهو تحديد قيمة لكتب محددة ...

SELECT MAX([G N]) AS MaxGN
FROM [جدول تسجيل الكتب]
WHERE CaseBook = 'موجود'
    AND (
        ([Forms]![F_GardBooks]![text] IS NULL OR [Forms]![F_GardBooks]![text2] IS NULL)
        OR
        (searinumber BETWEEN [Forms]![F_GardBooks]![text] AND [Forms]![F_GardBooks]![text2])
    );

 

2. ننشء استعلام التحديث الذي سيتم التحديث للسجلات من خلاله بناءً على السجلات التي حققت شرط الإستعلام السابق :-

UPDATE [جدول تسجيل الكتب] SET CaseBook = 'فاقد'
WHERE [G N] = (SELECT MaxGN FROM qry_GetMaxGN_Conditional)
    AND CaseBook = 'موجود';

ولنفترض ان اسمه سيكون على سبيل المثال qry_UpdateCaseBook .

ومن خلال زر يتم استدعاؤه بالشكل التالي :-

DoCmd.SetWarnings False
    DoCmd.OpenQuery "qry_UpdateCaseBook"
DoCmd.SetWarnings True

 

ملفك بالتجربتين :-

القاعدة.mdb

 

قام بنشر
56 دقائق مضت, Foksh said:

هذا الشكل ، سيكون علينا جلب أكبر قيمة للحقل G N في جدولك

أستاذي الكريم  ... واضح أنني لم استطع توصيل ما اريده 
كنت عاوز اضيف الى التعبير الموجود في زر الامر بالنموذج بعد أن يحول جميع حالة الكتب من موجود الى فاقد 
أضيف إليه أيضا وتحويل رقم الجرد (لهذه الكتب التي حالتها موجود) إلى أعلى قيمة جرد (أخر رقم جرد) بدلا من 1 مثلا في المثال إلى 3 حيث هو أعلى رقم جرد وذلك للكتب التي حالتها موجود فقط
بمعنى آخر يقوم بعمليتين للكتب التي حالتها موجود فقط
1. يحول الحالة من موجود إلى فاقد
2. ويحول رقم الجرد إلى أعلى رقم موجود (في المثال الذي ارسلته يكون 3)
 

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

بحيث أعرف الفرق بين التعبير الموجود في زر الأمر وكيفية شكله في صورة استعلام (SQL)

والله أنا أسف لفشلي في توصيل ما كنت أصبو إليه 

قام بنشر

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

السؤال بصيغة أخرى 

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

مرفق مثال السابق 

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