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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. مع مراعاة كلمة "ارتباط" ، فالطريقة اللي توصلنا لها هي الحصول على الرقم المطلوب ، ومن ثم عمل اللي نريده في هذا الرقم ، والذي استخدمناه كمعيار لفتح نموذج آخر ، فالجواب بالطريقة اعلاه ، نعم يمكن ، ولكن لاحظ اننا استخدمنا الارقام فقط (ولو استخدمنا طريقة RegEx لوصلنا للمطلوب بطريقة اسرع ومرونه اكثر 🙂 ) ، فإذا اردت اضافة رموز خاصة وبطريقة معينه ، فالجواب كذلك ، نعم يمكن 🙂 جعفر
  2. وعليكم السلام 🙂 يوجد كود في هذه المشاركة ، وهو يتصيد الخطأ رقم 3022 ، فجرب نفس الطريقة للخطأ 3218 . جعفر
  3. الله يطول في عمرك ، على الاقل خلينا نشوف هذا الحدث بالكامل ، اعرضه هنا (مو صورة منه)، ثم ان الموقع يسمح لإرفاق المرفقات لحوالي 3 ميجا ، فمافي مشكلة في ارفاق ملف في حجم ملفك 🙂 جعفر
  4. السلام عليكم 🙂 شكرا اخوي ابوعبدالله 🙂 وهاي دالة لإستخراج الرقم من وسط بيانات الحقل 🙂 مثلا ننقر مزدوجا على الرقم 12670 : والنتيجة تفتح لنا النموذج مسند على الرقم اعلاه : . ننادي الدالة هكذا ، بحيث نرسل بيانات الحقل ، والنقطة/المكان اللي تم النقر مزدوجا فيها : Private Sub EH_DblClick(Cancel As Integer) DoCmd.OpenForm "مسند", , , "[Mno]=" & Get_Number(Me.EH, Me.EH.SelStart) End Sub . وتقوم هذه الدالة بإرجاع الرقم فقط : Public Function Get_Number(fld As String, P As Long) As Long ' 'fld = Field content 'P = Position left mouse was double clicked in the field 'max_Length = maximun length of numeric field, default is 10 'C = the character to check 'Add_C = Adds the numeric Characters ' '1. check the characters to the Left <----| '2. check the characters to the Right |----> ' ' jjafferr ' v.1 : 21-01-13 ' Dim i As Integer Dim Add_C As String Dim C As String Dim max_Length As Integer max_Length = 10 'Get the numbers on the Left side of the click For i = P To (P - max_Length) Step -1 C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = C & Add_C Else Exit For End If Next i 'Debug.Print Add_C 'Get the numbers on the Right side of the click P = P + 1 For i = P To (P + max_Length) C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = Add_C & C Else Exit For End If Next i Get_Number = CLng(Add_C) End Function . ولكن ، لم اتمكن من تشغيل هذه الدالة على حقل النص المنسق !! جعفر 1326.إحالات.accdb.zip
  5. هذا الكلام صحيح ، اذا كان الحقل نص غير منسق 🙂 نعم ، عن طريق ان يكون النص منسق بكود HTML ، والذي على اساسه تنقر عليه وتعمل الباقي في الكود (قد لا يكون ببساطة الارتباط التشعبي ، فلم اعمل شيء من هذا سابقا) 🙂 جعفر
  6. معظم المبرمجين يعتقدون بأن جمع قيم حقلين في نموذج ، سيعطي نتائج صحيحة ، ولكن المثال الذي ارفقته في مشاركتي السابقة اثبت بأن هذا غير صحيح. فالاكسس يتعامل مع الحقل كتعامله مع Variant ، لهذا السبب يجب ان نخبر الاكسس بأن الحقل (سواء نوع الحقل في الجدول عبارة عن رقم ، او عن طريق تنسيق الحقل ونخبره بأنه رقم) ، او قيمة الحقل نغيرها الى رقم (ونستعمل دوال مثل: Val او Int او cInt او cDbl ، مثل : Val(X) Int(X) cInt(X) cDbl(X) . والموضوع لا يتوقف على النموذج او الكود (سواء في النموذج او التقرير او الوحدة النمطية) ، وانما في الاستعلام والتقرير والماكرو ايضا. جعفر
  7. لا زلت انتظر الجواب !! هذا الرابط يفيدك جعفر
  8. هل حصلت على هذه القيمة من النموذج؟ هذا ما حصلت عليه انا : . وهذه كانت المعادلة : . الخلاصة: لأننا في النموذج لم نذكر نوع الحقول ، فأخذها كنص ، وجمعها كنص !! لهذا السبب يجب ان نخبره نوع الحقل/المتغير علشان نحصل على الاجابة الصحيحة 🙂 جعفر 1325.function.accdb.zip
  9. استخدم الفاصلة بدلا عن As جعفر
  10. الله يطول في عمرك اخي الكريم ، يعني كل شخص بتعطيه البرنامج ، بتطلب منه يقوم بتعديل Registry كمبيوتره !! اما انا ، فلا اسمح لأي برنامج ان يلعب او يغير اعدادات كمبيوتري ، واذا البرنامج يطلب مني هاي ، احذفه ، البدائل كثيرة والحمد لله 🙂 جعفر
  11. خليني احاول اقنعك 🙂 اعمل هذه المعادلة البسيطة في النموذج على النقر على Click : Me.txt3 = Me.txt1 + Me.txt2 والآن ، ادخل هذه القيم في الحقلين: txt1 : 1 txt2 : 3.1 واخبرني اذا حصلت على النتيجة الصحيحة عند النقر على الزر 🙂 جعفر
  12. لان المتغير X و Y عبارة عن Variant الشبية للنص String ، بينما انت تريد ان تجمع الرقمين ، فلابد من تحويلهم الى Double او Integer لتتم عملية الجمع بطريقة صحيحة ، فهنا اخبرنا الكود: اعمل تغيير للمتغير X الى رقم: Convert to Double ، او cDbl 🙂 الطريقة المثلى للتعامل مع دوالنا الخاصة (سواء في النموذج او الوحدة النمطية) هي ، ارسال القيمة جاهزة اليها ، اي نضبط القيم قبل ارسالها للدالة ، وفي حال موضوعك هو: عند ارسال المعلومة: If Len(Me.txt1 & "") = 0 Then MsgBox "Please enter a value" Me.txt1.SetFocus ElseIf Len(Me.txt2 & "") = 0 Then MsgBox "Please enter a value" Me.txt2.SetFocus Else Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) End If . فتصبح الدالة: Function m(x As Double, y As Double) As Double m = x + y End Function . ولكن لأنك قلت انك تريد الفحص في الفنكشن ، لهذا السبب شفت محاولات الشباب 🙂 : .. . . من وين وصلتك هذه المعلومة ، فأنا لم اتكلم عنها لا من قريب ولا من بعيد !! في الواقع ، لذة البرمجة هي في عمل الدوال والتي بها يتم اختصار العمل وعدم عمل تكرار للكود 🙂 جعفر
  13. في هذه الخانة بدل عن المعادلة الموجودة عندك ، مع مراعاة تغيير B و C الى اسماء الحقول اللي عندك ، واذا ما عرفت كيف تعمله ، ارفق لنا معادلتك هنا حتى نصححها لك
  14. وعليكم السلام 🙂 واهلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى من هنا: منتدي أوفيسنا - قواعد طرح المشاركات (officena.net) جوابا على سؤالك ، احد الطرق ، يمكنك حل المشكلة بإستخدام الامر Replace : [A] = Replace([B],"*","") + Replace([C],"*","") جعفر
  15. اذا لم تكتب نوع المتغير ، فتلقائيا يأخذه الاكسس على انه Variant ، لذا ، مافي داعي تكتب انه Variant 🙂 وبتوسع لما كتبه اخي احمد : Function m(x, y) As Double If Len(x & "") = 0 Then MsgBox "Please enter a value for X" ElseIf Len(y & "") = 0 Then MsgBox "Please enter a value for Y" Else m = CDbl(x) + CDbl(y) End If End Function جعفر
  16. اعتذر منك اخوي عاطف ، فأنا لا املك اي من برامج التواصل الاجتماعي 🙂 وبما ان الموضوع تابع للمنتدى ، تفضل وتواصل معي هنا 🙂 جعفر
  17. لما نقرت على الصورة : . ولكن السؤال ، ليش ما ترفقها في الموضوع مباشرة : في اسفل المشاركة ستجد هذا الشكل : 1. امسك الصورة من مجلدك ، وافلته في اي مكان في المربع الاحمر الكبير (الرقم 1 ) ، 2. او انقر هنا واختار ملفاتك ، وسترى ان الصور جاهزة ، اذهب الى المشاركة ، وفي المكان الذي تريد ان تظهر الصورة ، اترك المؤشر يومض ، 3. انقر على زر + وسترى الصورة في مكان المؤشر ، واذا اردت ان تغير مكانها ، انقر على الصورة في المشاركة واضغط على زر الحذف من الكيبورد ، 4. اما اذا اردت حذف الصورة ، فانقر على زر سلة المهملات 🙂 . جعفر
  18. اخي الفاضل 🙂 هنا منتدى الاكسس لمساعدة المبرمجين الذين يحتاجون حل لمشاكل في برامجهم ، اما اذا اردت عمل برنامج جاهز ، فرجاء افتح موضوع جديد هنا: إعلانات شخصية بأجر للاعضاء - أوفيسنا (officena.net) جعفر
  19. وعليكم السلام 🙂 انا عندي هذه المسطرة العائمة ، ما لها علاقة بالاكسس ، ولكن يمكن الاستفادة منها ، مثلا : عرض هذا الحقل حوالي 5.889 سنتيمتر او المسافة بين السهمين حوالي 5.650 سنتيمتر جعفر ImRuler.zip
  20. وعليكم السلام 🙂 استخدم هذه الجزئية من الكود الذي عندك ، لأن الباقي مافي له داعي ، وهو الذي يبطئ العملية : Private Sub أمر43_Click() Dim LastValue As double ' Dim x As Long LastValue = Me.HNO ' x = Me.ID 'MsgBox x DoCmd.GoToRecord , , acNewRec ' DoCmd.RunCommand acCmdSaveRecord ' DoCmd.RunCommand acCmdRefresh Me.HNO = LastValue + 0.1 ' x = Me.ID ' Me.Requery ' Me.OrderBy = "HNO" 'MsgBox x ' DoCmd.FindRecord x, acAnywhere, , acSearchAll Me.nass.SetFocus End Sub . يعني هاي الاسطر فقط : Dim LastValue As Double LastValue = Me.HNO DoCmd.GoToRecord , , acNewRec Me.HNO = LastValue + 0.1 Me.nass.SetFocus جعفر
  21. وعليكم السلام 🙂 يمكنك استخدام المرفق من هذه الطريقة : كتابة التاريخ بصيغة لا تتغير بتغير اعدادات الوندوز - قسم الأكسيس Access - أوفيسنا (officena.net) . هذا الجدول من الرابط اعلاه ، . اعمل حقل جديد للأشهر في الجدول tbl_Months ، ولنسميه Months_Turish ، وحقل آخر للأيام ، ولنسميه Days_Turkish ، ثم قم بتعبئة الحقول بالاسماء التركية (رجاء ملاحظة ترتيب السجلات حسب الارقام) . الآن يمكنك استخدام المسميات التركية ، سواء في استعلام او بالامر Dlookup كما هو موضح في الرابط اعلاه 🙂 نعم ، انا كذلك لم استطع فتح الملف ، مع اني استخدم الاكسس 2010 مع آخر التحديثات 🙂 جعفر
  22. رجاء ارفاق مرفق لأننا يجب ان نعمل تجارب ، فالافضل عمله على واقع المشكلة 🙂 جعفر
  23. وعليكم السلام اخوي ابو احمد 🙂 بالنسبة لفتح نافذة الوندوز إختيار الملفات ، فهناك طريقة اخرى لا تحتاج الى الكود اعلاه Windows API ، وتجده هنا مثلا: https://www.officena.net/ib/applications/core/interface/file/attachment.php?id=189174 ولكن اذا اردت النظر في الكود الذي ارفقه انت ، فهذه الاسطر من الكود لا تكفي للنظر في المشكلة ، فأنا محتاج الى مثال يعمل ، علشان اضبطه للنواتين 32 و 64بت 🙂 جعفر
  24. هذه الاسطر موجودة سابقا ، ولكن لم تلاحظها ، وتم عمل اللازم لهذه النقطة 🙂 الطريقة الصحيحة هي الاحتفاظ بجدول واحد فقط ، وتم اضافة حقل جديد في الجدول لكي تميز فيه بين سجلات الملفات ، والحقل هو اسم الملف ، وعليه ، تستطيع ان تعرف اي سجل لأي ملف 🙂 الطربقة الجديدة للعمل هي: 1. انقر على الزر ، ويمكنك ان تختار: ملف واحد ، او مجموعة ملفات ، او كل مرة تضيف اي عدد من الملفات ، سترى هذه الملفات في القائمة ، 2. وبعد ان تجهز القائمة ، انقر على هذا الزر حتى تستورد جميع الملفات اعلاه دفعة واحدة (لا تذهب الى الكود لتغيير اسم الملف) ، 3. وبعد ان تحصل على رسالة Done ، يمكنك الذهاب الى النموذج المستمر لترى جميع السجلات القديمة والتي قمت بإستيرادها الآن. . 1. جميع السجلات تظهر لك ، 2. تستطيع ان تختار اسم الملف ، ثم تنقر على زر 3 لإظهار سجلات الملف الذي اخترته ، كما يمكنك النقر مرتين في الحقل 2 ، فيتم تصفية الحقل ، ثم تنقر على الزر 3 لترى جميع السجلات مرة اخرى ، ولا تنسى انك تستطيع استخدام زر الفأرة اليمين على اي حقل ، لفرز و/او تصفية السجلات . جعفر 1322.1.تحويل.accdb.zip
×
×
  • اضف...

Important Information