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

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

قام بنشر

السلام عليكم

احبتي .. احاول جلب تاريخ من جدول tbl2 بما يماثله من جدول  tbl1 داخل الاستعلام ولكنه لا يستجيب

ايضا حاولت جلبه من خلال رسالة في النموذج ولكنه لا يستجيب

حاولت مرارا وتكرارا .. عجيب جدا .. شروط الدالة صحيحة ، وايضا المكتبات صحيحة

قد تكون المشكلة عندي فقط .. لذا اعرضه عليكم

 

d8.rar

قام بنشر
24 دقائق مضت, AbuuAhmed said:

قلة تركيز

ماشاء الله يا ابا احمد 

فكرتي دائما عندما يكون هناك اكثر من معيار يكون سطر لكل معيار اسهل في المراجعة

Dim i As Variant
Dim strWhere As String
strWhere = "[date2] = " & Format(Me.text1, "\#mm/dd/yyyy\#")
strWhere = strWhere & " and [usr_id]='" & [text2] & "'"
i = DLookup("[date2]", "[tbl2]", strWhere)
MsgBox i

الشايب

  • Like 1
قام بنشر
منذ ساعه, AbuuAhmed said:

ههههه جبتها بالصميم

أسأل الله حسن الخاتمة .. 

لكن سؤالي هي ان الحقول تاريخ .. وانت حولتها الى رقم .. 

مالسبب من امتناع جلبها كتاريخ .. مع اني كنت دوما استخدم ذاك التعبير ويعمل بشكل صحيح

DLookup("[date2]", "[tbl2]", "[date2] =#" & Me.text1 & "# And [user_id] ='" & Me.text2 & "'")

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

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

 

 

49 دقائق مضت, شايب said:

ماشاء الله يا ابا احمد 

فكرتي دائما عندما يكون هناك اكثر من معيار يكون سطر لكل معيار اسهل في المراجعة

Dim i As Variant
Dim strWhere As String
strWhere = "[date2] = " & Format(Me.text1, "\#mm/dd/yyyy\#")
strWhere = strWhere & " and [usr_id]='" & [text2] & "'"
i = DLookup("[date2]", "[tbl2]", strWhere)
MsgBox i

الشايب

اهلا باخوي الشايب

هذه اين يكون مكانها في الاستعلام  .. 

اعتقد يمكن عندما نحول هذه الاسطر الى دالة

آمل كرما تشغيل الاستعلام  بهذه  وارفاقه  ..

  • Like 1
قام بنشر
5 ساعات مضت, ابوخليل said:

هذه اين يكون مكانها في الاستعلام  .. 

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

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

    Dim i
    i = DLookup("[date2]", "[tbl2]", "[date2]& [user_id]=#" & Me.text1 & "# &'" & Me.text2 & "'")
    MsgBox i

او استخدام تعديل الاستاذ ابو احمد فهو الافضل

الشايب

  • Like 1
قام بنشر
8 ساعات مضت, ابوخليل said:

سؤالي هي ان الحقول تاريخ .. وانت حولتها الى رقم .. 

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

ملاحظة مهمة جدا إذا أردت تطبيق هذا المنهج :

لو أردت تحويل حقل تاريخ إلى رقم يمكنك استخدام الدالة cLng  هكذا ----->    clng(dateField)

ولكن لو أردت تحويل حقل تاريخ مع وقت استخدام الدالة cDbl     هكذا ----->    cDbl(dateField)

وذلك لأن الوقت يتم تخزينه بعد الفاصلة عندما يتم تحويل التاريخ إلى رقم بهذه الصورة >>  

image.png.a93d4a243fab2a75262d28144728c30c.png

  • Like 1
قام بنشر
8 ساعات مضت, ابوخليل said:

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

اخي الفاضل @ابوخليل حقول التاريخ أساساً هي حقول رقمية يكون الجزء الصحيح منها هو التاريخ (اليوم يساوي 1 صحيح) والكسور تمثل الوقت (الثانية تساوي 1 من 10000 تقريبا)

مثلما ذكر الأخ @شايب

2 ساعات مضت, شايب said:

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

