فيصل الحربي قام بنشر أكتوبر 24, 2003 قام بنشر أكتوبر 24, 2003 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أعزائي : لدينا في العمل طريقة لتوزيع العدد والأدوات فمثلا وصلتنا كمية معينه من الأدوات ( مفتاح رقم 10 ... مثلا ) طبعا هذه العدد والادوات تأخذ رقما تسلسليا كما يلي مفتاح 10 صنع بريطاني الرقم 15000 كمية العدد 50 لكل مفتاح 10 صنع بريطاني رقم خاص به مثل 15000.001 الى 15000.050 فحينما نوزع العدد والادوات على العاملين نسجل رقم العده او الاداة في سجل الموظف المستلم للعدة . اي اعطينا مثلا مفتاح رقم 10 لمحمد طاهر رقم 15000.002 مفتاح رقم 10 لاشرف رقم 15000.003 مفتاح رقم 10 لمنتصر رقم 15000.009 كما تلاحظون فان العدة ( مفتاح 10 ) مواصفاته ثابته ولكن يتغير من يستلم تلك العده طبعا يصل الى المستودع عدد معين من العدد ولنفرض انها 50 ( مفتاح 10 ) . طبعا سوف يتم ادخال عدد 50 ( مفتاح 10 ) في جدول العدد وتصبح العملية مرهقه جدا مع زيادة العدد والادوات سؤالي بعد هذا الشرح هل توجد طريقة لإدخال 50 سجل دفعة واحدة بحيث يعطيني رقم من 15000.001 الى 15000.050 علما بان جميع المواصفات للأداة ( مفتاح 10 ) متطابقة ولا يختلف الا الرقم لتمييز المعده عن غيرها من نفس النوع .؟ 1
شاكر الزين قام بنشر أكتوبر 24, 2003 قام بنشر أكتوبر 24, 2003 (معدل) أخي الكريم / فيصل الحربي /// السلام عليكم ورحمة الله وبركاته تفضل هذا مثال على طلبك ،،،، عسى أن يفي بالغرض لقد تم حذف الملف وذلك لتحديثه ,,,, شاكر تم تعديل أكتوبر 25, 2003 بواسطه شاكر الزين
فيصل الحربي قام بنشر أكتوبر 24, 2003 الكاتب قام بنشر أكتوبر 24, 2003 (معدل) وعليكم السلام ورحمة الله وبركاته اشكرك كثيرا يا شاكر . لقد كفيت ووفيت . تحياتي تم تعديل أكتوبر 24, 2003 بواسطه فيصل الحربي
شاكر الزين قام بنشر أكتوبر 25, 2003 قام بنشر أكتوبر 25, 2003 (معدل) أخي العزيز / فيصل الحربي /// السلام عليكم ورحمة الله وبركاته لقد تم التعديل على المثال بحيث تكون الارقام على الشكل التالي : 001 ، 002 ،،،،،،،،، 050 ،،، وهكذا ,,,, لقد تم حذف المثال ،،، لتحديثه شاكر تم تعديل أكتوبر 27, 2003 بواسطه شاكر الزين
فيصل الحربي قام بنشر أكتوبر 25, 2003 الكاتب قام بنشر أكتوبر 25, 2003 بسم الله الرحمن الرحيم السلام عليكم أشكرك كثيرا يا شاكر على ماقمت به لقد نفذت العمليه بطريقة مشابهه قبل ان اقرأ ردك هنا طريقتك كالتالي DoCmd.GoToRecord , , acFirst Dim i For i = c To d DoCmd.SetWarnings False DoCmd.GoToRecord , , acNewRec If i < 10 Then Me![رقم الصنف] = Me![sh] & "-" & 0 & 0 & i Me![اسم الصنف ] = Me![a] Me![مكان الصنع] = Me![b] ElseIf i >= 10 And i <= 99 Then Me![رقم الصنف] = Me![sh] & "-" & 0 & i Me![اسم الصنف] = Me![a] Me![مكان الصنع] = Me![b] ElseIf i >= 100 Then Me![رقم الصنف] = Me![sh] & "-" & i Me![اسم الصنف] = Me![a] Me![مكان الصنع] = Me![b] End If DoCmd.GoToRecord , , acNext Next i DoCmd.Requery "f2" DoCmd.SetWarnings True اما طريقتي في تنفيذ الفكرة فهي : DoCmd.GoToRecord , , acLast DoCmd.GoToRecord , , acNewRec Dim i For i = c To d Me![رقم الصنف]= Me![a] Me![مكان الصنع] = Me![b] If i < 10 Then Me![رقم الصنف] = Me![sh] & "-00" & i DoCmd.GoToRecord , , acNext Else If i < 100 Then Me![رقم الصنف] = Me![sh] & "-0" & i DoCmd.GoToRecord , , acNext Else If i < 1000 Then Me![رقم الصنف] = Me![sh] & "-" & i DoCmd.GoToRecord , , acNext End If End If End If Next i DoCmd.Requery "f2" و كما ترى اختلاف بسيط جدا أشكرك مرة أخرى
فيصل الحربي قام بنشر أكتوبر 25, 2003 الكاتب قام بنشر أكتوبر 25, 2003 (معدل) بسم الله الرحمن الرحيم لقد أجريت إختبارا على كلا الطريقتين لإدراج 300 سجل متطابقه فوجدت ان طريقة الخبير ( شاكر الزين ) أسرع طريقتي إستغرقت ( 4.629629629 ) ثانية طريقة الخبير ( شاكر الزين ) إستغرقت ( 3.472222222 ) ثانية أي بفارق ( 1.157407407 ) ثانيه لصالح الخبير ( شاكر الزين ) . مرة أخرى أشكرك كثيرا يا خبيرنا . تحياتي تم تعديل أكتوبر 25, 2003 بواسطه فيصل الحربي
شاكر الزين قام بنشر أكتوبر 27, 2003 قام بنشر أكتوبر 27, 2003 (معدل) أخي العزيز / فيصل الحربي ،،،، السلام عليكم ورحمة الله وبركاته ،،، لقد وجدت لك طريقة أسرع ،،،، تفحص المثال بعد التعديل المعادلة هي : msgbox "ستبدأ الآن عملية انشاء السجلات ..", vbOKOnly, "انشاء السجلات الجديدة" docmd.SetWarnings False Dim i Dim db As Database, rs As Recordset For i = c To d Set db = CurrentDb Set rs = db.OpenRecordset("SELECT * FROM t1") rs.AddNew docmd.Hourglass True If i > 0 And i <= 9 Then rs.Fields(0) = Me![sh] & "-00" & i If i > 9 And i <= 99 Then rs.Fields(0) = Me![sh] & "-0" & i If i > 99 And i <= 999 Then rs.Fields(0) = Me![sh] & "-" & i rs.Fields(1) = a rs.Fields(2) = b rs.Update Next i docmd.Requery "f2" docmd.Hourglass False docmd.SetWarnings True msgbox "تم إنشاء السجلات بنجاح!!!!", vbOKOnly, "انشاء السجلات الجديدة" لقد تم حذف المثال لتحديثه ,,,, شاكر تم تعديل أكتوبر 28, 2003 بواسطه شاكر الزين
أحمد الحربي قام بنشر أكتوبر 27, 2003 قام بنشر أكتوبر 27, 2003 (معدل) ولو استخدمتما Select Case لكان أسرع وأسرع لأن العبارة IF لا بد من أن تمر على مفرداتها مرة واحدة أما عبارة select case فهي لا تمر إلا على المطلوب .. هذا نظرياً ولم أجرب على مثالكم .. وتحياتي لعالم السرعة والدقة تم تعديل أكتوبر 27, 2003 بواسطه أحمد الحربي
فيصل الحربي قام بنشر أكتوبر 28, 2003 الكاتب قام بنشر أكتوبر 28, 2003 بسم الله الرحمن الرحيم نعم فالطريقة الجديده أفضل من السابقتين حيث سجلت 1.157 ثانية لإنشاء 300 سجل مع التحديث أي بفارق زمني قدره 2.5 ثانيه . شكرا مرة أخرى يا شاكر الزين . (y) احمد الحربي : نظريا كما اخبرت صحيح ولكن لم أجرب الطريقه وذلك لضيق الوقت . مشكور و ماقصرت . :b1:
أحمد الحربي قام بنشر أكتوبر 28, 2003 قام بنشر أكتوبر 28, 2003 (معدل) ومن خلال ADO أسرع وأسرع حيث تمت العلمية في خلال 1.15740740740666E-05 Dim Rec As New ADODB.Recordset Rec.Open "t1", CurrentProject.Connection, adOpenStatic, adLockOptimistic, adCmdTable Dim i As Integer For i = Me.c To Me.d Rec.AddNew Rec![رقم الصنف] = Me.sh & "-" & Format(i, "000") Rec![اسم الصنف] = Me.a Rec![مكان الصنع] = Me.b Rec.Update Next Rec.Close Set Rec = Nothing Me.Refresh ' تحديث النموذج تم تعديل أكتوبر 28, 2003 بواسطه أحمد الحربي
شاكر الزين قام بنشر أكتوبر 28, 2003 قام بنشر أكتوبر 28, 2003 حياك الله أخي فيصل ،،، وعلى الرحب والسعة ,,,, :pp: أخي / أحمد الحربي اقتباس ولو استخدمتما Select Case لكان أسرع وأسرع لأن العبارة IF لا بد من أن تمر على مفرداتها مرة واحدة أما عبارة select case فهي لا تمر إلا على المطلوب .. هلا عملت مثالاً على ذلك ،،،، لكي تعم الفائدة ,,,, :( اقتباس ومن خلال ADO أسرع وأسرع حيث تمت العلمية في خلال أخي لم تعمل معي الشفرة التي وضعتها ،،،، هل تحتاج إلى مكتبة معينة ؟؟؟؟ إذا كان تحتاج إلى مكتبة ،،، الرجاء وضع اسم المكتبة ،،، :d شاكر
فيصل الحربي قام بنشر أكتوبر 28, 2003 الكاتب قام بنشر أكتوبر 28, 2003 بسم الله الرحمن الرحيم احمد الحربي : ومن خلال ADO أسرع وأسرع حيث تمت العلمية في خلال 1.15740740740666E-05 يعني طريقة ADO استغرقت 1.157 ثانية كما ذكرت في ردك انظر الى ردي على شاكر نعم فالطريقة الجديده أفضل من السابقتين حيث سجلت 1.157 ثانية يعني طريقتك وطريقة شاكر استغرقت نفس الوقت ( 1.157 ) ثانية شكرا مجددا لإهتمامكم بالموضوع . تحياتي
شاكر الزين قام بنشر أكتوبر 28, 2003 قام بنشر أكتوبر 28, 2003 الممازجة بين الطريقتين : طريقة الاخ الكريم / أحمد الحربي طريقة / شارك الزين Dim db As Database, rs As Recordset Set db = CurrentDb Set rs = db.OpenRecordset("SELECT * FROM t1") rs.AddNew Dim i As Integer For i = c To d rs.AddNew rs![رقم الصنف] = Me.sh & "-" & Format(i, "000") rs![اسم الصنف] = Me.a rs![مكان الصنع] = Me.b rs.Update Next Me.Refresh تمت إضافة عدد ( 300 ) سجل في أقل من ثانية ،،، في لمح البصر ،،، مع الشكر الجزيل للأخ / أحمد الحربي شاكر faisal_97.zip
أحمد الحربي قام بنشر أكتوبر 29, 2003 قام بنشر أكتوبر 29, 2003 أشكركم يا أساتذة على جهدكم الرائع بالنسبة للعبارة Select Case والعبارة IF قرأت كثيراً أن الأولى أسرع ولكني الآن عندما أجرب أجدهما متقاربان جداً وأحياناً متساويان .. فما أدري لماذا قالوا أن select أسرع أما المكتبة التي تحتاجها أخي الكريم شاكر فهي Microsoft ActiveX Data Opjects 2.1 Library فأنا طبقت المثال على أوفيس 2000 لكم التحية أيها المبدعون
شاكر الزين قام بنشر أكتوبر 29, 2003 قام بنشر أكتوبر 29, 2003 حياك الله أخي / أحمد هل جربت آخر ما تم تعديله على المثال ؟؟؟؟ بصراحة بسرعة البرق ،،، بلمح البصر تتم إضافة ( 300 ) سجل ،،،، طريقتك رائعة يا أخي ،،،، شكراً جزيلاً لك ,,, شاكر
شاكر الزين قام بنشر أكتوبر 29, 2003 قام بنشر أكتوبر 29, 2003 أخي الكريم / فيصل الحربي لم تقل لي ما رأيك في الطريقة الجديدة ,,,, :d شاكر
فيصل الحربي قام بنشر أكتوبر 29, 2003 الكاتب قام بنشر أكتوبر 29, 2003 (معدل) السلام عليكم ورحمة الله وبركاته نعم ، الطريقة سريعة جدا وتعتبر من أسرع الطرق التي شاهدناها قبل أن ارفع اصبعي من على زر الادخال تكون تمت إضافة الــ 300 سجل ... (y) :d ماقصرتو أثنينكم ( شاكر الزين و احمد الحربي ) تحياتي تم تعديل أكتوبر 29, 2003 بواسطه فيصل الحربي
شاكر الزين قام بنشر أكتوبر 29, 2003 قام بنشر أكتوبر 29, 2003 حياك الله أخي / فيصل ،،،، واحنا حاضرين للطيبين أمثالك ،،،،، :pp: شاكر
ابن مسقط قام بنشر أكتوبر 30, 2003 قام بنشر أكتوبر 30, 2003 السلام عليكم ورحمة الله وبركاته مبروك عليكم الشهر الفضيل وكل عام وأنتم بخير أخواني الكرام كيف تم إحتساب سرعة الأمثلة التي تم طرحها في هذا الموضوع ؟
فيصل الحربي قام بنشر أكتوبر 31, 2003 الكاتب قام بنشر أكتوبر 31, 2003 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته بالنسبة لطريقة إحتساب السرعة في التنفيذ فقد استخدمت الطريقة التالية : الكود التالي يوضع في السطر الاول من حدث النقر على زر امر التنفيذ dim ts,tf,tr ts=time() ثم يوضع الكود التالي قبل كلمة sub tf=time() tr=tf-ts msgbox tr فقط
ابن مسقط قام بنشر أكتوبر 31, 2003 قام بنشر أكتوبر 31, 2003 شكراً جزيلاً أخي الأستاذ/ فيصل الحربي لدي سؤال أخر لو تكرمتوا : هل سرعة المعالج وسعة الذاكرة بجهاز الكمبيوتر لها تأثير على سرعة إنجاز العملية ؟
فيصل الحربي قام بنشر أكتوبر 31, 2003 الكاتب قام بنشر أكتوبر 31, 2003 بسم الله الرحمن الرحيم عملت إختباراتي على كمبيوتر سرعة واحد جيجا و 256 ميجا الرام ( لاب توب ) وسرعة الكمبيوتر تؤثر على سرعة تنفيذ العمليات .
أحمد الحربي قام بنشر نوفمبر 1, 2003 قام بنشر نوفمبر 1, 2003 الأخوان الكريمان / فيصل وشاكر فعلاً الطريقة الأخيرة سريعة جداً وهذا يؤكد أن DAO أسرع على المستخدم الواحد والقاعدة على جهاز واحد .. وأما حين يكون البرنامج على شبكة وعدة مستخدمين فستتفوق ADO بلا شك تحياتي لكما
محمد طاهر عرفه قام بنشر نوفمبر 1, 2003 قام بنشر نوفمبر 1, 2003 هل dao اسرع من ado لنفس العملية علي جهاز واحد ؟؟ هل كانت الاكواد متطابقة عند التجربة ؟؟ المفترض أن ADO تطوير لل DAO و أنها اصبحت الافتراضية فى الاصدارات الجديدة فاذا كانت ابطأ ، فربما ذلك بسبب ميزات أخري .؟ هذه مقدمة منقولة من كتاب باللغتين العربي و الانجليزي حول كائنات الاتصال بالبيانات ==> من هنا
أحمد الحربي قام بنشر نوفمبر 1, 2003 قام بنشر نوفمبر 1, 2003 أذكر أنه دار نقاش طويل بين الإخوة في منتدى فيجول بيسك للعرب حول أيهما أفضل فبعضهم فضل DAO والسبب لآنه يعرف كيف يتعامل معها من ألفها إلى يائها .. والبعض فضل ADO لأنها المستقبل وأعجبني الرأي الثالث وهو استخدام كل منهما كل في مجاله .. فـ DAO في الأعمال المكتبية التي لا تتطلب شبكات أسرع .. وADO أسرع في الشبكات فأنا جربت الكودين على جهازي فكانت DAO أسرع وبالبحث في منتدى فيجول بيسك العرب ستجدون مواضيع كثيرة حول الفرق بينهماwww.vb4arab.com
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.