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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. شكرا جزيلا يا باشا 🙂 جعفر
  2. وعليكم السلام 🙂 حسب علمي كمبرمج (والمحاسب سيعطي اجابة ادق🙂) ، يكون فيه جدول لقيمة المواد ، وكلما جبت بضاعة جديدة ، يتم اضافتها لهذا الجدول ، وقت البيع ، وهنا تختلف طرق الحساب: 1. تقدر تأخذ آخر قيمة للمادة ، دائما ، وتستعملها في كسعر المادة للبيع ، 2. تقدر تأخذ معدل قيمة المادة ، وهذه القيمة لها علاقة بكمية المادة التي بيعها بالفعل ، والكمية الجديدة ، وهنا قد تأخذ معدل القيمة من جدول القيم فقط ، او تأخذ المعدل بإستخدام المواد ايضا 🙂 ولكن في جميع الاحوال ، القيم القديمة تظل كما هي ، وبدون عمل اي تغيير عليها 🙂 جعفر
  3. وعليكم السلام اخوي حسين 🙂 شكرا جزيلا على هذه الطريقة 🙂 هناك طريقة اخرى سهلة وقد تكون اكثر فائدة: على افتراض ان اسم البرنامج myDB.mdb : 1. عمل صورة بحجم 1x1 بكسل (مرفق نسخة) ، وتسميتها بنفس اسم البرنامج ولكن بصيغة bmp هكذا : myDB.bmp ، ووضعها في نفس مجلد الملف myDB.mdb ، بهذه الطريقة لن تشاهد اي شيء الى ان يفتح البرنامج (إلا اذا كنت شديد الملاحظة ورأيت الصورة بهذا الحجم 🙂 ) . 2. عمل صورة فيها اسم الشركة وشعارها وارقامها ، واسم البرنامج ، بالحجم المناسب ، وتسميتها بنفس اسم البرنامج ولكن بصيغة bmp هكذا : myDB.bmp ، ووضعها في نفس مجلد الملف myDB.mdb ، بهذه الطريقة يفتح البرنامج بهذه الصورة (ويفرح المدير 🙂) بدلا عن شاشة الاكسس Splash screen 🙂 . جعفر 1x1_For_Hiding_Splash_Screen.bmp
  4. ياريت تخبرنا وين كانت المشكلة 🙂 جعفر
  5. الطريقة الصحيحة في قاعدة البيانات ان: تضيف حقل للسنة ، ولنسميه iYear ، عادة يكون هناك نموذج رئيسي دائما مفتوح ولنسميه frm_Main مثلا ، قم بعمل مربع تحرير Combobox للسنوات الموجودة في حقل السنه ، وعند فتح النموذج ، اجعل القيمة التلقائية التي يأخذها هذا المربع : me.iYear.value= year(Date) . وتكون نماذجك مصدر بياناتها استعلامات ، وفي الاستعلام في حقل السنه ، اجعل المعيار: Forms!frm_Main!iYear . بهذه الطريقة يمكنك الاحتفاظ ببيانات جميع السنوات السابقة ، ولن يحصل اي خلط بين بيانات السنين 🙂 كيف عرفت انا هذه الطريقة ؟ لأني طبقتها على برامج المخازن والمحاسبة للعديد والعديد من المؤسسات ، والطريقة ناجحة وبإمتياز 🙂 جعفر
  6. شكرا جزيلا اخوي ابوالحسن 🙂 جعفر
  7. رجاء تعطينا فكرة عن العملية ، فانا ما فهمت 😞 جعفر
  8. بل طبقته على تقرير ، لاحظ اسم التقرير : . . كلما في الامر اني حفظت النموذج بضيغة تقرير ، فانا وضحت لك في مشاركتي السابقة ، واليك توضيح آخر: الاكسس فيه خاصية تحويل كائن النموذج الى كائن تقرير ، يعني اذا كان عندك نموذج ، واردت ان تعمل تقرير شبيه له ، فيمكنك تحويل النموذج الى تقرير ، والتعديل عليه وحذف الكود والازرار التي به ، هكذ : . اذا وضعت مؤشر الفأرة على كلمة acOutputReport في الكود ، ثم ضغطت على زر F1 ، فسترى البدائل الاخرى التي يمكنك تصديرها ، فقط تأكد بمطابقة نوع الكائن الذي تريد تصديره (مثلا acOutputForm) ، بوضع اسمه الصحيح (fform) : . جعفر
  9. وعليكم السلام اخي احمد 🙂 شكرا لك على جميل كلماتك ، وان شاء الله يتقبل الله منا هذا القليل 🙂 جعفر
  10. الكود صح 100% حسب شرحك 🙂 ما عدا المسافة الزائدة هنا : . 1. رجاء عرض رسالة الخطأ والسطر الذي به الخطأ ، 2. التأكد من نوع الحقول في الجدول ، 3. الحقلين : Forms!Fatora_be!Fat_num و Forms!Fatora_be!Kind_haraka يجب ان يكونوا : أ. اسماء الحقول في النموذج وليس ب. مصدر الحقول . جعفر
  11. وعليكم السلام 🙂 تفضل : بدل هذا السطر 'curPath = DTPath & "\salah- " & Format(Date, "dd-mm-yyyy") & ".xlsx" استعمل هذا curPath = DTPath & "\" & Me.ChooseTble & ".xlsx" وكذلك تم تغيير مكان هذه الاسطر في الكود ، ليصبح كود التصدير الى اكسل: Private Sub أمر26_Click() On Error Resume Next Dim curPath As String Dim xlApp1 As Object 'Excel.Application Dim xlWB1 As Object 'Excel.Workbook If IsNull(Me.ChooseTble) Then Beep MsgBox "اختر الجداول المراد تصديرهم" Exit Sub End If If Box.ItemsSelected.Count = 0 Then Beep MsgBox "اختر الحقول مراد تصديرهم" Exit Sub End If DTPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") 'curPath = DTPath & "\salah- " & Format(Date, "dd-mm-yyyy") & ".xlsx" curPath = DTPath & "\" & Me.ChooseTble & ".xlsx" Dim Ssql As String For Each varItm In Box.ItemsSelected Ssql = Ssql & "[" & Box.ItemData(varItm) & "] ," Next varItm Ssql = Mid(Ssql, 1, Len(Ssql) - 1) Ssql = "select " & Ssql Ssql = Ssql & " from " & ChooseTble Set QFEx = CurrentDb.CreateQueryDef("Qtoexport", Ssql) DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Qtoexport", curPath, , "Qtoexport" 'DoCmd.OutputTo acOutputQuery, "Qtoexport", acViewPreview DoCmd.DeleteObject acQuery, "Qtoexport" Set xlApp1 = CreateObject("Excel.Application") xlApp1.Visible = False 'True Set xlWB1 = xlApp1.Workbooks.Open(curPath) Set xlWs1 = xlWB1.Worksheets("Qtoexport") xlWs1.DisplayRightToLeft = True xlWB1.Save xlApp1.Quit Set xlWs1 = Nothing Set xlWB1 = Nothing Set xlApp1 = Nothing MsgBox "لقد تم تصدير البيانات بنجاح" End Sub جعفر
  12. وعليكم السلام 🙂 حسب معرفتي ، لا يمكن ، ولكن تستطيع استعمال تقرير في وضع المعاينه ، واذا اردت عمل تغيير ، فانقر على الحقل مرتين مثلا ، فإجعل نموذج آخر يفتح على الحقل الذي انت عليه ، لكي تقوم بتعديل بياناته 🙂 جعفر
  13. وكذلك اجابة السؤال الأول 🙂 وبدون عمل تغيير على اعدادات الحقل ، لما تريد تنزل للسطر التالي في الحقل ، امسك زر المفاتيح Ctrl ثم اضغط على الزر Enter 🙂 جعفر
  14. اخي الفاضل ، المعادلة التي وضعتها لك هي نفس طلبك هذا ، وخليني اشرحها لك: myDate = تاريخ احالة المعاش D2 = خ = تاريخ اليوم / او تاريخ المقارنة = 2021 Dim myDate As Date If D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30) Then اذا خ بين 1/1/2021 و 30/6/2021 اذن تاريخ احالة المعاش = 30/6/2021 myDate = DateSerial(Year(D2), 6, 30) ElseIf D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30) Then اذا خ بين 1/7/2021 و 30/9/2021 اذن تاريخ احالة المعاش = خ myDate = D2 Else اذا خ غير عن الشروط اعلاه اذن تاريخ احالة المعاش = 30/6/2022 وهي السنة التالي myDate = DateSerial(Year(D2) + 1, 6, 30) End If جعفر
  15. اخي الفاضل ، في الاكسس ، تقدر تستعمل الطريقتين ، وخصوصا اذا اردت حفظ هذه القيمة في الجدول 🙂
  16. وعليكم السلام 🙂 الظاهر فيه خطأ في معادلتك ، فلما الصقتها في الاكسل اعطاني خطأ !! على العموم ، الظاهر معادلتك تكون هكذا في الاكسس: بطريقة iif والتي لا انصحك بها ، لأنك ما بتعرف كوعك من بوعك ، ولا بتقدر تعمل تعديل عليها : dim myDate as date myDate = IIf(D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30), DateSerial(Year(D2), 6, 30), IIf(D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30)), D2, DateSerial(Year(D2) + 1, 6, 30)) وبطريقة if السهلة الفهم والتعديل : Dim myDate As Date If D2 >= DateSerial(Year(D2), 1, 1) And D2 <= DateSerial(Year(D2), 6, 30) Then myDate = DateSerial(Year(D2), 6, 30) ElseIf D2 >= DateSerial(Year(D2), 7, 1) And D2 <= DateSerial(Year(D2), 9, 30) Then myDate = D2 Else myDate = DateSerial(Year(D2) + 1, 6, 30) End If جعفر
  17. صبحك الله بالخير اخوي خالد 🙂 انا ضعت ، فرجاء التوضيح: انت قلت الطريقة صحيحة: ثم قلت الخبراء لا ينصحون: جعفر
  18. الرابط يعطيك طريقة الحل 🙂 وبما ان سؤال الموضوع "رسالة خطا فى ويندوز ١٠ نطام ٦٤" قد تمت الاجابة عليه ، فرجاء اتباع قوانين المنتدى بعدم وضع سؤال آخر فيه 🙂 جعفر
  19. اذن فنحن مجتاجين الى مرفق 🙂 جعفر
  20. وعليكم السلام 🙂 اذا اردت ان تجعل هذه القيمة الافتراضية في النموذج ، فيجب ان يكون النموذج في وضع التصميم ، ويمكن عمل كود يغلق النموذج ثم يفتحه بصورة مخفية ويضع الكود فيه ويحفظه ويغلق النموذج ، ولكنها طريقة غير محبذه ولا يمكن استعمالها في قواعد البيانات بصيغة accde و mde ، فالافضل ان يكون عندك جدول خاص لهذه الاعدادات ، تقدر تحفظ فيه اي قيمة ، ولما تفتح النموذج ، تطلب هذه القيمة من الجدول 🙂 جعفر
  21. من بحثي عن هذه المشكلة ، اليك ما قرأته ، ويمكن احدهم/كلهم يصلح المشكلة : 1. جرب البرنامج في الرابط : عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) فقد يكون عندك بقايا كود لم يحذفه الاكسس ، او مشكلة في جدول الاعدادات ، 2. عند عمل اي ربط مع قاعدة بيانات خارجية ، سواء عن طريق Recordset او غيرها ، يجب عليك في نهاية الكود ان تعمل له close ثم تجعله يساوي Nothing ، لأنك واقعا تكون فتحت قاعدة بيانات اخرى ، او سطر مثل DAO.DBEngine.SetOption dbMaxLocksPerFile, 100000 3. عند عمل Mail merge مع الوورد ، يجب التأكد بأنك اغلقت الربط في الكود ، 4. واسهل طريقة انك تعرف وين المشكلة في برنامجك ، افتح برنامجك حصريا لك : من اي قاعدة بيانات مفتوحه : او من برنامج الاكسس : . ثم . بهذه الطريقة ، اي جزء من الكود يحاول ان يفتح اتصال جديد ، سيعطيك الاكسس خطأ ، وهنا يجب ان تتبع الكود حتى تصل الى الجزئية/السطر الذي به المشكلة 🙂 جعفر
  22. انا راح اعطيك التورته بكل اشكالها ، وانت اختار اللي تحبها ، بس بشرط انك تأخذ قطعة واحدة من كل نوع 🙂 Dim myWhere As String myWhere = "fat_num = " & Forms!Fatora_be!Fat_num 'اذا رقم myWhere = "fat_num = '" & Forms!Fatora_be!Fat_num & "'" 'اذا نص myWhere = "fat_num = #" & Forms!Fatora_be!Fat_num & "#" 'اذا تاريخ myWhere = myWhere & " And " myWhere = myWhere & "kind_haraka = " & Forms!Fatora_be!Kind_haraka 'اذا رقم myWhere = myWhere & "kind_haraka = '" & Forms!Fatora_be!Kind_haraka & "'" 'اذا نص myWhere = myWhere & "kind_haraka = #" & Forms!Fatora_be!Kind_haraka & "#" 'اذا تاريخ Me.total_fatora = Nz(DSum("total", "Haraka", myWhere), 0) جعفر
  23. شكرا اخوي خالد 🙂 يعني يجب التأكد من وجود قيمة في الحقل قبل تنفيذ الامر !! جعفر
  24. الحمدلله 🙂 هذا الرابط سيفيدك : اجعل برنامجك يعمل على النواتين 32بت و 64بت - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
×
×
  • اضف...

Important Information