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

تعبئة حقل حسب قيمة حقل آخر


nssj
إذهب إلى أفضل إجابة Solved by jjafferr,

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

في الملف المرفق المطلوب تعبئة حقلين بحسب القيمة الموجودة في حقل (nom)

أولا: حقل (TR) وهو: نعم أو لا، المطلوب وضع إشارة (نعم) حيث تكون القيم في (nom) ^ أو #^ أو @^

ثانيا: الحقل (Type1) وهو قائمة من أربع قيم، والمطلوب:

- إذا كان (nom) رقما أو ("*") أو ("^") تكون قيمة (Type1) [1 (مسند)]

- إذا كان (nom) (@) أو (@^) تكون قيمة (Type1) [2 (موقوف)]

- إذا كان (nom) (^) تكون قيمة (Type1) [3 (طريق)]

- إذا كان (nom) (#) أو (#^) تكون قيمة (Type1) [4 (زائد)]

MZtab.accdb

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

2 ساعات مضت, nssj said:

أولا: حقل (TR) وهو: نعم أو لا، المطلوب وضع إشارة (نعم) حيث تكون القيم في (nom) ^ أو #^ أو @^

جوابا عن الجزء الأول من السؤال بواسطة استعلام تحديث

 

MZtab.accdb

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

قياسا على ما تفضل به الأخ الكريم biskra

قمت بعمل استعلامات تحديث للجزء الثاني كما في الملف المرفق، ولكن:

1- هل يمكن دمج هذه الاستعلامات في استعلام أو إجراء واحد

2- لم تنجح معي الخطوة الأولى التي فيها "*"  "^"

3- وكذلك بالنسبة للخطوة الأولى المطلوب أن يحدث إلى (1) في حالة وجود أي رقم في حقل (nom)

MZtab2.accdb

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

1 ساعه مضت, nssj said:

- لم تنجح معي الخطوة الأولى التي فيها "*"  "^"

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

="*" Or "^" Or >="0"

 

تم تعديل بواسطه biskra
  • Like 1
رابط هذا التعليق
شارك

 

1 ساعه مضت, biskra said:

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

هل هذا يعني أنه لا يمكن دمج هذه الاستعلامات في استعلام واحد

ثم .. تبقى مشكلة تحديث "*" "^" 

حيث أنه في الملف الذي أرفقتَه  بعد تشغيل استعلام التحديث (type1) الخاص بـ "*"  "^" تبقى هذه الحقول كما هي ولم تتغير إلى (1) كما في الصورة

 

 

 

05.jpg

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

السلام عليكم 🙂

 

هذه مشاركتي ، وانا لا احب ان اجعل المعادلات تتزاحم في الاستعلام ، ويُصعب تعديلها لاحقا 🙂

في الاستعلام ، ننادي دالة لقيمة TR ، ودالة اخرى لقيمة Type ،

وبما ان القيمتين تعتمدان على قيمة الحقل nom ، فنرسل قيمته الى الدوال :

image.png.ab07dfec30394479fb1c51e39505c342.png

.

والنتيجة :

image.png.5d8df6c564c088f1585df9d9bfb021ee.png

.

والدوال:

Function TR_Check(str_N As String) As Boolean

    If str_N = "^" Or str_N = "#^" Or str_N = "@^" Then
        TR_Check = True
    End If
    
End Function


Function Type_Check(str_N As String) As String

    If IsNumeric(str_N) Or str_N = Chr(34) & "^" & Chr(34) Or str_N = Chr(34) & "*" & Chr(34) Then
        Type_Check = "[1 (مسند)]"
        
    ElseIf str_N = "@^" Or str_N = "@" Then
        Type_Check = "[2 (موقوف)]"
        
    ElseIf str_N = "^" Then
        Type_Check = "[3 (طريق)]"
        
    ElseIf str_N = "#^" Or str_N = "#" Then
        Type_Check = "[4 (زائد)]"
        
    End If
    
End Function

.

ويمكنك ان تأخذ معادلات الاستعلام ، وتضعها في استعلام تحديث 🙂

 

جعفر

1350.MZtab.accdb.zip

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

ونصيحة ، ابدا لا تستخدم هذه الخاصية في الجدول :

image.png.ab888226aa52db805cf5821abda06d55.png

.

وانما اعمل جدول خاص بقيم هذا الحقل ، ثم في الاستعلام تربط هذا الحقل بحقل الجدول الآخر.

 

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

عليه ، الدوال يجب تغييرها الى:


Function TR_Check(str_N As String) As Boolean

    If str_N = "^" Or str_N = "#^" Or str_N = "@^" Then
        TR_Check = True
    End If
    
End Function


Function Type_Check(str_N As String) As Long

    If IsNumeric(str_N) Or str_N = Chr(34) & "^" & Chr(34) Or str_N = Chr(34) & "*" & Chr(34) Then
        Type_Check = 1
        
    ElseIf str_N = "@^" Or str_N = "@" Then
        Type_Check = 2
        
    ElseIf str_N = "^" Then
        Type_Check = 3
        
    ElseIf str_N = "#^" Or str_N = "#" Then
        Type_Check = 4
        
    End If
    
End Function

 

جعفر

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

شكرا لك أخي الكريم  biskra .. الدالة الجديدة حلت المشكلة

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

أولاً: نصيحتك المشكورة: 

4 ساعات مضت, jjafferr said:

ابدا لا تستخدم هذه الخاصية في الجدول

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

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

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

وإذا كان صوابا ننطلق للنقطة الثانية:

كيف سيطبق الاستعلام الذي تفضلت به على الجدول

MZtab07.accdb

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

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

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

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

بقيت النقطة الأولى بخصوص تصميم الجدول وهل تصرفي صحيح

وهاهو الملف السابق مع استعلام التحديث الذي أنشأته

MZtab08.accdb

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

  • أفضل إجابة

السلام عليكم 🙂

 

ملاحظاتي:

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

image.png.d9e34af65388f6e0b064787b8e130e9b.png

.

2. وجميع الحقول لا تستخدم خاصية Lookup الجدول :

image.png.6918017949b718215f4e9b4505e92cf3.png

.

3. تسمية الجداول/النماذج/الاستعلامات/التقارير تبدأ بحرف/حروف تميزها عن بقية الكائنات (ما يكون عندك جدول واستعلام ونموذج وتقرير بنفس الاسم ، Type1 ، مثلا) ، وانما يكون tbl_Type1  و qry_Type1 ..) ، ونجعل الحقل مفهرس لأن عنده علاقة مع جدول آخر (انظر الصورة رقم 11) ،