هذا صحيح ليس للأسباب المذكورة فقط وإنما لأنك ننفذ دوال VBA مع محرك البيانات ولغة SQL

2 ساعات مضت, شايب said:

ويمكن الاستغناء عنها باستخدام صلة بين الجدولين في الاستعلام

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

الحل الأفضل من وجهة نظري هو إستخدام الإستعلامات الفرعية وهي سهلة جداَ 

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

مع تحياتي

d8.rar

  • Like 2
قام بنشر
26 دقائق مضت, منتصر الانسي said:

أرفق لكم مثال الأخ ابو خليل وقد قمت بعمل حل له بإستخدام استعلام فرعي 

 

شكرا اخوي منتصر .. تم الاستبدال .. لتصبح اللغة واحدة

انا اعرف ان دوال المجال لا يصلح توظيفها في الاستعلامات وكنت احذر منها ... الكثير الذين يشتكون من بطء الاستعلامات عند زيادة حجم البيانات والسبب هذه الدوال

ولكن الاستعلام الذي استخدمه خاص بشخص واحد لا تتجاوز سجلاته 30 سجلا ابدا

  • Like 1
قام بنشر
27 دقائق مضت, منتصر الانسي said:

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

لان هذا الي انا فهمته

3 ساعات مضت, شايب said:

هذا حسب فهمي للامر

وقد اشرن الى ذلك

الشايب

 

  • Like 1
قام بنشر
14 دقائق مضت, شايب said:

لان هذا الي انا فهمته

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

ولكن في 90% وأكثر من الحالات فكما تفضلت فإن استخدام صلة بين الجدولين في الاستعلام هي الحل الأفضل

تحياتي

قام بنشر
13 ساعات مضت, ابوخليل said:

حاولت مرارا وتكرارا .. عجيب جدا .. شروط الدالة صحيحة ، وايضا المكتبات صحيحة

مشكلتك في هذه الجملة فيه غلطتين، الأولى And خارج نص الجملة، والأخرى في اسم الحقل ناقص حرف.
 

الخطأ
"#" And "[usr_id] ='"
التصحيح
"# And [user_id] ='"

 

قام بنشر
3 دقائق مضت, AbuuAhmed said:

مشكلتك في هذه الجملة فيه غلطتين، الأولى And خارج نص الجملة، والأخرى في اسم الحقل ناقص حرف.
 

الخطأ
"#" And "[usr_id] ='"
التصحيح
"# And [user_id] ='"

 

لم اترك سبيلا او طريقا الا سلكته .. ساعات .. وانا ابدل واعدل وازيد وانقص

استنجدت باسعافات اخونا @Moosak كنت محتفظا به لوقت الازمات  .. ولا خرجت بنتيجة .. يبقى جامد ولا يرجع شيئا ..

لذا عرضته هنا .. قلت ربما الخلل في جهازي ..

استفسار يابو احمد لا هنت :

ذكرت في موضوعنا الذي قبل هذا انك ابتعدت عن عمليات حذف بيانات الجداول .. لتأثيرها على قاعدة البيانات بهذا النص :

(( تجنبت عمليات الحذف والإضافة للسجلات حتى لا تتضخم قاعدة البيانات مع الوقت ))

حذف الجداول كاملة وبناءها من جديد اتوقع له تأثير اكبر

ولكنك تتكلم عن الحذف للسجلات والاضافة

اذا الجدول يشتمل على ترقيم تلقائي فالتضخم هذا مفهوم

هل التضخم ينطبق على الجداول التي لا تحتوي على ترقيم تلقائي ولا مفاتيح ولا حقول فريدة ؟؟؟

وهل الضغط والاصلاح بين فترة واخرى مفيد .. ؟

قام بنشر
32 دقائق مضت, ابوخليل said:

هل التضخم ينطبق على الجداول التي لا تحتوي على ترقيم تلقائي ولا مفاتيح ولا حقول فريدة ؟؟؟

وهل الضغط والاصلاح بين فترة واخرى مفيد .. ؟

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

ولكن هذه المشكلة لن تحدث مع قاعدة بيانات 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