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

استخراج قيمة السجل الأول


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

7 ساعات مضت, صالح حمادي said:

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

 

اهلا بك اخي صالح ...لا اعلم ان كنت تقصد هذا فانت استاذنا .

انا اضع هذه الدالة في مربع النص     DLookUp("[Fld]","Tbl","id=1)=

حيث Fld هو الحقل  , Tbl اسم الجدول .

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

شكرا لك أخي محمد نجار على الرد.

1 ساعه مضت, محمدنجار said:

DLookUp("[Fld]","Tbl","id=1)=

هذا الكود هو لإستخراج قيمة الحقل  [Fld] من الجدول Tbl عندما تكون قيمة الحقل id=1 هذا الكود ينفع في حالات و حالات أخرى لا ينفع. يعني أنه ليس بالضرورة id=1 هو السجل الأول.

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

2 ساعات مضت, صالح حمادي said:

شكرا لك أخي محمد نجار على الرد.

هذا الكود هو لإستخراج قيمة الحقل  [Fld] من الجدول Tbl عندما تكون قيمة الحقل id=1 هذا الكود ينفع في حالات و حالات أخرى لا ينفع. يعني أنه ليس بالضرورة id=1 هو السجل الأول.

احسنت التوضيح اخي صالح ..نحن بانتظار الحل ..

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

السلام عليكم :rol:

 

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

 

جعفر

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

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

سوف تجد في المرفق جدول tbl و نموذج به زر أمر و مربع نص غير منظم.

أريد عند الضغط على الزر يظهر في مربع النص اسم السجل الأو ل لحقل nom الموجود في الجدول tbl يعني النتيجة راح تكون "صلاح"

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

معذرة هذا هو المرفق

استخراج قيمة السجل الأول.rar

2 دقائق مضت, عبد الفتاح كيرة said:

Docmd . Gotorecord

اخي عبد الفتاح مشكور على المشاركة.

أنا أريد أن أضع النتيجة في مربع نص غير منظم

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

السلام عليكم :rol:

 

أخي صالح:

عمل قواعد البيانات ، بإختصار :

ادخال بيانات ، فرز وتصفية لإخراج البيانات ،

فلا يوجد شئ اسمه اول سجل ولا آخر سجل ،

لإستخراج سجل معين ، يجب علينا الفرز / التصفية ،

الفرز يكون بقيمة حقل / حقول ، والتصفية كذلك يكون بقيمة حقل / حقول ،

لهذا السبب ، وجود حقل ترقيم تلقائي AutoNumber مفهرس ، مهم لهذا السبب ،

حقل الرقم التلقائي في الواقع هو مهم في سرعة الوصول الى اي سجل ، ويجب ان يكون في كل جدول ، بالاضافة الى حقل تاريخ تلقائي (القيمة الافتراضية Now ) :rol:

 

والآن الى سؤالك :rol:

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

410.Clipboard01.jpg

 

الظاهر ان اكسس يحتفظ بتسلسل الادخال ، حتى ولو تمت عملية الفرز ،

واللي عملته اني وضعت حقلين في النموذج باسم nom_1 و nom_11 ، استعملت الكود التالي على زر cmd_1:

Private Sub cmd_1_Click()

    Dim rst As DAO.Recordset

    
    mySQL = "SELECT TOP 1 nom FROM tbl"
    Set rst = CurrentDb.OpenRecordset(mySQL)
    Me.nom_1 = rst!nom
    
    mySQL = "Select * FROM tbl2"
    rst.MoveLast: rst.MoveFirst
    Me.nom_11 = rst!nom

	rst.close : set rst = nothing
End Sub

الكود الاول يأخذ قيمة واحدة من الجدول الاول (والذي بدون فرز) ،

بينما الكود الثاني يأخذ الجدول الثاني ، ثم يأخذ اول قيمة منه ،

والنتيجة كانت "صلاح" :rol:

 

ولكن ، الافضل دائما اضافة حقل الرقم التلقائي ، والذي تستطيع ان تعمل الفرز عن طريقه ، للوصول الى اي سجل مطلوب ، والنتيجة تكون دقيقة :rol:

فعند إضافة حقل الترقيم التلقائي ، فان اكسس يعطي الرقم حسب الادخال الاصل وليس حسب فرز الجدول ، فيكون الجدولان هكذا:

410.Clipboard02.jpg

 

هذا هو الكود للحقل nom_2 في النموذج ، وهي الطريقة الصحيحة في العمل:


    mySQL = "Select * From tbl2 Order by Auto_ID"
    rst.MoveLast: rst.MoveFirst
    Me.nom_2 = rst!nom
    

 

410.Clipboard03.jpg

جعفر

 

410.استخراج قيمة السجل الأول.accdb.zip

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

و عليكم السلام و رحمة الله و بركاته أخي جعفر هذا الحل يفي بالغرض بارك الله فيك و جزاك الله عنا كل خير.

بالنسبة لحقل الترقيم التلقائي فلا شك أنه مهم جدا.

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

شكرا جزيلا أستاذ جعفر

 

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

مرحبا استاذ صالح

مشاركة مع اخوتي

جرب

لكي تعرف اول سجل في الجدول وكما هو بدون تاثيرات الفرز و بعد الاستيراد استخدم

=DLookUp("[nom]","tbl")

ولكي تعرف اول سجل بعد الفرز (الترتيب) اعمل استعلام مطبقا به الترتيب حسب الاختيار ثم احفظه وليكن باسم query1  واستخدم

=DLookUp("[nom]","Queryl")

هذا والله اعلم

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

6 دقائق مضت, صالح حمادي said:

شكرا جزيلا أستاذ رمهان الكود يعمل بشكل جيد

حياك الله

وللامانة كان هذا مفتاح الحل

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

الظاهر ان اكسس يحتفظ بتسلسل الادخال ، حتى ولو تمت عملية الفرز ،

ومع اني اشرت اليه في مشاركة لا اعلم مكانها بانه يجب ان لا ننظر لمكان السجلات في الجدول ! 

ولكن هل ممكن تكون احد وسائل الحماية استاذ جعفر ؟؟ هل وصلت لك مايدور في ذهني ؟؟

تحياتي

 

 

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

14 دقائق مضت, رمهان said:

ولكن هل ممكن تكون احد وسائل الحماية استاذ جعفر ؟؟ هل وصلت لك مايدور في ذهني ؟؟

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

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

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

يعني كل واحد ينظرلها من منظور. فأنا حسب حاجتي لها الآن أعتبرها أحد الميزات المساعدة. و ربما أغير رأيي إن واجهتني نفس المشكلة.

و الله أعلى و أعلم

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

اخي صالح

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

او يكون كذلك استخدام اعلى قيمة = 1 ليظهر السجل الاول فقط في مربع القائمة 

تحياتي

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

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

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information