ويجب ان يكون في جدول الحقلين Auto_ID  و Auto_Date (المسمى غير مهم ، وانما الاعدادات مهمة) ،

فبالاضافة الى فائدة Auto_ID لتسريع جلب بيانات الجدول ، و Auto_Date لمعرفة وقت عمل السجل ، فإن هذين الحقلين هما الاساس في تحويل جدولك الى SQL Server لاحقا اذا شئت :

image.png.5bbc70a0276c5b95aa412d501994a983.png

.

4. مصدر سجلات الحقل من جدوله tbl_Type1 ،  بينما مصدر بيانات السجل من جدول MZ_TAB  :

image.png.2de6d3eec50ecee15c2b5de53725c5bc.png

.

5. هكذا نرى في النموذج الاسم الذي نريد المستخدم ان يراه :

image.png.153699dc832010416d5a1016da5a076b.png

.

6. image.png.d8187eee9a9528cf429cf0109ecf1356.png

.

7. بعد ان يُدخل المستخدم قيمة للحقل nom ، يمكن استخدام الدوال لتحديث الحقلين الآخرين في النموذج :

image.png.cbee69bde74d217f883eb4d2b5964625.png

.

8. وبما انن نحدّث الحقلين تلقائيا ، فنقفلهم حتى لا يعبث بهما المستخدم : 

image.png.fdbb9ebdeeb74112fb6bb44ec2f58fa5.png

.

9. نوع القيمة المسترجعة من الدالة ، يجب ان تطابق تلك التي في الجدول :

image.png.daa851ed682d8d9db68a373208cb2f34.png

.

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

image.png.d4ed69799120769fc5f7cd9735196874.png

.

11. العلاقة بين الجدول الجديد والجدول/الجداول التي تكون فيها قيمة TYPE1 ،

اما العلاقة التي في الاعلى ، فمالك شغل في اولاد الجيران وعملهم 😁

image.png.505e3dc08d4ccebe857501b8faeec2ff.png

.

جعفر

1350.1.MZtab08.accdb.zip

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

منذ ساعه, kha9009lid said:

ملاحظات قيمة

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

فقد كان تركيزي هنا على تحديث حقل بناء على حقل آخر .. لكن ينبغي أولا أن أتأكد من أن هذه الحقول صممت بالطريقة الصحيحة

وينبغي أن أشرح أولا بعض الأمور المهمة .. فمثلا في موضوعنا هذا فإن حقل (nom) هو حقل مؤقت تم استيراده من وورد، وفيه عدة رموز وأرقام، سوف تترجم إلى معلومات في حقلين (TYPE1 - TYPE2) ولها دور في ترقيم المفتاح الأساسي (Mno) وبعد أداء هذه المهمة سوف يحذف ليتم بعد ذلك مراجعة معلومات الحقلين وتعديل ما فيها من خطأ وتعبئتهما يدويا في حالة إضافة الأحاديث الجديدة .. لذلك وضعتهما على شكل قائمة محصورة الاحتمالات للاختيار بينها وعدم الخطأ في إدخال المعلومات

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

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

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

شكرا شباب 🙂

 

كنت ابحث عن هذا الموضوع ، والحمدلله لقيته ، وفيه نصائح عن الامور التي تحتاجها لأي برنامج ، وكان لأخوي @kha9009lid  السهم الاكبر من هذه النصائح (شكرا اخوي خالد 🙂:

 

.

جعفر

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

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