-
Posts
8,726 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
37
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محمد طاهر عرفه
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
مرفق المثال به استعلامين الاول قد يغني و الثاني فى حالة الحاجة الي بيانات اضافية من جدول آخر بعد تحديد السجلات المطروبة فى الاستعلام الاول Query.rar -
فكرة جميلة :d
-
برنامج الصندوق التعاوني (برنامج جاهز)
محمد طاهر عرفه replied to ابن مسقط's topic in منتدى الاكسيل Excel
الأخوة الكرام يرجي عدم نشر طلبات الارسال علي البريد فاذا أراد الأخ صاحب الملف نشره ، فليتفضل بنشره للجميع حبث أن تبادل المعلومات علي البريد مخالف لقواعد المشاركة -
|و| كود لتغيير رمز محرك الاقراص السى دي
محمد طاهر عرفه replied to جمال فايز's topic in قسم الأكسيس Access
أخي الكريم معرفة اسم قرص السي دي و التعامل معه علي هذا الاساس افضل من محاولة تغييره فكانك تقول بالكود: الملف رقم 1 علي السي دي أيا كان حرفه لانك ستستنج الحرف بالكود و هذا أفضل كثيرا من: الملف 1 علي ال E و تحاول تغيير رمز السي دي الي E أوعتقد أن تغيير الحرف اذا كان متاحا ، فسيكون أكثر صعوبة فيما قبل الويندوز اكس بي لذا أنصحك بان تعيد التفكير فى الطلب ، فاستنتاج الرمز أفضل بمراحل و اذا فيه مواضيع أخري بخلاف حرف السي دي ، فيرجي طرحها فى مشاركات مستقلة و هذا لا يمنع أن يوافيك احد الاخوة بتغيير الحرف ، و لكن نحن نراه ليس بالحل الافضل ، و عن نفسي اذا اريد هذا ساكتفي باستنتاج الرمز حيث أراه لاافضل و الانسب مع تحياتي -
هذا الموضوع جمعه أبو حمود --------------------------------- و هو لاضافة قيمة الي الجدول المبني عليه قائمة عند عدم وجودها فى الجدول الموضوع : وهذه خمس طرق للإضافة : أولاً : طريقة للإضافة الى القائمة بدون الحاجة لإظهار نموذج : 1- ضع التزام بالقائمة إلى نعم 2- في حدث عند عدم الوجود في القائمة ضع الإجراء التالي : On Error GoTo HandleErr Dim db As Database Dim strSQL As String Const فاصلة = """" strSQL = "Insert into اسم الجدول (اسم حقل بيانات القائمة في الجدول) Values " _ & "(" & فاصلة & NewData & فاصلة & ")" Set db = CurrentDb If MsgBox("هل ترغب في إضافة هذا البند إلى القائمة ؟", vbYesNo, "تسجيل بند جديد") = vbYes Then db.Execute strSQL Response = acDataErrAdded Else Response = acDataErrDisplay End If ExitHere: Exit Sub HandleErr: Select Case Err Case Else MsgBox Err & ": " & Err.Description, , "خطأ" End Select Resume ExitHere 3- حدد كلمتي "اسم الجدول" ثم غيرهما الى اسم الجدول الذي تأخذ القائمة البيانات منه ، لاحظ أنه إذا كان اسم الجدول مركب من كلمتين فأكثر فضعه بين قوسين مربعين مثال : [جدول الأسماء] . 4- حدد عبارة "اسم حقل بيانات القائمة في الجدول" واستبدلها باسم الحقل في الجدول ، انتبه اسم الحقل في الجدول الذي تأخذ القائمة البيانات منه . 5- إذا أردته أن يضيف مباشرة دون رسالة فأزل العبارة الشرطية If . ثانيا : طريقة مع فتح النموذج على سجل جديد وعند كتابة البيانات وإغلاقه من قبل المستخدم تظهر القيمة في الحقل مباشرة : في حدث عند عدم الوجود في القائمة اكتب مع تعديل الأسماء : Response = acDataErrContinue If MsgBox("البند غير موجود بالقائمة ." & vbCrLf & _ "هل ترغب في إضافته الى القائمة ؟", vbYesNo, "بند غير موجود") = vbYes Then [اسم القائمة على النموذج] = DFirst("[حقل مصدر البيانات]", "[اسم الجدول]") DoCmd.OpenForm "النموذج الذي سيتم إدخال البيانات فيه", , , , , acDialog, "gotonew" Me![اسم القائمة على النموذج].Requery [اسم القائمة على النموذج] = DLast("[حقل مصدر البيانات]", "[اسم الجدول]") DoCmd.GoToControl "اكتب الحقل الذي تود الانتقال إليه بعد إدخال البيانات في القائمة" End If في حدث عند التحميل للنموذج اكتب : If Me.OpenArgs = "gotonew" Then DoCmd.GoToRecord , , acNewRec ثالثاً : طريقة للإضافة مع إظهار النموذج والإضافة إليه تلقائيا ثم إغلاقه وكتابة الكلمة أو العبارة المضافة في الحقل والانتقال الى الحقل التالي : ملاحظة لن ترى النموذج لسرعة الإجراء . في حدث عند عدم الوجود في القائمة اكتب : If MsgBox("البند غير موجود بالقائمة ." & vbCrLf & _ "هل ترغب في إضافته الى القائمة ؟", vbYesNo, "بند غير موجود") = vbYes Then Response = acDataErrAdded DoCmd.OpenForm "اسم النموذج الذي ستضاف البيانات فيه", , , , acAdd, acDialog, NewData Else Response = acDataErrContinue End If وفي حدث عند التحميل للنموذج المذكور سابق اكتب : If Not IsNull(Me.OpenArgs) Then Me![اسم الحقل المبنيه عليه القائمة] = Me.OpenArgs DoCmd.Close End If يعيب هذه الطريقة أنك إذا كنت تفتح هذا النموذج مع تحديد OpenArgs من نموذج آخر غير النموذج الذي تم فتح هذا النموذج منه فسوف تتم إضافة القيمة التي تحملها OpenArgs تلقائيا (لغزعبارة غامضه) ولتوضيح ذلك : لنفرض أن اسم النموذج الذي فيه القائمة "نموذج الذي توجد فيه القائمة" والنموذج الذي ندخل فيه البيانات اسمه "نموذج تسجيل بيانات القائمة" لو طبقنا كل الكلام الوارد في ثالثا ستتم الإضافة بدون مشاكل ، ولكن لو كان لدينا نموذج آخر بأي اسم يحتاج هذا النموذج الى فتح "نموذج تسجيل بيانات القائمة" لأي غرض آخر غير الإضافة الى القائمة وكان يستخدم OpenArgs فالنتيجة ستتم إضافة قيمة OpenArgs إلى بيانات القائمة لأن النموذج عنده قصر نظر فلا يفرق بين النماذج أرجو أن تكون المسألة قد وضحت ، وكحل لذلك يمكنك استخدم دالة IsLoaded للتأكد من كون النموذج "نموذج الذي توجد فيه القائمة" مفتوح ، وإليك دالة Isloaded : Public Function IsLoaded(ByValstrformname As String) As Integer Const CondesignView = 0 Const ConObjectClosed = 0 IsLoaded = False If SysCmd(acSysCmdGetObjectState, acForm, strformname) <> ConObjectClosed Then If Forms(strformname).CurrentView <> CondesignView Then IsLoaded = True End If End If End Function ولمعرفة هل نموذج مفتوح أم لا اكتب : If IsLoaded("اسم النموذج المطلوب التأكد من كونه مفتوحاً") Then بقيه الإجراء ... ويعدل حدث التحميل ليكون كالتالي : If IsLoaded("اسم النموذج المطلوب التأكد من كونه مفتوحاً") Then If Not IsNull(Me.OpenArgs) Then Me![اسم الحقل المبنيه عليه القائمة] = Me.OpenArgs DoCmd.Close End If end if ملاحظة : لدي طريقة أخرى للتأكد من كون نموذج مفتوح أم لا ، وكذلك طريقة للتأكد من كون التقرير مفتوحا ، إذا رغبها أحد كتبتها . هناك تشبه الطريقة السابقة ولكن باستخدام متغير عام . رابعا : باستخدام DAO في حدث عند عدم الوجود في القائمة ضع الكود التالي : Dim db As Database Dim rst As Recordset If MsgBox("البند غير موجود بالقائمة ." & vbCrLf & _ "هل ترغب في إضافته الى القائمة ؟", vbYesNo, "بند غير موجود") = vbYes Then ' Response = acDataErrAdded Set db = Application.CurrentDb Set rst = db.OpenRecordset("اسم الجدول الذي تأخذ القائمة البيانات منه") rst.AddNew rst![اسم الحقل المبنيه عليه القائمة] = NewData rst.Update rst.Close db.Close Response = acDataErrAdded [اسم القائمة على النموذج]= DLast("[حقل بيانات القائمة في الجدول]", "[اسم الجدول]") Else Response = acDataErrContinue End If End Sub خامساً : باستخدام ADO في حدث عند عدم الوجود في القائمة اكتب If MsgBox("البند غير موجود بالقائمة ." & vbCrLf & _ "هل ترغب في إضافته الى القائمة ؟", vbYesNo, "بند غير موجود") = vbYes Then Dim rst As New ADODB.Recordset rst.Open "[جدول الأسماء]", CurrentProject.Connection, _ adOpenStatic, adLockOptimistic rst.AddNew rst![اسم الحقل المبنيه عليه القائمة] = NewData rst.Update rst.Close Response = acDataErrAdded [اسم القائمة على النموذج]= DLast("[حقل بيانات القائمة في الجدول]", "[اسم الجدول]") Else Response = acDataErrContinue End If ======================================= هذه هديه خاصة لك أخوي حارث ولا يهون الجميع : ======================================= إظهار البند التالي في قائمة منسدلة عند النقر المزدوج ضع في وحدة نمطية عامة الدالة التالية : Public Function عرض_بنود_القائمة(قائمة As ComboBox) Dim مجموع_الإدخالات As Byte, رقم_فهرس_حالي As Byte مجموع_الإدخالات = قائمة.ListCount If مجموع_الإدخالات = 0 Then DoCmd.Beep MsgBox "لايوجد أي بند مسجل في القائمة .", vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation, "قائمة فارغة" Exit Function End If If قائمة.ListIndex <> -1 Then رقم_فهرس_حالي = قائمة.ListIndex End If If رقم_فهرس_حالي <> مجموع_الإدخالات And قائمة.ListIndex <> -1 Then قائمة = قائمة.ItemData(رقم_فهرس_حالي + 1) Else قائمة = قائمة.ItemData(0) End If If قائمة.ListIndex = -1 Then قائمة = قائمة.ItemData(0) End Function وضع الاستدعاء التالي لها في حدث عند النقر المزدوج للقائمة : Call عرض_بنود_القائمة(Me![اسم القائمة])
-
- 1
-
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
اذا يوجد حقل معرف للادخالات اليومية ، فيمكنك عمل استعلام تجميع يقوم بالتجميع لكل طالبة رقم الطالبة Group By و رقم الادخال Max ووصف التقرير Last هذا طبعا اذا كانت الادخالات تتم بالترتيب ، اي ان أخر تقرير معرفه أكبر من الذي قبله فينتج استعلام به فقط رقم الطالبة و رقم آخر ادخالاتها أو نقوم بعمل استعلامين الاول استعلام تجميع للحصول فقط علي رقم آخر ادخال لكل طالبة و به رقم الطالبة Group By و رقم الادخال Max ثم نقوم بعمل استعلام آخر مبني علي هذا الاستعلام و جدول الادخالات و نربط بين MaxID و حقل ال ID فى جدول الادخالات و نضيف ما نشاء من حقول بالاضافة الي حقلي الاستعلام الاصلي -
السلام عليكم الطرق التي أعرفها ل كسر ال mde سواء من محرر البيزيك أو باداة خارجية ، لا تسترجع الاكواد فقط الكائنات أما اذا بالنوذج أو التقرير أو الموديول أكواد ، فهي مازالت محمية علي ما أعرف فهل ما تعرفه يخالف ذلك ؟؟
-
السلام عليكم شكرا علي الموضوع المهم (y) أولا : القدرة علي التحويل الي ملف تنفيذي ، المهم ليس هو نوع الملف و لكن خصائصه ، فمع ال ACCESS RUN TIME يصبح ال MDE كانه ملف تنفيذي ثانيا : محدوديته علي الشبكة و السعة التخزينية هذا واقع ، و لكن 95% من الاستخدامات هي للمؤسسات الصغيرة و المتوسطة و هنا لا نواجه هذه المشاكل خصوصا مع التصميم السليم و التعامل مع البيانات بمرجلية ( كل سنة مثلا فى ملف ) و أما اذا زاد عن هذا فسيكون للاكسيس ايضا مكان كواجهة للتطبيق مع تخزين البيانات فى خادم sql العملاق ( مشروع أكسيس و ليس ملف اكسيس ) ثالثا : الرقم السري و الحماية : كسر حمايات الاكسيس شكلي ، فاكواد البرمجة فى ال MDE مازالت محمية و لم نسمع عن من وصل اليها علي عكس البيزيك الذي توجد عدة طرق لعمل DECOMBILE للملفات التنفيذية و أخيرا يطيب لي هذا الاقتباس من مشاركة للأخ المزيني فى الفريق العربي
-
النسخ الاحتياطي للملفات و المجلدات مع الضغط
محمد طاهر عرفه replied to asaz's topic in قسم الأكسيس Access
شكرا للاخ عبد الله علي الاكواد الجميلة و بخصوص الضغط يرجي مراجعة هذا الموضوع http://www.officena.net/ib/index.php?showtopic=1417 -
هذا مثال للاخ أبو هاجر به ضغط الملفات بامتداد ZIP cop_zip_access_exe_ahg.zip
-
- 1
-
-
ادراج التاريخ تلقائياً عن الخروج من السجل Date
محمد طاهر عرفه replied to ahmedspcc's topic in قسم الأكسيس Access
فى القيمة الافتراضية للحقل فى الجدول ضع =Date() -
مشكلة اختيار سجل عشوائي من حقل في جدول
محمد طاهر عرفه replied to القاضي's topic in قسم الأكسيس Access
اختيار رقم عشوائي http://www.officena.net/ib/index.php?showt...ic=1016&hl=عشوا -
توزيع القيمة آليا علي عدد من الخلايا أفقيا
محمد طاهر عرفه replied to محمد طاهر عرفه's topic in منتدى الاكسيل Excel
هل كتبت القيمة المراد توزيعها فى الخلية الفعلة قبل تشغيل الماكرو مثلا اكتب 1000 ثم و انت مازلت فى نفس الخلية التي بها ا 1000 شغل الماكرو و اختار 10 فترات -
تلوين التشكيل فقط و التحكم فى حجمه و خطه
محمد طاهر عرفه replied to محمد طاهر عرفه's topic in منتدى الاكسيل Excel
شكرا لك أخي الفاروق و أرجو أن يكون مفيدا :( -
اجعل تنسيق الخلية كالتالي b2ddd/mmm/yyyy
-
معلومات عن اسلوب الحماية بدنجل - دونجل Dongle
محمد طاهر عرفه replied to تلميذ و منكم بيتعلم's topic in قسم الأكسيس Access
الموضوع غير منتشر لأنه مكلف و متخصص مقارنة بالحماية بالكود أي أنه هناك كلفة لقطعة الدنجل نفسها علي عكس الكود ، لذا فأغلب الناس يلجأون الي الحماية بالكود كما أنه حتي الدنجل ، يمكن التغلب عليه بواسطة المخترقين ببرامج الاختراق وذلك بفك شيفرة البرامج ثم اكتشاف المكان الذي يتم فيه استدعاء البيانات من الدنجل و عمل bypass له ( هذا فيما يخص تطبيقات الملفات التنفيذية بالبيزيك ) أما فى الاكسيس فقد يكون الموضوع أصعب فى فك حمايته ، و لكن ستبقي عقبة تكلفته و التخصص. و يوجد منه ما يركب علي ال parallel port او علي ال usb و هذه وصلات عن موضوع الدنجل ، لعل فيها بعض الفائدة http://eng.8m.com/tuter3.html http://www.cybcity.com/eng/progpro.html http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?dongle http://networking.webopedia.com/TERM/D/dongle.html http://www.keylok.com/?source=google http://www.nwfusion.com/columnists/2002/0121gibbs.html http://info.astrian.net/jargon/terms/d/dongle.html http://www.faqs.org/docs/jargon/D/dongle.html -
وهذا الكود من أجل تغيير لون و حجم و خط التشكيل فقط لمجموعة خلايا و يمكن تغيير اللون و الحجم من الكود الفكرة أني اضطررت لاعداد لوحة بها أناشيد من أجل أطفالي ليضعوها فى الفصل و بعد كتابتها بالتشكيل ـ لم يعجبني أن التشكيل له نفس لون الكتابة و تغييره ممل جدا آمل أن يكون مفيدا مع تحياتي ملاحظة : تم حذف الملف و اضافته لمكتبة الأكود بعد تحميله 294 مرة الموضوع فى المكتبة : تحميل الملف من المكتبة:
-
هذا كود بسيط لتوزيع القيمة أفقيا علي مجموعة من الخلايا بالتساوي اكتب رقم فى أي خلية شغل الماكرو سيسأل عن عدد الخلايا المطلوب التوزيع عليها نفذ مفيد لمن يقومون بالتدفقات النقدية المتساوية مع تحياتي DistributeEqual.rar
-
فهرس سلسلة دروس الأخ أحمد الحربي 1- تعريف بـ adp http://www.officena.net/ib/index.php?showtopic=1244 2- تنصيب MSDE http://www.officena.net/ib/index.php?showtopic=1246 3- MSDE من الداخل http://www.officena.net/ib/index.php?showtopic=1249 4- إنشاء قاعدة على الملقم MSDE http://www.officena.net/ib/index.php?showtopic=1251 5- الجداول في مشاريع أكسس http://www.officena.net/ib/index.php?showtopic=1269
-
اخفاء و اظهار صندوق التحكم بالكود
محمد طاهر عرفه replied to زاهر العبودي's topic in قسم الأكسيس Access
أخي فهد ظننت انها بالعربي :d Format = تنسيق Control Box = صندوق تحكم ( علي ما اعتقد ) مع تحياتي -
اخفاء و اظهار صندوق التحكم بالكود
محمد طاهر عرفه replied to زاهر العبودي's topic in قسم الأكسيس Access
هناك بعض الخواص من خواص النماذج لا يمكن التحكم يها فى وضع العرض مثل اخفاء و اظهار صندوق التحكم فلا يمكنك تشغيل الكود التالي me.controlbox = false فى وضع العرض و لكن لابد ان تفتح النموذج فى وضع التصميم و تغير الخاصية ، ثم تفتحه فى وضع العرض ايضا المثال به تطبيق لاستخدام الدالة isloaded لمنع فتح نموذج رقم 2 دون وجود نموذج رقم 1 مفتوحا DesignViewChanges.rar -
|و| كود لتغيير رمز محرك الاقراص السى دي
محمد طاهر عرفه replied to جمال فايز's topic in قسم الأكسيس Access
يمكنك استنتاج القرص مباشرة اكواد للتعامل مع الملفات و المجلدات http://www.officena.net/ib/index.php?showtopic=1318 -
و مرفق المثال لعمل كشف حساب عميل للاخ أمير customer_mobtadii.rar