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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. عفوا ما فهمت قصدك ، لهذا السبب قلت لك من البداية اعطني مثال والكود يجب وضعه على زر البحث ، وخطأ مني ان وضعته على حدث تحميل النموذج اعمل التغيير ، وشوف اذا لازالت المشكلة موجودة. جعفر
  2. طبعا سيكون هناك اكثر من طريقة لعمل المطلوب ، وانا اخترت الطريقة الاسهل لي تفضل الكود ، وقد اعدت مسمى الحقول من والى: Private Sub Form_Load() Me.Form.Caption = DLookup("[user]", "fbi") Dim rst As DAO.Recordset 'إيرادات mySQL = "Select [رقم السند]" mySQL = mySQL & " From السندات" mySQL = mySQL & " Where [نوع السند]='إيرادات'" mySQL = mySQL & " And التاريخ>=#" & Me.n1 & "#" mySQL = mySQL & " And التاريخ<=#" & Me.n2 & "#" mySQL = mySQL & " Order By [رقم السند]" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount Me.Erad_From = rst![رقم السند] rst.MoveLast Me.Erad_To = rst![رقم السند] 'اجل mySQL = "Select [رقم السند]" mySQL = mySQL & " From السندات" mySQL = mySQL & " Where [نوع السند]='اجل'" mySQL = mySQL & " And التاريخ>=#" & Me.n1 & "#" mySQL = mySQL & " And التاريخ<=#" & Me.n2 & "#" mySQL = mySQL & " Order By [رقم السند]" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount Me.Aajel_From = rst![رقم السند] rst.MoveLast Me.Aajel_To = rst![رقم السند] 'مصاريف mySQL = "Select [رقم السند]" mySQL = mySQL & " From السندات" mySQL = mySQL & " Where [نوع السند]='مصاريف'" mySQL = mySQL & " And التاريخ>=#" & Me.n1 & "#" mySQL = mySQL & " And التاريخ<=#" & Me.n2 & "#" mySQL = mySQL & " Order By [رقم السند]" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount Me.Masareef_From = rst![رقم السند] rst.MoveLast Me.Masareef_To = rst![رقم السند] 'سداد mySQL = "Select [رقم السند]" mySQL = mySQL & " From السندات" mySQL = mySQL & " Where [نوع السند]='سداد'" mySQL = mySQL & " And التاريخ>=#" & Me.n1 & "#" mySQL = mySQL & " And التاريخ<=#" & Me.n2 & "#" mySQL = mySQL & " Order By [رقم السند]" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount Me.Sadad_From = rst![رقم السند] rst.MoveLast Me.Sadad_To = rst![رقم السند] rst.close: Set rst = Nothing End Sub جعفر 688.لازام نطوره.mdb.zip أخي ابو عبد الله انا فكرت في طريقتك ، وبهذه الطريقة يجب علينا زيارة الجدول مرتين لكل نوع من انواع السجلات ، وعندنا اربع سجلات ، فمعناه عندنا 8 زيارات للجدول لأخذ القيم المطلوبة ، ولكنك تأتي بمعلومة واحدة كل مرة بينما الطريقة التي عملتها انا تقوم بـ 4 زيارات فقط ، ولكنها تأتي ببيانات اكثر من بياناتك ، ثم نصفيها والطريقة الافضل هي ان لا نقوم بأي زيارة للجدول ، فالبيانات موجودة في النموذج الفرعي ، وما علينا إلا ان نستخرجها منها جعفر
  3. وعليكم السلام أخي وضاح اعطنا مثال لوسمحت بارقام من قاعدة بياناتك جعفر
  4. وعليكم السلام اخي عبدالله انا اعتذر منك ، فلم افهم المطلوب ، وياريت مثال توضيحي جعفر
  5. السلام عليكم شباب انا ساكت واستمتع بالتطورات ، لكن مخي يمخخ وراح بعيد لكيفية الاستفادة من هذه الخطوة مادمتم قد قطعتوا المشوار في هذا الطريق البديع (شكرا أخي أوس على الفكرة والكود ، ابو عبدالله وشفان على تعديل الكود) ، فبدل ان ابدأ من البداية ، سوف اضع امامكم الفكرة اللي على بالي ، راجيا منكم بلورتها برمجيا خلينا نتوسع في الفكرة شوي ، لتشمل احتياجات المبرمج ، فاللي على بالي هو: 1. البرنامج يدخل على مجلد معين في الموقع (وحاليا كلامنا عن Google Drive) (كما هو الحال الآن) ، ويكون فيه ملف نص txt او xml ، ويُنزل هذا الملف ، 2. هذا الملف يكون فيه اسماء برامجي ، ورقم النسخة الموجودة ، واسم مجلد الموقع الذي فيه هذه البرامج (مجلد آخر في Google Drive ، يعني اعمل مجلد لكل برنامج من برامجي) ، (طبعا نستطيع ان نضيف تاريخ من ، تاريخ الى ، نوع البرنامج: Full او Demo او Activation ، و....) ، والنص يكون هكذا مثلا : Enquiry_Book,2.0,0B9STtJY2DhAoQ1JET3F5N3NiMDQ myAccounting,1.5,0B9STtJY2DhAoQ1JET3F5N3Nuwiu Archiving_Goods,5.23,0B9STtJY2DhAoQ1JET3F5Nlujhft 3. البرنامج يُنزل هذا الملف ويقرأه ، ويقارن نسخة البرنامج (سيكون هناك جدول خاص في البرنامج ، وبه رقم نسخة البرنامج) ، 4. البرنامج سيقارن رقم النسخة من الجدول ، مع رقم نسخة البرنامج الموجودة في ملف النص ، 5. اذا كان رقم النسخة الموجودة في الملف/الموقع اكبر من النسخة الموجودة في البرنامج ، فيعطي رسالة للمستخدم بأنه هناك نسخة احدث للبرنامج ، وسيقوم بإنزالها وتنصيبها ، 6. البرنامج سيقوم بإستخدام نفس الكود اعلاه (طبعا مع تغييرات بسيطة اذا دعى الامر ، او نجعل الكود كوحدة نمطية نستطيع استعمالها لإنزال مختلف الملفات من الموقع) ، ويُنزل البرنامج. بهذه الطريقة المبرمج يستطيع ان يُحدث برامجه عالميا ، وبدون الذهاب الى مكتب المستخدم مجرد فكرة جعفر
  6. اخي طارق شو الفرق بين هذا الموضوع ، وهذا صحيح العنوان غير ، ولكن المطلوب وحتى المرفق هو نفسه!! جعفر
  7. حياك الله اخي طارق يمكنك جلب بيانات الاكسل الى الاكسس ، ثم القيام بالعمل مثل ما عملته لك ، اذا تلاحظ في الاستعلام ، فانا كررت نفس العملية لجميع الحقول ، فجرب القيام بذلك ، واذا صادفتك مشكلة ، فانشاءالله تجد المساعدة منا جعفر
  8. عفوا هل انزلت المرفق في مشاركتي الاخيرة؟
  9. وعليكم السلام تفضل الاشارة " يمكن الاشارة اليها برقمها ، والذي هو (chr(34 وهذا لباقي ارقام وحروف الكمبيوتر: http://www.asciitable.com/ فعليه ، نستخدم الامر Replace لإزالة هذه الاشارات ، هكذا: Field1: Replace([Field_xyz],chr(34),"") والنتيجة جعفر 687.tarek.accdb.zip
  10. الكود مافيه شيء 1. هذا معناه ان الواجهة ليست متصلة دائما بالجداول ، وانما يتم الاتصال وقت حفظ البيانات ، اذا كان هذا صحيح ، فالافضل ان يكون عندك من بداية تشغيل البرنامج نموذج مخفي فيه بيانات من جدول , ويمكن ان يكون جدول فيه اسم/رقم البرنامج فقط ، المهم ان يكون الاتصال بين الواجهة والخلفية مستمر وغير منقطع من بداية تشغيل البرنامج ، 2. ولو انه سؤال سخيف ، هل برنامجك على نفس القرص الذي عليه نظام السيرفر؟ من المهم جدا ان لا تضع قاعدة بياناتك في القرص الذي عليه نظام الكمبيوتر، الوندوز ، سواء على السيرفر او على اي كمبيوتر آخر ، نعم انا قلت قرص ولم اقل partition ، يعني اذا القرص فيه C و D و E ، فلا تضع البرنامج على اي واحد منهم ، وانما ضعه على قرص آخر ليش؟ لاحظ الكمبيوتر او اللابتوب ، وبدون ان تشتغل عليه ، تلقى ضوء القرص دائما يولع وينطفئ ، هذا معناه ان نظام الكمبيوتر ، الوندوز ، يقوم بالعديد من الاعمال في الخلفية ، واذا النظام اعطى امر لتعديل شيء معين فيه ، وفي نفس الوقت قمت انت بطلب شيء معين في قاعدة بياناتك (مثل استعلام او حفظ بيانات او ...) ، ولآن النظام وبرنامجك على نفس القرص ، فالكمبيوتر سيجعل برنامجك ينتظر الى ان ينتهي من امر النظام ، بينما اذا كان برنامجك في قرص مستقل ، فـ CPU سيعطي الامر لكل قرص لعمل اوامره الخاصة به 3. تأكد ان الحقول التي فيها معيار في الاستعلام او في النموذج ، تأكد انها مفهرسة في الجدول ، فالفهرسة تجعل حجم البرنامج اكبر شوي ، ولكنها تجعل التعامل مع بيانات الجدول اسرع الاشياء اللي قلتها: ضغط واصلاح BE و FE ، مكان وجود البرنامج على القرص ، والفهرسة ، هذه جميعا لي تجارب معاها جعفر
  11. تفضل ويجب فتح التقرير من النموذج. وللعلم ، برنامجك لا يوجد فيه إلا اسم واحد فقط. جعفر 680.الاجازات - Copy.accdb.zip
  12. وعليكم السلام في الجدول ، اذهب الى الحقول التي لا تريدها ان تكون فاضية ، واجعلها: . جعفر
  13. وعليكم السلام تفضل ، ضع هذا الكود على زر التعديل في النموذج الفرعي: Me.Parent.الاسم = Me.Phone Me.Parent.مربع_تحرير_وسرد65 = Me.Country Me.Parent.الادارة = Me.City ولكن: اسماء الحقول في النموذج الرئيسي والنموذج الفرعي ، ماشاءالله تفتح النفس للخطأ فنصيحتي ان تعدل فيهم مادام البرنامج في اوله جعفر
  14. وعليكم السلام 1. اعمل ضغط واصلاح لبرنامج البيانات BE ، وكذلك لبرنامج الواجهة FE ، 2. واذا حبيت ، خلينا نشوف الكود ، واللي ممكن نتوصل الى شيء يفيدك. جعفر
  15. السلام عليكم وتكملة لإجابة أخي أبو عبدالله في صفحة كود الاكسس ، اعمل بحث لكلمة KeyCode ، وسترى اسماء حروف التي على الكيبورد ، مثل (وهذه نسخة من مساعد الاكسس) : vbKeyEscape vbKeySpace vbKeyPageUp vbKeyPageDown ... normal keys: vbKeyA vbKeyB vbKey8 vbKey9 ... numeric keypad: vbKeyDecimal vbKeyDivide ... function keys: vbKeyF10 vbKeyF11 . والرابط التالي يعطيك اسم الزر ورقمه: https://msdn.microsoft.com/en-us/library/0z084th3(v=vs.90).aspx والآن ، وفي الاكسس ابحث عن Form_KeyDown ، وسترى كود مشابه وعليه ، لتعطيل اي زر ، نستعمل رقمه ، كما ذكره اخي ابو عبدالله ، او كما هو في الاكسس ، هكذا Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyF11 KeyCode = 0 Case 16 'vbKeyShify KeyCode = 0 End Select End Sub . والآن الى الشيء الاهم: لما نكون في النموذج ، ونكون نكتب معلومة في حقل نص/مذكرة ، ولا نريد من المستخدم كتابة اشارة التقسيم "/" مثلا ، لذا يجب ان يصطاد النموذج هذا الزر قبل ان يدخل في النص ، لذا يجب عليك ان تعدل في اعدادت النموذج وتجعل اعداد KeyPreview=Yes . او تستعمل حدث تحميل النموذج ، وتضع عليه كود التفعيل اعلاه: Private Sub Form_Load() Me.KeyPreview = True End Sub جعفر
  16. تستطيع ان تستعمل الكود الذي اعطيتك في آخر مشاركة ، مع إضافة حقل Auto_Date في الجدول (كما اشرت له سابقا) ، بحيث تحصل على ارقام تسلسل لكل سنه بصيغة 1 2 3 ... 100 101 جعفر
  17. وعليكم السلام سؤال: 1. هل قصدك ان الرقم المسلسل يبدأ من اليوم الى ما لا نهاية من السنوات ، او 2. الرقم المسلسل يبدأ سنويا؟ اذا جوابك كان رقم 2 ، فيجب وجود حقل في الجدول فيه معلومة عن تاريخ ادخال السجل ، وانا دائما يكون عندي حقلين في جميع الجداول اللي اعملها: Auto_ID : ترقيم تلقائي ، Auto_Date : نوع تاريخ ، ونضع القيمة الافتراضية التالية في الجدول: Now بهذه الطريقة ، يكون كود الترقيم: If Len(Me.Seq & "") <> 0 Then Exit Sub Me.Seq = Nz(DMax("[Seq]", "tb1", "year([Auto_Date])=" & Year(Now)), 0) + 1 جعفر 679.1.ترقيم جديد كل سنة جديدة وبجداول جديدة.accdb.zip
  18. السلام عليكم بما ان أخي شفان جاء بكود اخونا أبو ابراهيم الغامدي ، فاليك التغيير المطلوب لحل مشكلتك: Function GetNumbersOnly(SText) Dim Numbers if len(SText & "")=0 then GetNumbersOnly="" exit function end if For i = 1 To Len(SText) If IsNumeric(Mid(SText, i, 1)) Then Numbers = Numbers & Mid(SText, i, 1) End If Next GetNumbersOnly = Trim(Numbers) End Function جعفر
  19. السلام عليكم شباب أخي أوس ، خلينا من اللف والدوران ، والاشارة بين الروابط إذن الفكرة ان كل يرنامج سيكون لديه الصلاحية في الدخول لهذه الصفحة وانزال البرنامج المرفق فيها ، بغض النظر عن الرابط ، اذا الجواب نعم ، ضع برنامجك في موقع معين ، واعطنا صلاحية تغيير الملف ، وخلينا نجرب عليه جعفر
  20. وعليكم السلام شوف الرابط التالي ، قد يفيدك جعفر
  21. أخي محمد المفروض ان تختار الجواب الاصح ، كأفضل مشاركة ، ولا تختار مشاركتك!! ولقد سبق ان قمت بنفس الشيء في مشاركة سابقة ايضا جعفر
  22. وعليكم السلام رجاء النظر في المرحلة الاولى من التقرير . وهو عبارة عن تقرير رئيسي وفيه تقرير فرعي ، الآن يجب عليك عمل تقريرين فرعين (حسب شكل الصورة التي ارفقتها) ، واهم شيء في هذين التقريرين هو عمل الاستعلام الذي سيأتيك بالمعلومات ، فيجب عمل معيار حسب السنوات التي تريدها ونصيحة: اعمل اول تقرير فرعي ، وضعه في التقرير الرئيسي ، ولما يكون كل شيء تمام ، اعمل نسخة منه للتقرير الثاني ، ونسخة من الاستعلام ، ثم قم بتغيير معيار الاستعلام ليتلائم مع طلبك ، ثم ضعه في التقرير الرئيسي جعفر 680.الاجازات - Copy.accdb.zip
  23. الرابط يعطيك احد الاسباب جعفر
  24. تفضل if left(me.activecontrol,1)="*" and right(me.activecontrol,1)="*" then me.Barcode_Field_Name = me.activecontrol cancel=true exit sub endif جعفر
  25. شكرا اخي حامد ، عندما تُدخل رقم/حرف/اشارة/رمز في الكمبيوتر ، فهي قيمة تراها انت ، ولكن الكمبيوتر يرى هذه الارقام ، وكنت اتمنى ان ارى رقم (رقم + انتر) ، ولكنه ليس هناك في هذه الحالة الافضل لك ان جعفر
×
×
  • اضف...

Important Information