بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
اجعل برنامجك يعمل على النواتين 32بت و 64بت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
جرب هذا احذف هذه الاسطر #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 فيه تعديل في السطر الاخير ، فلا تستعمل السطر اللي عندك ، وانما اعمل نسخ للسطر الذي كتبته لك اعلاه 🙂 جعفر -
اجعل برنامجك يعمل على النواتين 32بت و 64بت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
ظاهرا هناك خلل في نسخة الاوفيس المستخدمة ، فجرب ان تعمل لها تحديث ، او جرب نسخة اخرى فيها جميع تحديثات الاوفيس 🙂 جعفر -
المشاركة اعلاه فيها طلبك: جعفر
-
اجعل برنامجك يعمل على النواتين 32بت و 64بت
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام 🙂 عيدك مبارك اخوي عبدالله 🙂 1. هناك مكتبات تعمل على النواتين ، فقط تضيف PtrSafe لما تصرح عن المكتبة باستعمال Declare ، 2. وهناك مكتبات تحتاج الى تصريح خاص لنواة 32بت ، وتصريح آخر لنواة 64بت ، 3. وهناك مكتبات لا تعمل على 64بت ، ولا تعطي خطأ ، وهذه يجب ان تجد البديل لعملها او طريقة اخرى للقيام بما تريد. اما ان البرنامج يعمل لفترة معينة ثم يُغلق ، فلم اسمع عنها !! ارفق المكتبة ، والجزئية التي تستعملها في البرنامج ، وخلينا نشوف طريقة المثلى للتعامل معاها 🙂 جعفر -
ربط الجداول لمسار المبرمج ، ثم اعادة ربطها بمسار المستخدم
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
استخدم ملفاتك الاصليه ، افصل الشبكة واشتغل من كمبيوتر ثاني ، وبتظهر لك المشكلة. اساس المشكلة مو الاكسس ، وانما الوندوز ، فلما حفظت/غيّرت اسماء ملفاتك يدويا ، الوندوز اضاف هذه العلامات اللي ما تنشاف بالعين ، او يمكن انت بدأت تكتب اسم الملف ، واتضح لك انك تكتب بالعربي ، فحذفت الكلمات العربية ولكنك لم تحذف اسم الملف كاملا ، وبقيت التشكيلات التي لا تراها ، ثم واصلت بكتابة الاسم بالانجليزي !! برنامجك يقرأ اللي الوندوز اعطاه 🙂 وابويا انا عليك موسى ، صح كنت مستعجل ، لكن ما متدوده ، صاني قلت لك: جعفر -
ربط الجداول لمسار المبرمج ، ثم اعادة ربطها بمسار المستخدم
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام 🙂 وبعد ان اصلحت يدويا في الجدول مسارات قواعد البيانات ، شفت 3 ملفات ما يشوفها البرنامج : . للتأكد ان الاسم والمسار صح في الجداول ، مقارنه مع مكان الملفات: . اخذت اسم الملف الغير ظاهر في النموذج اعلاه (ما كتبته ، وانما عملت له نسخ ولصق) ، علشان يصير عندي المسار كاملا مع اسم الملف : . والصقته في VBE ، واذا المشكلة ممتدة الى اسماء الملفات كذلك : . وانا على سفر اليوم العصر ، فما بالحق اجرب اكثر ، للأسف 😞 على العموم ، انا قمت بتعديل مرفقك اعلاه ، فاللي يجي ورائي ان شاء يقدر يجرب مباشرة 🙂 ولكن ، بغض النظر ، فعملك جبّار وواضح فيه لمسات جميلة ، والكثير ممكن يستفيد منه 🙂 جعفر -
ربط الجداول لمسار المبرمج ، ثم اعادة ربطها بمسار المستخدم
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام اخوي موسى 🙂 فتحت البرنامج ، ورحبت بي رسالة خطأ . هذا الرابط يوضح لك ما هي المشكلة . جعفر -
Disable Microsoft access security notice
jjafferr replied to ابو عبد الله العراقي's topic in قسم الأكسيس Access
في الواقع هذه هي طريقة عمل الامر Hyperlink !! ولا يمكن التغلب على الرسالة عن طريق DoCmd.SetWarnings False ، لأنها الوندوز وليست رسالة الاكسس ، فالطريقة الوحيدة التي اعرفها هي استعمال اوامر اخرى مثل الامر Shell لتنفيذ المهمة بدل عن HyperLink 🙂 طبعا يمكنك عن طريق الريجستري ان تلغي ظهور هذه الرسالة ، ولكن هل ستقوم بهذا على كمبيوتر العميل كذلك !! جعفر -
Disable Microsoft access security notice
jjafferr replied to ابو عبد الله العراقي's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته 🙂 الله يطول في عمرك احوي ابو عبدالله ، هذه رسالة خطأ ، ولا علاقة لها برسائل أمان الاكسس !! الرسالة تقول انها ما تقدر تفتح المسار الموجود في الرسالة ، فاذا ارجت ان تفتح مسار او تفتح ملف ، فتأكد بأن المسار صحيح : . جعفر -
في البرنامج الموجود عندك ، افتح التقرير في وضع الثصميم ، وفي اعدادات Order By ، رجاء تحذف الموجود هناك ، وتحفظ التقرير ، ثم تجربه مرة اخرى. انا نادرا ما استعمل On Error Resume Next ، وانت ما شاء الله تستعمله في كل حدث!! لهذا السبب ، لم احصل على خطأ لما شغلت التقرير من الكود ، وانما تحصل على الخطأ لما تفتحه مباشرة. الامر On Error Resume Next لا يجعلك ترى اي خطأ ، بينما في واقع الامر تكون هناك اخطاء ، ولهذا السبب ترى ان البرنامج لا يعمل بطريقة صحيحة ، ولن تعرف السبب. 1492.not in select.accdb.zip
-
تفضل ، البيانات تم اخذها من النموذج كما اشرت في مشاركتي السابقة (طبعا النموذج لازم يكون مفتوح وتكون فيه البيانات) : . جعفر
-
وعليكم السلام 🙂 مثل ما قال اخوي موسى ، استعمل جدول 🙂 يعتمد على طبيعة هذه الارقام : 1. فاذا كانت موجودة في جدول ، فاعمل حقل اضافي في الجدول ، فلنسمية Printed ونوعه نعم/لا ، 2. واذا هذه الارقام مو موجودة في جدول ، فاقترح عمل جدول خاص لهذا الغرض ، يكون فيه الرقم التسلسلي ، وحقل Printed ، وعليه : 1. قبل امر الطباعة ، تتاكد بأنه لم يتم طباعة الرقم ، فالمعيار يكون الرقم التسلسلي ، و Printed <> -1 ، 2. وبعد امر الطباعة ، مباشرة تعمل تحديث للجدول ، فالمعيار يكون الرقم التسلسلي ، والتحديث Printed = -1 ، جعفر
-
مثل ما اخبرتك ، انا لا افهم فرنسي ، فإذا تحب تنتظر ممكن احد الشباب اللي يعرف فرنسي ممكن يساعدك 🙂 ولكن ، ما يضرك ان تجرب ما اقترحته عليك 🙂 وتم تعديل اسم الموضوع ليجذب الشباب 🙂 جعفر
-
تفضل : الاستعلام: موظفين_القسم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
-
وعليكم السلام 🙂 بما اني لا افهم فرنسي ، ولكني رأيت كلمة OLE ، فعادة الحل يكون كما في المرفق: جعفر
-
وعليكم السلام ورحمة الله وبركاته 🙂 تفضل : 1. =[Forms]![f_1]![txta] 2. =[Forms]![f_1]![txta]-[Forms]![f_1]![txt] . جعفر
-
استخراج اسماء الايام والاشهر باللغة الانكليزية
jjafferr replied to عبد الله قدور's topic in قسم الأكسيس Access
وعليكم السلام 🙂 جرب هذا الرابط ، فقد حل لي مشاكل كثيرة ، وخصوصا بين لغات الدول جعفر -
من زمان ما عامل الكود على حدث "عند التغيير" 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