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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. حياك الله اخوي عبدالله ممكن حل المشكلة بالطريقة التي ذكرتها ، ولكنها ستكون جامدة ، ومحتاجة الى مبرمج لتغييرها وقت الحاجة الطريقة التي اخبرتك عنها هي الطريقة المتبعة والتي ينصح بإستعمالها المحترفين ، والتي استعملها في جميع برامجي ، ومن السهل ان تضيف او تغير او تحذف اي من البيانات فيها وطبعا نحن نعرف انه ليست كل الخيارات في الاكسس هي خيرات جيدة للبرنامج ، فمنها Lookup الجداول ، والصور المضمنة ، و Autocorrect Text ، ووو لذا يجب ان نكون حذرين منها جعفر
  2. اخي وضاح الكود يعمل بشكل صحيح ، ولكن ملاحظتك هي حول: متى استعمال الكود ، اي متى تريد الكود القيام بالحسبة ، وهذا الذي يصير في المرفق اعلاه جعفر
  3. انت لا تزال تطلب الترقيم 1 2 3 4 .... وبدون السنه ، وهذا ما اعطيتك في مرفقي الاخير ، فهل جربته؟
  4. السلام عليكم انا شرحت الفكرة نوعا ما في مشاركتي واسمحوا لي بأن ابدأ العمل في هذا البرنامج ، وبموضوع مستقل ان شاء الله وشكرا اخي ابو عبدالله التذكير والرابط ، فموضوع اخونا العود ابو خليل كان على بالي وكنت سأستخدمه بطريقة او اخرى جعفر
  5. حيالله اخوي طارق مو هذا القصد ، القصد التوضيح ، مثل الصورة اللي ارفقتها انا وشرحت كل الموضوع جعفر
  6. وعليكم السلام للأسف ما اتوصلت لعمل اللي تريده وبحثت في الانترنت كذلك ، ولم القى شيء كذلك الطريقة الوحيدة هي عمل جدول خاص للقائمة ، وبالتالي يمكنك استعمال Lookup في الجدول ، ولكن للعلم ، فاستخدام Lookup في الجداول غير مُحبّذ ، وبه عدة مشاكل ، وانت صادفت احد هذه المشاكل ، والطريقة الصحيحة هي عمل جدول خاص للقائمة ، وتستعمل القائمة في النموذج فقط. جعفر 689.Database1.accdb.zip
  7. اعمل زر في النموذج ، وعلى حدث الزر ضع الكود ، ولكن يجب ان تعرف ان الاكسل قبل 2007 يعني اللي بصيغة xls يستوعب حوالي 65,536 سجل فقط جعفر
  8. وعليكم السلام في اكثر من طريقة ، ولكن اليك الاسهل: expression.TransferSpreadsheet(TransferType, SpreadsheetType, Table/ Query Name, FileName, HasFieldNames, Range, UseOA) واستعمالها DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Employees", "C:\Temp\Newemps.xls", True او expression.OutputTo(ObjectType, Table/ Query Name, OutputFormat, OutputFile, AutoStart, TemplateFile, Encoding, OutputQuality) واستعمالها DoCmd.OutputTo acOutputTable, "Employees", acFormatXLS, "C:\Temp\Newemps.xls", True او جعفر
  9. السلام عليكم موضوع التحديث كبير وفيه عدة نقاط والتي يجب النظر فيها ، مثلا: 1. تحديث FE فقط ، 2. تحديث FE ، وعمل تغيير على الجداول. خلينا في النقطة الاصعب والاهم ، وهي انزال النسخة الاحدث من الموقع كنتم 3 محترفين في عمل هذا الموضوع ، وانت قررت ان الخطوة التالية "معقدة بعض الشيء بالنسبة" فأرجو من اخي @Shivan Rekany و اخي @أبو عبدالله الحلوانى ان يتطوعوا لهذا العمل (او يعتذروا) ، وإلا فأنا مستعد ان شاء الله جعفر
  10. السلام عليكم شكرا أخوي ابو خليل ، فانت شجعتني ان اقوم بأخذ البيانات من النموذج الفرعي ، بدل زيارة الجدول ، وهذه ستكون اسرع الطرق عملت زر جديد ، ووضعت عليه هذا الكود: Private Sub cmd_Search2_Click() On Error GoTo error_Capture2 تابع15.Requery Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Set rst = Me.تابع15.Form.RecordsetClone 'إيرادات rst.Filter = "[نوع السند]='إيرادات'" rst.Sort = "[رقم السند]" Set rst2 = rst.OpenRecordset Me.Erad_From = rst2![رقم السند] rst2.MoveLast Me.Erad_To = rst2![رقم السند] 'اجل rst.Filter = "[نوع السند]='اجل'" rst.Sort = "[رقم السند]" Set rst2 = rst.OpenRecordset Me.Aajel_From = rst2![رقم السند] rst2.MoveLast Me.Aajel_To = rst2![رقم السند] 'مصاريف rst.Filter = "[نوع السند]='مصاريف'" rst.Sort = "[رقم السند]" Set rst2 = rst.OpenRecordset Me.Masareef_From = rst2![رقم السند] rst2.MoveLast Me.Masareef_To = rst2![رقم السند] 'سداد rst.Filter = "[نوع السند]='سداد'" rst.Sort = "[رقم السند]" Set rst2 = rst.OpenRecordset Me.Sadad_From = rst2![رقم السند] rst2.MoveLast Me.Sadad_To = rst2![رقم السند] Exit_error_Capture2: rst.close: Set rst = Nothing rst2.close: Set rst2 = Nothing Exit Sub error_Capture2: If Err.Number = 3021 Then MsgBox "لا توجد بيانات" Resume Exit_error_Capture2 Else Debug.Print Err.Number MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 688.1.لازام نطوره - Copy.mdb.zip
  11. مثل ما قلت لك ، وضعت الكود على زر البحث ، بكرة ان شاء الله جربه على بياناتك الجديدة ، واخبرنا النتيجة 688.لازام نطوره.mdb.zip
  12. أخي طارق ، انا وانت لا نتكلم على نفس الموجه ، لهذا السبب تضيع الكثير من التفاصيل ولكن هذه المرة وبعد عناء ، اعتقد بأني فهمت اللي تريد هل تريد نسخ البيانات هكذا: . جعفر
  13. عفوا ما فهمت قصدك ، لهذا السبب قلت لك من البداية اعطني مثال والكود يجب وضعه على زر البحث ، وخطأ مني ان وضعته على حدث تحميل النموذج اعمل التغيير ، وشوف اذا لازالت المشكلة موجودة. جعفر
  14. طبعا سيكون هناك اكثر من طريقة لعمل المطلوب ، وانا اخترت الطريقة الاسهل لي تفضل الكود ، وقد اعدت مسمى الحقول من والى: 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 زيارات فقط ، ولكنها تأتي ببيانات اكثر من بياناتك ، ثم نصفيها والطريقة الافضل هي ان لا نقوم بأي زيارة للجدول ، فالبيانات موجودة في النموذج الفرعي ، وما علينا إلا ان نستخرجها منها جعفر
  15. وعليكم السلام أخي وضاح اعطنا مثال لوسمحت بارقام من قاعدة بياناتك جعفر
  16. وعليكم السلام اخي عبدالله انا اعتذر منك ، فلم افهم المطلوب ، وياريت مثال توضيحي جعفر
  17. السلام عليكم شباب انا ساكت واستمتع بالتطورات ، لكن مخي يمخخ وراح بعيد لكيفية الاستفادة من هذه الخطوة مادمتم قد قطعتوا المشوار في هذا الطريق البديع (شكرا أخي أوس على الفكرة والكود ، ابو عبدالله وشفان على تعديل الكود) ، فبدل ان ابدأ من البداية ، سوف اضع امامكم الفكرة اللي على بالي ، راجيا منكم بلورتها برمجيا خلينا نتوسع في الفكرة شوي ، لتشمل احتياجات المبرمج ، فاللي على بالي هو: 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. البرنامج سيقوم بإستخدام نفس الكود اعلاه (طبعا مع تغييرات بسيطة اذا دعى الامر ، او نجعل الكود كوحدة نمطية نستطيع استعمالها لإنزال مختلف الملفات من الموقع) ، ويُنزل البرنامج. بهذه الطريقة المبرمج يستطيع ان يُحدث برامجه عالميا ، وبدون الذهاب الى مكتب المستخدم مجرد فكرة جعفر
  18. اخي طارق شو الفرق بين هذا الموضوع ، وهذا صحيح العنوان غير ، ولكن المطلوب وحتى المرفق هو نفسه!! جعفر
  19. حياك الله اخي طارق يمكنك جلب بيانات الاكسل الى الاكسس ، ثم القيام بالعمل مثل ما عملته لك ، اذا تلاحظ في الاستعلام ، فانا كررت نفس العملية لجميع الحقول ، فجرب القيام بذلك ، واذا صادفتك مشكلة ، فانشاءالله تجد المساعدة منا جعفر
  20. عفوا هل انزلت المرفق في مشاركتي الاخيرة؟
  21. وعليكم السلام تفضل الاشارة " يمكن الاشارة اليها برقمها ، والذي هو (chr(34 وهذا لباقي ارقام وحروف الكمبيوتر: http://www.asciitable.com/ فعليه ، نستخدم الامر Replace لإزالة هذه الاشارات ، هكذا: Field1: Replace([Field_xyz],chr(34),"") والنتيجة جعفر 687.tarek.accdb.zip
  22. الكود مافيه شيء 1. هذا معناه ان الواجهة ليست متصلة دائما بالجداول ، وانما يتم الاتصال وقت حفظ البيانات ، اذا كان هذا صحيح ، فالافضل ان يكون عندك من بداية تشغيل البرنامج نموذج مخفي فيه بيانات من جدول , ويمكن ان يكون جدول فيه اسم/رقم البرنامج فقط ، المهم ان يكون الاتصال بين الواجهة والخلفية مستمر وغير منقطع من بداية تشغيل البرنامج ، 2. ولو انه سؤال سخيف ، هل برنامجك على نفس القرص الذي عليه نظام السيرفر؟ من المهم جدا ان لا تضع قاعدة بياناتك في القرص الذي عليه نظام الكمبيوتر، الوندوز ، سواء على السيرفر او على اي كمبيوتر آخر ، نعم انا قلت قرص ولم اقل partition ، يعني اذا القرص فيه C و D و E ، فلا تضع البرنامج على اي واحد منهم ، وانما ضعه على قرص آخر ليش؟ لاحظ الكمبيوتر او اللابتوب ، وبدون ان تشتغل عليه ، تلقى ضوء القرص دائما يولع وينطفئ ، هذا معناه ان نظام الكمبيوتر ، الوندوز ، يقوم بالعديد من الاعمال في الخلفية ، واذا النظام اعطى امر لتعديل شيء معين فيه ، وفي نفس الوقت قمت انت بطلب شيء معين في قاعدة بياناتك (مثل استعلام او حفظ بيانات او ...) ، ولآن النظام وبرنامجك على نفس القرص ، فالكمبيوتر سيجعل برنامجك ينتظر الى ان ينتهي من امر النظام ، بينما اذا كان برنامجك في قرص مستقل ، فـ CPU سيعطي الامر لكل قرص لعمل اوامره الخاصة به 3. تأكد ان الحقول التي فيها معيار في الاستعلام او في النموذج ، تأكد انها مفهرسة في الجدول ، فالفهرسة تجعل حجم البرنامج اكبر شوي ، ولكنها تجعل التعامل مع بيانات الجدول اسرع الاشياء اللي قلتها: ضغط واصلاح BE و FE ، مكان وجود البرنامج على القرص ، والفهرسة ، هذه جميعا لي تجارب معاها جعفر
  23. تفضل ويجب فتح التقرير من النموذج. وللعلم ، برنامجك لا يوجد فيه إلا اسم واحد فقط. جعفر 680.الاجازات - Copy.accdb.zip
×
×
  • اضف...

Important Information