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

jjafferr

أوفيسنا
  • Posts

    9903
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    404

كل منشورات العضو jjafferr

  1. وعليكم السلام 🙂 فيه مثال بسيط في هذه المشاركة ، من سطر امثلة عملية: .
  2. الله ان شاء الله يقويك على فعل الخير اخوي ابو خليل ، وفيت وما قصرت 🙂 الملاحظات الوحيدة اللي عندي الآن هي: في جميع برامجي يوجد لدي هذين الحقلين ، وقد انقذوني في الكثير من الحالات لما يكون عدد السجلات عندك بالآلاف ، حقل: Auto_ID ونوعه ترقيم تلقائي، وحقل: Auto_Date ونوعه رقم ، والقيمة الافتراضية فيه Now هذه الحقول ليست للمبرمج وإنما للبرنامج ، ويستطيع المبرمج الاستفادة منها 🙂 اما فهرست الحقول ، فهذا يتم على خطوتين: عند عمل علاقات بين الجداول ، ثم لاحقا ، لكل حقل نعمل له فرز ، او تصفية (بمعيار) ، سواء في الاستعلام او الكود 🙂 جعفر
  3. الاكسس كفئ لدرجة جدا كبيرة ، فلا غبار عليه ، والاكسس مثله مثل اي برامج ، فيه مشاكل ، وكذلك SQL Server تكون فيه مشاكل ، واذا عندك مشكلة برمجية في الاكسس ، فالـ SQL Server لن يحل هذه المشكلة ، لذا ، يجب ان تكون عندك رؤية واضحة لسبب انتقالك من برنامج الى آخر. هناك عدة طرق لحل هذه المشكلة: سواء بتصدير البيانات الى ملف csv (وليس اكسل ، فالاكسل بصيغة xls يتحمل 65,536 سجل فقط ، وصيغة xlsx تتحمل 1,048,576 سجل فقط) ، او عمل نسخة من الاكسس ، والمنتدى مليئ بمثل هذه المواضيع. سؤال: هل الاكسس السبب ، او برنامجك هو السبب؟ للعلم ، يجب على المبرمج ان يعيد برمجة البرنامج (كله او اجزاء منه) بين الفترة والاخرى ، وذلك بسبب ان التعديلات والاضافات بعضها جوهري ، ويضطر الميرمج ان يضعها في البرنامج بطريقة او اخرى ، بينما لاحقا ، يجب عليه ان ينظر في البرنامج ككل من اول وجديد ، ويعمل النسخة التالية منه ، وفي مفهوم البرمجة ، فالنسخة الثالثة عادة تكون الانضج 🙂 جعفر
  4. صحيح انا متابع بصمت ، وانتظر اللحظة اللي تنتهون من الطبخة ، بس شايف اني معزوم بعد 🙂 جعفر
  5. وعليكم السلام 🙂 تفضل هذه الطريقة ، ولكن بدل - استخدم الفاصلة . جعفر
  6. وعليكم السلام 🙂 خلينا نتكلم عن الاكسس اولا: في احد برامجي ، وصل مجموع عدد السجلات لأكثر من 1,600,000 سجل ، موزعة على اكثر من 28 جدول ، البرنامج يتحكم بمرفقات حجمها يتعدى 2 تيرابايت ، و 15 مستخدم يستعملوه في نفس الوقت ، وعلى هذا ، فكان حجم قاعدة البيانات حوالي 350 ميجابايت فقط ، بينما يستطيع الاكسس مواصلة العمل الى ان يصل حجمه الى 2 جيجابايت 🙂 ثانيا ، SQL Server : نعم يوجد حدود لحجم قاعدة البيانات ، وهذا الحد هو حجم الهاردسك الذي عليه SQL Server ، هذا معناه ان عدد السجلات لن يكون شغلك الشاغل ، وحتى لو حفظت المرفقات داخل قاعدة البيانات ، والميزة الاخرى هي ، ليس هناك عدد محدود لعدد المستخدمين في نفس اللحظة ، وتستطيع استعمال الاكسس كواجهة ، طبعا ببعض التعديلات على الاستعلامات. ولكن لن يكون هناك فرق في السرعة ، فقد يكون الاكسس اسرع 🙂 جعفر
  7. وعليكم السلام 🙂 يجب ان تكون في تحليل دائم للبيانات ، لمعرفة الخطأ ، ومكان وجوده ، وبالتالي القيام بحله 🙂 في الصورة التي ارفقتها انت ، فلنحلل الخطأ في الصف 51 ، والعمودين 8 و 9 و 11 والخطأ في الصف 65 ، والعمودين 8 و 9 . نرى من ملف الاكسل الخلايا التي بها المشاكل ، فنرى ان نوع البيانات ليست ارقام ، وانما اشارة - (لهذا السبب: الاكسس فشل في تحويل نوع المعلومة ، من - الى رقم بينما لاحظ ان المعلومة في الحقل باللون الوردي ويساوي صفر ، فالاكسس لم يعطيك خطأ في استيراده . في الرابط الذي اعطيتك في مشاركتي السابقة ، لإستيراد حقول الاكسل الى الاكسس ، كان يجب عليّ ان انبهك الى خطوات في هذه الصورة وقبل النقر على الزر Next ، لكي تتفادى مثل هذه الاخطاء ، فأعتذر منك 🙂 . في الصورة اعلاه ، نلاحظ ان الاكسس يخبرنا ، ان نوع العمود Data Type باللون الاسود ، هو نص Text (الاكسس ينظر الى اول معلومة في العمود ، ويتخذ القرار في نوع هذا الحقل) ، بينما في ملفك انت ، فالاكسس رأى ان نوع العمود 8 و 9 و 11 (طبعا قد تكون حقول اخرى كذلك) هو رقم ، ووجد ان معلومات بعض الخلايا ليست برقم (كانت - في حالتك) ، لهذا السبب اعطاك خطأ فيها. الاكسل متسامح في عرض اكثر من نوع واحد من البيانات في عمود واحد ، بينما الاكسس كونه قاعدة بيانات ، فلا يستطيع التعامل بأكثر من نوع من المعلومات في حقل واحد. فالحل: 1. من الاكسل : النظر في بيانات ملف الاكسل والتأكد بأن جميع بيانات الحقل من نفس النوع ، ويمكنك عمل هذا بالطريقة التي قمت بعملها انت ، ومن واقع جدول الاخطاء ، ارجع الى ملف الاكسل وقم بتصحيح هذه المعلومات ، وقم بإستيرادها مرة اخرى ، وستبقى بعض الاخطاء الغير مهمة والتي يمكن تجاهلها. 2. من الاكسس : عند استيراد البيانات لأول مرة من الاكسل (طبعا نحن نستوردها الى جدول مؤقت ، ومن ثم يتم يقوم المبرمج بتوزيع البيانات الى الجداول والحقول الخاصة بها) ، وعند الوصول الى الصورة اعلاه ، وقبل النقر على الزر Next ، انقر في كل عمود ، واختار "نص" في نوع الحقل ، واعمل هذا لجميع الاعمدة ، طبعا هذا سيجعل الاكسس يستورد جميع الاعمدة كـ نص ، ويجب عليك معالجة اختلاف نوع البيانات في الاكسس ، بعد استيراد البيانات ، الميزة في هذه الطريقة ان جميع البيانات يتم استيرادها ، والعيب فيها ، ان التنظيف يتم في الاكسس (ولكن في بيئة انت مرتاح في التعامل معها) ، ولا تنسى انه في الكثير من الاحيان تأتي ملفات الاكسل من مصادر لا نملك التحكم في تغييرها. رجاء قم بإستيراد ملف الاكسل مرة اخرى ، آخذ في الاعتبار الخطوة رقم 2 اعلاه ، وان شاء الله لن تحصل على اخطاء استيراد 🙂 جعفر
  8. اخي يونس ، شكرا جزيلا لك على جميل كلماتك 🙂 جعفر
  9. السلام عليكم 🙂 انا كذلك حصلت على نفس الخطأ 🙂 وعلى حسب رغبة ابو جودي في تطوير وتحديث هذا البرنامج حتى يصبح بدون اشكاليات ، فسيكون هذا الموضوع مقفل الى اشعار آخر 🙂 جعفر
  10. السلام عليكم 🙂 انا الذي اختار الاجابة الصحيحة ، اجابة ابو جودي ، بينما تدخلي كان بجزئية معينة فقط ، لذلك ، واقعا جواب ابو جودي هو الاصح في اختياره ، وسأعيد اختياره مرة اخرى 🙂 وهنا ارجع الى ما كتبته انا اعلاه ، فاختيار الاجابة الصحيحة تعطي الاعضاء الذين يبحثون في الموضوع لاحقا ، بوصلة الى مكان الحل او بداية الحل ، لذا ، وبحسب قوانين المنتدى: 30. من الجميل أن تتبع الإجابة عن سؤالك بشكر لمن ساعدك، وبإخبار عن النتيجة، العديد يتابع الأسئلة، ويود أن يعرف عن النتيجة، فمن واجب السائل أن يشكر من حاول مساعداته بالنقر على زر الإعجاب، وأن يختار خيار أفضل إجابة ليعرف الجميع أن موضوعه قد تم حله بطريقة مرضية. جعفر
  11. شكرا جزيلا لك اخي الاستاذ ابو ابراهيم على هذه المعلومات الجديدة لي انا شخصيا 🙂 في الواقع فتحت علينا باب جديد في الاكسس لم نكن نعرف بوجوده ، واذا بك تشير اليه ، و توضحه بالكامل 🙂 وفي الوقت الذي كانت جميع اعمالنا المستخدمة عن طريق الانترنت اكسبلورر IE كادت ان تموت ، واذا انت تعطيتها الحياة عن طريق المتصفح الجديد ادج Edge جعفر
  12. وعليكم السلام 🙂 تفضل هذا جوابك سؤالك 🙂 فقط عليك ان تنادي الوحدة النمطية مرة واحدة حتى تقوم بإدخال جميع بيانات الاستعلام QAAA الى الجدول TBBBB : Public Function Rows_to_Column() On Error GoTo err_Rows_to_Column Dim Rrst As DAO.Recordset Dim Crst As DAO.Recordset Dim i As Integer Dim fld As Field Dim iField_Caption As String Set Crst = CurrentDb.OpenRecordset("Select * From TBBBB") Set Rrst = CurrentDb.OpenRecordset("Select * From QAAA") Rrst.MoveFirst 'Records Do Until Rrst.EOF 'Field Names For Each fld In Rrst.Fields iField_Caption = fld.Properties("Caption") 'Debug.Print fld.Name & vbTab & Rrst(fld.Name) Crst.AddNew Crst!NSSASASE = iField_Caption Crst!NSSBDEL = Rrst(fld.Name) Crst.Update Next Rrst.MoveNext Loop Exit_Rows_to_Column: Rrst.Close: Set Rrst = Nothing Crst.Close: Set Crst = Nothing MsgBox "Done" Exit Function err_Rows_to_Column: If Err.Number = 3270 Then 'this field does not have a caption for it, give it the field name iField_Caption = fld.Name Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description Resume Exit_Rows_to_Column End If End Function جعفر
  13. وعليكم السلام 🙂 هذا الموضوع له اجابات عامة ، كما اخبرك اخوي ابو خليل ، وله اجابات خاصة ببرنامجك 🙂 فإذا الاجابات العامة لم تلبي طلبك ، فيجب ان سؤالك بتفصيل دقيق عن برنامجك ، او ترفق نسخة منه وتخبرنا اي النماذج اللي عندك مشكلة فيها 🙂 جعفر
  14. كيف ؟ انصحك باستعمال المرفق في هذا الرابط ، كلما تنتهي من تجربة في برنامجك ، فهو يحذف بقايا البرمجة القديمة التي لم يحذفها الاكسس من ذاكرته . جعفر
  15. السلام عليكم 🙂 مع ان كود ابو جودي اشتغل عندي: اكسس 2019 ، 64بت ، ولكن بما ان: انا اضفت الكبسة على زر END في كود ابو جودي ، مرتين ، فرجاء تجربته : Private Sub tx0_Change() On Error GoTo Proc_Err Dim txtsearch As String: txtsearch = Me.tx0.Text Me.Filter = "RAWY_NAME" & " Like ""*" & txtsearch & "*""": Me.FilterOn = True Me.tx0.SetFocus Me.tx0 = txtsearch 'Me.tx0.SelStart = Len(txtsearch) Me.tx0.SelStart = vbKeyEnd 'الكبسة على زر END Exit Sub Proc_Err: Select Case Err.Number Case Is = 2185 Me.FilterOn = False Me.tx0.SetFocus 'Me.tx0.SelStart = Me.tx0.SelLength Me.tx0.SelStart = vbKeyEnd 'الكبسة على زر END Beep MsgBox "There are no results" Case Else MsgBox "Error " & Err.Number & vbNewLine & Err.Description End Select End Sub جعفر
  16. وعليكم السلام 🙂 تفضل 🙂 Dim mySQL As String mySQL = "[Date_From]=#" & Me.Date_From & "#" mySQL = mySQL & " And " mySQL = mySQL & "[Date_To]=#" & Me.Date_To & "#" mySQL = mySQL & " And " mySQL = mySQL & "[Car]='" & Me.Car & "'" If DCount("*", "TABLE_NAME", mySQL) > 0 Then MsgBox "تم حجز السيارة بهذا التاريخ سابقا" Exit Sub End If جعفر
  17. السلام عليكم 🙂 بسبب وجود الامر: On error Resume Next (انا دائما انصح بعدم استعمال هذا السطر إلا في الحالات الخاصة جدا، وانما يجب التعامل مع رقم الخطأ مباشرة) ، لم يكن يعطيك البرنامج اي خطأ ، بينما البرنامج لم يكن يستطيع ان يستورد ملف الاكسل الى قاعدة بياناتك !! رجاء اتباع هذه الطريقة لإستيراد ملف الاكسل، الى جدول مؤقت في برنامجك: . ولما تكون البيانات في الاكسس ، يمكنك العمل عليها بطريقة عادية وبسهولة 🙂 جعفر
  18. شكرا جزيلا اخوي ابو ابراهيم على هذه الطريقة الجديدة 🙂 جعفر
  19. السلام عليكم 🙂 بعيد عن مكتبات الوندوز API هناك طريقتين ، جلب التاريخ من السيرفر ، وجلب التاريخ من جهاز آخر . وكذلك جلب الوقت عن طريق جدول اكسس او جدول SQL Server على السيرفر او اي جهاز آخر: . جعفر
  20. اخوي موسى 🙂 عمل جميل ، شكرا على المشاركة 🙂 جعفر
  21. في الواقع هناك دوال لا يجب ان تفصفص (مثل المكتبات وامور اخرى لها علاقة بنظام الكمبيوتر او نظام الاكسس) وانما تُستعمل كما هي 🙂 جعفر
  22. وانا كذلك عملت الخطوات التي اخبرتنا عنها ، وما حصلت على رسالة الخطأ !! طبعا هذا مو معناه انه لا توجد عندك مشكلة ، وانما معناه اننا يجب ان نحصل على الخطأ ، علشان نعرف نعطيك الحل 🙂 اذن الان سنضطر ان نعتمد عليك في: 1. اريد صورة شاشة ، قبل ان تنقر على الزر وتاتيك رسالة الخطأ ، 2. اريد صورة شاشة ، بعد ان تنقر على الزر وتاتيك رسالة الخطأ ، 3. اعرض لي الكود خلف زر الخروج. جعفر
  23. وعليكم السلام 🙂 اخي يونس ، رجاء افتح موضوع جديد فيه طلبك ، وضع مرفق ، وان شاء الله تجد الاجابة على طلبك 🙂 جعفر
×
×
  • اضف...

Important Information