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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. جرب هذا احذف هذه الاسطر #If VBA7 Then Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long #Else Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #End If واستبدلها بهذا Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long فيه تعديل في السطر الاخير ، فلا تستعمل السطر اللي عندك ، وانما اعمل نسخ للسطر الذي كتبته لك اعلاه 🙂 جعفر
  2. ظاهرا هناك خلل في نسخة الاوفيس المستخدمة ، فجرب ان تعمل لها تحديث ، او جرب نسخة اخرى فيها جميع تحديثات الاوفيس 🙂 جعفر
  3. المشاركة اعلاه فيها طلبك: جعفر
  4. بالصحة والعافية 🙂 جعفر
  5. الله يسلمك ويعافيك اخوي موسى 🙂 مو اخبار الشواء هالعيد 😋 جعفر
  6. وعليكم السلام 🙂 عيدك مبارك اخوي عبدالله 🙂 1. هناك مكتبات تعمل على النواتين ، فقط تضيف PtrSafe لما تصرح عن المكتبة باستعمال Declare ، 2. وهناك مكتبات تحتاج الى تصريح خاص لنواة 32بت ، وتصريح آخر لنواة 64بت ، 3. وهناك مكتبات لا تعمل على 64بت ، ولا تعطي خطأ ، وهذه يجب ان تجد البديل لعملها او طريقة اخرى للقيام بما تريد. اما ان البرنامج يعمل لفترة معينة ثم يُغلق ، فلم اسمع عنها !! ارفق المكتبة ، والجزئية التي تستعملها في البرنامج ، وخلينا نشوف طريقة المثلى للتعامل معاها 🙂 جعفر
  7. استخدم ملفاتك الاصليه ، افصل الشبكة واشتغل من كمبيوتر ثاني ، وبتظهر لك المشكلة. اساس المشكلة مو الاكسس ، وانما الوندوز ، فلما حفظت/غيّرت اسماء ملفاتك يدويا ، الوندوز اضاف هذه العلامات اللي ما تنشاف بالعين ، او يمكن انت بدأت تكتب اسم الملف ، واتضح لك انك تكتب بالعربي ، فحذفت الكلمات العربية ولكنك لم تحذف اسم الملف كاملا ، وبقيت التشكيلات التي لا تراها ، ثم واصلت بكتابة الاسم بالانجليزي !! برنامجك يقرأ اللي الوندوز اعطاه 🙂 وابويا انا عليك موسى ، صح كنت مستعجل ، لكن ما متدوده ، صاني قلت لك: جعفر
  8. وعليكم السلام 🙂 وبعد ان اصلحت يدويا في الجدول مسارات قواعد البيانات ، شفت 3 ملفات ما يشوفها البرنامج : . للتأكد ان الاسم والمسار صح في الجداول ، مقارنه مع مكان الملفات: . اخذت اسم الملف الغير ظاهر في النموذج اعلاه (ما كتبته ، وانما عملت له نسخ ولصق) ، علشان يصير عندي المسار كاملا مع اسم الملف : . والصقته في VBE ، واذا المشكلة ممتدة الى اسماء الملفات كذلك : . وانا على سفر اليوم العصر ، فما بالحق اجرب اكثر ، للأسف 😞 على العموم ، انا قمت بتعديل مرفقك اعلاه ، فاللي يجي ورائي ان شاء يقدر يجرب مباشرة 🙂 ولكن ، بغض النظر ، فعملك جبّار وواضح فيه لمسات جميلة ، والكثير ممكن يستفيد منه 🙂 جعفر
  9. وعليكم السلام اخوي موسى 🙂 فتحت البرنامج ، ورحبت بي رسالة خطأ . هذا الرابط يوضح لك ما هي المشكلة . جعفر
  10. في الواقع هذه هي طريقة عمل الامر Hyperlink !! ولا يمكن التغلب على الرسالة عن طريق DoCmd.SetWarnings False ، لأنها الوندوز وليست رسالة الاكسس ، فالطريقة الوحيدة التي اعرفها هي استعمال اوامر اخرى مثل الامر Shell لتنفيذ المهمة بدل عن HyperLink 🙂 طبعا يمكنك عن طريق الريجستري ان تلغي ظهور هذه الرسالة ، ولكن هل ستقوم بهذا على كمبيوتر العميل كذلك !! جعفر
  11. وعليكم السلام ورحمة الله وبركاته 🙂 الله يطول في عمرك احوي ابو عبدالله ، هذه رسالة خطأ ، ولا علاقة لها برسائل أمان الاكسس !! الرسالة تقول انها ما تقدر تفتح المسار الموجود في الرسالة ، فاذا ارجت ان تفتح مسار او تفتح ملف ، فتأكد بأن المسار صحيح : . جعفر
  12. في البرنامج الموجود عندك ، افتح التقرير في وضع الثصميم ، وفي اعدادات Order By ، رجاء تحذف الموجود هناك ، وتحفظ التقرير ، ثم تجربه مرة اخرى. انا نادرا ما استعمل On Error Resume Next ، وانت ما شاء الله تستعمله في كل حدث!! لهذا السبب ، لم احصل على خطأ لما شغلت التقرير من الكود ، وانما تحصل على الخطأ لما تفتحه مباشرة. الامر On Error Resume Next لا يجعلك ترى اي خطأ ، بينما في واقع الامر تكون هناك اخطاء ، ولهذا السبب ترى ان البرنامج لا يعمل بطريقة صحيحة ، ولن تعرف السبب. 1492.not in select.accdb.zip
  13. تفضل ، البيانات تم اخذها من النموذج كما اشرت في مشاركتي السابقة (طبعا النموذج لازم يكون مفتوح وتكون فيه البيانات) : . جعفر
  14. وعليكم السلام 🙂 مثل ما قال اخوي موسى ، استعمل جدول 🙂 يعتمد على طبيعة هذه الارقام : 1. فاذا كانت موجودة في جدول ، فاعمل حقل اضافي في الجدول ، فلنسمية Printed ونوعه نعم/لا ، 2. واذا هذه الارقام مو موجودة في جدول ، فاقترح عمل جدول خاص لهذا الغرض ، يكون فيه الرقم التسلسلي ، وحقل Printed ، وعليه : 1. قبل امر الطباعة ، تتاكد بأنه لم يتم طباعة الرقم ، فالمعيار يكون الرقم التسلسلي ، و Printed <> -1 ، 2. وبعد امر الطباعة ، مباشرة تعمل تحديث للجدول ، فالمعيار يكون الرقم التسلسلي ، والتحديث Printed = -1 ، جعفر
  15. مثل ما اخبرتك ، انا لا افهم فرنسي ، فإذا تحب تنتظر ممكن احد الشباب اللي يعرف فرنسي ممكن يساعدك 🙂 ولكن ، ما يضرك ان تجرب ما اقترحته عليك 🙂 وتم تعديل اسم الموضوع ليجذب الشباب 🙂 جعفر
  16. تفضل : الاستعلام: موظفين_القسم2 SELECT mowadfen.الرقمالوظيفي, mowadfen.يعمللان, mowadfen.الاسم, mowadfen.القسم FROM mowadfen LEFT JOIN كشف_رواتب_القسم ON mowadfen.الرقمالوظيفي = كشف_رواتب_القسم.الرقمالوظيفي WHERE (((mowadfen.يعمللان)="يعمل") AND ((mowadfen.القسم)=[Forms]![hodorenseraf1]![درجالقسم]) AND ((IIf([كشف_رواتب_القسم].[الرقمالوظيفي]=[mowadfen].[الرقمالوظيفي],-1,0))=0)); جعفر 1492.not in select.accdb.zip
  17. وعليكم السلام 🙂 بما اني لا افهم فرنسي ، ولكني رأيت كلمة OLE ، فعادة الحل يكون كما في المرفق: جعفر
  18. وعليكم السلام ورحمة الله وبركاته 🙂 لو وضعت العمل اللي عملته انت ، علشان نصلح عليه ، ولكن هي 3 اوامر بالترتيب الذي تريد ، ضعها تحت بعضها البعض ، وسيتم تنفيذها 🙂 جعفر
  19. وعليكم السلام 🙂 في حدث بعد الاختيار من الحقل the_city ، اعمل هذا الكود : Private Sub the_city_AfterUpdate() Me.Requery Me.forme2.Requery End Sub . واما الاستعلام q2 ، فسيصبح : . Not In (Select [الرقم_الوظيفي] from q1) جعفر
  20. وعليكم السلام ورحمة الله وبركاته 🙂 تفضل : 1. =[Forms]![f_1]![txta] 2. =[Forms]![f_1]![txta]-[Forms]![f_1]![txt] . جعفر
  21. وعليكم السلام 🙂 جرب هذا الرابط ، فقد حل لي مشاكل كثيرة ، وخصوصا بين لغات الدول جعفر
  22. من زمان ما عامل الكود على حدث "عند التغيير" OnChange للحقل ، فأخذ مني بعض الوقت 🙂 اضفت حقل جديد txt41 باللون البرتقالي ، وممكن تعمله مخفي . اذا اردنا ان نعمل تغيير في بيانات النموذج عند كل ضغطة زر على لوحة المفاتيح (الكيبورد) ، ممكن لغرض البحث ، او للحصول على مجموع عند ادخال كل رقم ، فلابد من استخدام حدث "عند التغيير" OnChange للحقل. صحيح ان نتائج ضغطة ازرار لوحة المفاتيح تظهر مباشرة في الحقل ، ولكن البرنامج لا يحصل على آخر زر ، فيجب الاستعانة بحقل آخر ، خليني اوضح : 1. في حدث "عند التغيير" OnChange للحقل ، اكتب debug.print me.TXT4 ، ولاحظ النتائج في نافذة immediate في نافذة VBE ، سترى ان آخر الازرار اللي ضغطت عليها لا تظهر قيمتها ، لأن me.TXT4 معناها قيمة الحقل المحفوظة في الجدول ، بينما اذا اردنا ان نأخذ القيمة التي لم يتم حفظها الى الآن ، فيجب ان نستخدم me.TXT4.Text ، لاحظ الفيديو التالي ، القيمة الاصلية المحفوظة في الجدول هي 15 : . 2. على هذا الاساس ، عملت حقل جديد اسميته txt41 (باللون البرتقالي في الصورة اعلاه ، ويمكن عمله مخفي) ، بحيث نعطيه القيمة الغير محفوظة من الحقل TXT4 ، هكذا : Me.txt41 = Me.TXT4.Text 3. وبعدها ممكن عمل المعادلة Me.TXT5 = TXT3 * txt41 ، حيث الحقل TXT5 سيحصل على القيمة الصحيحة من الحقل TXT4 ، 4. ولكي تظهر قيمة مجموع حقل TXT5 ، فيجب حفظ قيمة السجل ، فعليه عندنا مجموعة طرق ، منها : DoCmd.RunCommand acCmdSaveRecord If Me.Dirty Then Me.Dirty = False Me.Refresh (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية) Me.Requery (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية) 5. وبسبب اننا تدخلنا في حفظ السجل ، فالمؤشر سيرجع لأول الحقل كلما ضغطنا على زر على الكيبور ، يعني لما تريد تكتب 25 ، سيظهر لك 52 ، لهذا السبب ، فيجب لما نضغط على اي زر ، يجب برمجيا ان نجعل المؤشر يذهب الى نهاية الحقل ، فيمكننا استعمال الامر SelStart ، والذي يجبر مكان المؤشر في الحقل ، فعندنا الطرق التالية لجعل المؤشر يذهب الى آخر الحقل : Me.TXT4.SelStart = Len(Me.TXT4) Me.TXT4.SelStart = vbKeyEnd والكود يصبح: Private Sub TXT4_Change() On Error GoTo err_TXT4_Change Me.txt41 = IIf(Len(Me.TXT4.Text & "") = 0, 0, Me.TXT4.Text) Me.TXT5 = TXT3 * txt41 DoCmd.RunCommand acCmdSaveRecord Me.TXT4.SelStart = Len(Me.TXT4) Exit_TXT4_Change: Exit Sub err_TXT4_Change: If Err.Number = 94 Or Err.Number = 13 Then Me.TXT5 = 0 DoCmd.RunCommand acCmdSaveRecord Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 1491.AZIZ.accdb.zip
  23. وعليكم السلام 🙂 شغلك صح ، والنتيجة تتبدل لما تنتقل من السجل ، بمعنى آخر لما يتم حفظ السجل ، فاذا كنت مستعجل عليه ، وعلى حدث بعد التحديث للحقل تقدر تكتب التالي لحفظ السجل والمفروض تطلع لك النتيجة : if me.dirty then me.dirty=false جعفر
×
×
  • اضف...

Important Information