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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. وعليكم السلام أخي كرار رجاء ارفاق عدة نماذج من برنامجك ، وخليني اشوف الموضوع عن قرب ولكني لاحظت في الصورة اعلاة ، انه حدث "حدثت مشكلة اثناء فتح الماكرو" ، فطبيعي ما يحول الماكرو الى كود جعفر
  2. وعليكم السلام أخي محمد ، وعذرا على التأخير 1. الزرين عندك بنفس الاسم ، فما عرفت ايهم يعمل ماذا 2. في كود الزرين ، انت قلت ان ملفات الـ pdf موجودة في Path1 = Application.CurrentProject.Path & "\" file1 = Path1 & Me.name_morfke بينما في الصورة التي ارفقتها ، فعندك "مسار فولدر الحفظ" ، فهل الاثنان نفس الشئ ، وإلا ، فرجاء تغيير مسار الملفات في الكود اعلاه ، جعفر
  3. السلام عليكم تذكرت اني في يوم من الايام ساعدت احد الشركات في مشكلة تختلف قليلا عن هذ المشكلة ، وقد عملت كود لهم ، فالرجاء النظر في الكود (سهل) ، ثم عمل شئ مماثل لمشكلتنا التي تنكلم عنها في هذا الموضوع ، والموضوع بإختصار ، هو إعادة محاولة حفظ السجل كل نصف ثانية (ولمدة 20 ثانية) (والمفروض ان قطع الاتصال يأخذ أقل من هذا): Private Sub Form_BeforeUpdate(cancel As Integer) On Error GoTo err_Form_BeforeUpdate Dim a, msg As String Dim mTries, nTries As Integer Dim PauseTime, Start As Double 'MsgBox "Before update" TryAgain3: DoCmd.RunCommand acCmdSaveRecord Exit Sub err_Form_BeforeUpdate: If Err.Number = 3218 Or Err.Number = 3261 Then 'Could not update; currently locked 'show the user a busy mouse cursor, which indicates the system is busy DoCmd.Hourglass True 'Maximum allowed tries (seconds) mTries = 20 'how many times did we try nTries = nTries + 1 'give up if the number of tries equals the maximum allowable tries If mTries = nTries + 1 Then msg = "The table Phone_Data seems to be busy," & vbCrLf & _ "Do you want to try again?" If MsgBox(msg, vbYesNo + vbDefaultButton1, "Process taking too long") = vbYes Then nTries = 1 Else DoCmd.Hourglass False a = SysCmd(acSysCmdSetStatus, "Ready") Exit Sub End If End If 'pause 1 second 'PauseTime = 1 ' Set duration. PauseTime = 0.5 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop a = SysCmd(acSysCmdSetStatus, "Table is busy, number of tries = " & nTries & " of " & mTries) 'ignore the error this time, and start again Resume TryAgain3 ElseIf Err.Number = 2115 Then 'complaints about the SaveRecord command, ignor 'version 5: 'We have to know the error number of the error message 'commented the line below, 'added 4 lines 'commented the endif 'Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Next 'End If End Sub جعفر
  4. وعليكم السلام أخي أوس نعم هذه نقطة هامة ايضا ، لذلك ، وفي تنسيق حقل التاريخ في الجدول ، يجب ان يكون التنسيق dd/mm/yyyy او اي تنسيق رقمي آخر ، فهذا سيحل المشكلة من البداية اسمح لي أخي أبو عبدالله ان اقول ، انه لا يُفضل الكتابة باللغة العربية في اي من كائنات البرنامج ، إلا كبيانات في جدول ، لأني يوم من الايام صادفت مشكلة في هذه النقطة كذلك جعفر
  5. وعليكم السلام نعم هناك خلل في الاكسس (تجربتي مع اكسس 2010) مع هذه الاعدادات ، وثقيل لما ينتقل من حقل الى آخر ، ولكن بعد تحديثات الاكسس ، كل شئ تمام الان هذا رابط حزم تحديثات الاكسس: http://pcsupport.about.com/od/keepingupwithupdates/a/office-service-pack.htm جعفر
  6. السلام عليكم اذا كان هذا الذي تريد: . فالكود اصبح: Option Compare Database Dim rst As DAO.Recordset Function Get_Dates(ID) mySQL = "Select * From tbl_Loans" mySQL = mySQL & " Where [EmployeeID]=" & ID mySQL = mySQL & " And Year([Payment_Month])= " & [Forms]![FrmOtherDiscountReport]![txtYear] mySQL = mySQL & " Order by Payment_Month" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For I = 1 To RC Get_Dates = Get_Dates & vbCrLf & rst!Remarks rst.MoveNext Next I Get_Dates = Mid(Get_Dates, 3) ' If RC = 1 Then ' ' Get_Dates = "Discount for the month " & Format(rst!Payment_Month, "m/yyyy") ' Else ' ' For I = 1 To RC ' ' If I <> RC Then ' ' Get_Dates = Get_Dates & " and " & Month(rst!Payment_Month) ' Else ' ' Get_Dates = Get_Dates & " AND " & Format(rst!Payment_Month, "m/yyyy") ' End If ' ' rst.MoveNext ' ' Next I ' ' Get_Dates = "Discount for the months " & Mid(Get_Dates, Len(" and ")) ' ' End If End Function جعفر
  7. سيدي الفاضل لما تنقص رقم صغير من رقم كبير ، فلابد وان تكون النتيجة بالسالب ، وهذا ما يظهر لك بإشارة - وجربت المرفق ، ولم يحذف السجل ، ولكني لاحظت ان ترتيب الانتقال من حقل الى آخر غير صحيح ، لاحظ الصورة ، فالارقام الحمراء هي التسلسل ، والحقل m_id مثلا ، بدل ان تكون قيمته 1 ، فانها 3 !! . اذا لم افهم طلبك ، رجاء التوضيح اكثر جعفر
  8. لا ، وانما المشكلة في اي لغة / حروف غير اللغة الانجليزية ، فاذا استخدمت حروف اللغة الفرنسية مثلا ، ولأن بها حروف غير Unicode ، فستظهر لك المشكلة :( جعفر
  9. اذا فهمت قصدك صح: 1. بالنسبة الى خصم من الراتب لشهر x و yyyy/mm ، فيظل مثل ما عملته ، 2. اذا تم الدفع بطريقة اخرى ، تريدها ان تٌكتب ؟ جعفر
  10. الحمدلله :) ولكن ايش كانت المشكلة ؟ وهل ممكن ترفق جزء من البرنامج ، والذي يعمل بدون رسائل خطأ :) القصد من هذا كله ، ان نقول ، نعم ممكن عمل برنامج يعمل على جميع الاعدادات ، وبدون رسائل خطأ :) جعفر
  11. انا لا اعرف رقم الخطأ ، ولكن الطريقة صحيحة ، حيث انك تقرأ اي معلومة من اي جدول ، واذا لم تصل المعلومة الى الكود ، فتعرف ان الاتصال انقطع :) طيب واذا في انقطاع ، ماذا يجب على البرنامج عمله ؟؟ انا كان اقتراحي وجود جداول محلية ، وعند وجود الشبكة ، يتم تصدير البيانات :) جعفر
  12. اذا كان قصدك الكتابة بالعربي ، فللأسف لا استطيع ، لأني على سفر واللابتوب مستعار ، والاكسس لا يكتب عربي في الكود ، ولا استطيع تغيير اعدادات الكمبيوتر :( ولكنك تستطيع عمل هذا بكل بساطة ، بتغيير الكلمات من انجليزي الى عربي :) فهل قصدك انك تريد ان يكون الجواب ، لكل شهر سطر؟ يعني اذا كانت الدفوعات لشهرين ، تريد ان يكون الجواب سطرين ، واذا كانت الدفوعات لثلاثة اشهر ، تريد الجواب ان يكون 3 اسطر؟ جعفر
  13. السلام عليكم أخي محمد :) رجاء ارفاق البرنامج مرة اخرى ، فالبرنامج لا يعمل :( جعفر
  14. هذا الكلام صحيح ، والطريقة الاصح هي استخدام Recordset لقراءة المعلومة ، وهناك كود لربط الواجهة FE بالجداول BE ، اعتقد يمكن استعماله بتغيير بسيط للتأكد من وجود الشبكة :) انا على سفر ولا املك برامجي لوضع مثال :) جعفر وهناك طريقة سهلة وهي عمل ping للكمبيوتر الذي به الجداول ، ومعرفة اذا كان متصل :-)
  15. السلام عليكم :) أخي ابوعبدالله ، نموذجك كله بالعربي !! . الغي هذا النموذج وجرب البرنامج. المفروض ان البرنامج لا يحتوي على اي كتابة بالعربي (unicode) في اي مكان في البرنامج ، إلا كبيانات في الجدول فقط :) جعفر
  16. السلام عليكم :) أخي مؤمن ، هل حصلت على الاجابة المطلوبة؟ اذا لا ، فالرجاء ارفاق برنامجك ، وتوضيح المطلوب :) جعفر
  17. السلام عليكم :) لا يُنصح بإستخدام الاكسس في شبكة وايرلس ، لأن الشبكة حتى لما تعمل بالطريقة الصحيحة ، فإنها تكون متقطعة ، فعليه تكون مشكلة في تواصل البيانات :( احد الطرق اللي ممكن تستعملها هي ، ان تكون نماذجك غير مضمنه / غير مربوطه بجدول او استعلام ، ويكون عندك زر لحفظ البيانات ، وقبل حفظ البيانات في الجدول ، يجب ان تقرأ من الجدول (تقرأ اي شئ ، فقط للتأكد ان الشبكة موجودة) ، وعندها تحفظ البيانات ، الطريقة الاخرى اللي على بالي هي ، ان تكون بياناتك محلية ، وبين كل فترة ، يقوم البرنامج ، وبعد التأكد من وجود الشبكة ، بنقل البيانات الى قاعدة البيانات الاصل :) جعفر
  18. وعليكم السلام :) 1. انا جربت الكود قبل ان اضعه ، وجربته مرة اخرى الان ، وهو يعمل كما يجب ، فما قصدك انه "لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -" 2. حتى ولو اخفيت السجل الجديد "والذي يظهر فيه New" ، فالمستخم يستطيع ان ينتقل الى الحقل الجديد وبدون ان يملئ بيانات الحقل الذي هو عليه ، فالطريقة الصحيحة لإجبارة ، هي كما اقترحت عليك. جعفر
  19. السلام عليكم :) تفضل :) الاستعلام: . الوحدة النمطية: Option Compare Database Dim rst As DAO.Recordset Function Get_Dates(ID) mySQL = "Select * From tbl_Loans" mySQL = mySQL & " Where [EmployeeID]=" & ID mySQL = mySQL & " And Year([Payment_Month])= " & [Forms]![FrmOtherDiscountReport]![txtYear] mySQL = mySQL & " Order by Payment_Month" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount If RC = 1 Then Get_Dates = "Discount for the month " & Format(rst!Payment_Month, "m/yyyy") Else For I = 1 To RC If I <> RC Then Get_Dates = Get_Dates & " and " & Month(rst!Payment_Month) Else Get_Dates = Get_Dates & " AND " & Format(rst!Payment_Month, "m/yyyy") End If rst.MoveNext Next I Get_Dates = "Discount for the months " & Mid(Get_Dates, 5) End If End Function . النتيجة: . والتقرير: . جعفر Discount.zip
  20. السلام عليكم انا على سفر ، وبعيد عن الكمبيوتر ، لهذا السبب انا بعيدا عن المنتدى عندي ملاحظة واحدة فقط ، وبحسب خبرتي في هذا الموضوع: الكمبيوتر يعطي أولوية تنفيذ أوامر CPU إلى برامج الوندوز ، ثم البرامج الاخرى ، مما قد يُؤخر تنفيذ أوامر برنامج الاكسس ثانية او اثنين ، إذًا ، عند تنفيذ الأمر التالي او أمر مثله: If rs!mish_time = Time() Then قد يكون CPU الكمبيوتر مشغولا ، وعند تنفيذ الامر ، الوقت لن يكون مطابقاً ، لأننا نقارن الوقت بالثواني ، وحينها ، فالمعادلة لن تُنفّذ !! لذلك ، ولتفادي هذه المشكلة ، اجعل مقارنة الوقت: إما بالساعة والدقيقة وبدون ثواني ، وإما اجعل المقارنة ">=" بدل "=" ، او شئ من هذا القبيل ، وإلا ، فقد يفوتك موعد ولن تعرف لماذا جعفر
  21. حياك الله في الواقع كنت مفكر أضع كود لكل نموذج/تقرير علشان يربط الصور ، بس ما كان عندي وقت جعفر
  22. وعليكم السلام برنامجي: يقوم بربط الصور من الاسكانر ، في مجلد تابع لمجلد البرنامج ، و ربط الصور بدون حقول في الجدول. جربه ، وانقله بين مجلدات الكمبيوتر وسترى انه يعمل بكفائة ولاحظ طريقة تسمية الصور ، فبالتالي تستطيع ان يكون عندك أي عدد من الصور للسجل الواحد جعفر
×
×
  • اضف...

Important Information