-
Posts
8,707 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
36
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محمد طاهر عرفه
-
في حدث بعد التحديث للاسم تستنتج العنوان باستخدام Dlookup و تضع القيمة فى مربع النص الذي يظهر العنوان dim m as str m=DLookUp("[address]","table1","[myname] = " & [Forms]![formname]![subformname]![txtboxname]) me.address=m
-
فى مصدر بيانات التقرير ضع المعيار التالي في حقل التاريخ Between [أدخل تاريخ البداية من فضلك] And [أدخل تاريخ النهاية من فضلك] و اذا أردت اظهار التاريخين علي التقرير فضع مربعي نص و اجعل وصدرهما التعبيران التاليان [أدخل تاريخ البداية من فضلك] [أدخل تاريخ النهاية من فضلك]
-
كيف أثبت مكان طباعة البيانات علي ورق فاتورة
محمد طاهر عرفه replied to alwa7eed's topic in قسم الأكسيس Access
جرب زيادة الهامش السفلي فى الصفحة فى التقرير و عموما موضوع التنشين علي ورق مطبوع ، غالبا ما سيخضع للمحاولة و التجربة و الخطأ مع تحياتي -
لموضوع هو أن هذه الدالة تستخدم لادراج نص متكرر بالعدد الذي تحدده ، و ذلك عند الحاجة لنص لتختبر عليه شيء ، و يكفي ررقم واحد فقط داخل القوس مثال =RAND(3) يكرر الفقرة3 مرات ، و الفقرة تتكون من نفس الجملة 5 مرات و يمكنك تحديد مرات تكرار الجملة داخل الفقرة =RAND(3,10) فتتكرر الفقرة 3 مرات و كل فقرة مكونة من 10 جمل و الفقرة تختلف بحسب النسخة ، ففي نسخة الاكس بي الانجليزية: The quick brown fox jumps over the lazy dog
-
نرجو مزيد من التوضيح ، هل تريده رقمي شكلا ، أم ماذا ؟؟ و لماذا لو شكلا مثلا فى اي استعلام cc: Format([date2];"ddmmyy")
-
نعم ممكن و ذلك بتحويل الروتين الي جالة و اجراء بعض التعديلات عليه ثم استدعاء الدالة بناء علي الحقل المطلوب و عدد الحروف المحدد و تم التطبيق علي مثال الاخ اسامة و اضيف اليه جدول و استعلام و موديول به دالة Text_Num5.rar
-
هل تريد فتح اي ملف اكسل محمي... تفضل
محمد طاهر عرفه replied to Smiley's topic in منتدى الاكسيل Excel
بعد التحميل لا تحاول فتح الحماية بالطريقة العادية و لكن من خلال الاوامر التي ستضاف الي قائمة Tools أو أدوات -
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
الشرط هو كلمة محمد المكتوبة فى خانة المعيار Criteria الموجودة تحت حقل الاسم فامسحي كلمة محمد جربي و ستجدي ما تبغين باذن الله و ارجو منك مراجعة الشرح السابقة الاشارة اليه -
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
أزيلي شرط أن الاسم = محمد من الاستعلام السابق -
هذا مثال للاخ مسافر gfx_mosafer.zip
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
لا توجد مشكلة فى الاضافة ، جربي ثانية و لا توجد مشكلة بالنسبة للاجابة علي السؤال ، هذا يتوقف علي : هل المطلوب هو التقدير المناظر لاخر سجل تم ادخاله ، أم المناظر لاكبر تاريخ ؟؟ فقد اتفقنا سابقا أن التواريخ تدخل بالترتيب فى الجدول فان لم تكن كذلك فسنحتاج لتعديل الاستعلام فبرجاء الافادة عموما للحصول علي التقدير المناظر لاخر سجل تم تسجيله ل محمد ( علي اساس الترتيب الزمني فى التسجيل ) سنضع Last فى كل من حقلي التاريخ و التقدير و للحصول علي التقدير المناظر لاكبر تاريخ فى سجل تم تسجيله لمحمد سنقوم اولا بعمل استعلام تحديد عادي و نرتبه تنازليا بالتاريخ لجعل أكبر تاريخ هو الأخير فى الترتيب ثم بناء علي هذا الاستعلام سنبني الاستعلام الجديد و نستخدم Last مع التاريخ و التقدير -
كيفية عمل شرط مركب فى حقل مستنتج فى استعلام
محمد طاهر عرفه replied to محمد طاهر عرفه's topic in قسم الأكسيس Access
الحل بطريقة أخري ( بالكود ) ضع الدالة التالية فى أي وحدة نمطية Function date2(Mydate) If Mydate <= #12/31/2003# Then date2 = "yes" If Mydate > #12/31/2003# Then date2 = "No" If Mydate = "" Or IsNull(Mydate) Then date2 = "No" End Function ثم استخدمها فى الحقل المستنتج كالتالي kk2: date2([Delivery_Date]) -
السؤال : كيف نقوم بعمل استنتاج لقيمة حقل فى الاستعلام بطريقة مركبة أي اذا كان تاريخ التسليم خاليا أو اذا كان أكير من 31-12-2003 تكون قيمة الحقل المستنتج Kk تساوي No و اذا كانت القيمة أقل من 31-12-2003 و ليست خالية تكون قيمة الحقل المستنتج kk تساوي Yes الاجابة : kk: IIf((IsNull([Delivery_Date]) Or [Delivery_Date]>#12/31/2003#),"NO","Yes")
- 1 reply
-
- 1
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
بالنسبة للحقول الاضافية من الممكن أن تستخدمي فيها Last بدل Max و يرجي مراجعة مواضيع الاستعلامات هنا http://www.officena.net/ib/index.php?showtopic=228 -
القصود هو عمل تخصيص كاننا نضيف ايقون جديد أدوات تخصيص أوامر Tools Customize Commands ثم نسحب له قائمة جديدة الي الاعلي new menu ثم من مجموعة الخطوط Fonts نختار الخط الذي نريد و نسحبه فتصبح لدينا فائمة بها الخطوط الفضلة فقط
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه replied to lyla's topic in قسم الأكسيس Access
حملي هذا البرنامج http://www.rarlabs.com/download.htm و هو يتعامل بكفائة مع امتدادي ال ZIP , RAR -
ما الفرق بين العلامة "." والعلامة "!"
محمد طاهر عرفه replied to امير عاطف's topic in قسم الأكسيس Access
السلام عليكم يرجي عدم توجيه السؤال لشخص محدد ، بحسب قواعد المشاركة فهذا قد يحرمك من اجابة أفضل من شخص آخر بالنسبة للسؤال علامة ال ! تفصل بين كائن ، و الكائن الذي يحويه بمعني Forms!Form1![mm] و قد يغني عنها ال النقطة me.mm فهذا يشير الي كائن مربع النص المسمي mm النموذج form1 و للتعامل مع خاصية visible للمربع mm : لا يوجد بديل للنقطة me.mm.visible = true Forms!Form1.form.mm.visible = true أي ان الكائنات يمكن أن يفصلها علامة تعجب و نقطة ، و لكن ال ! هي الاصل أما الخصائص ، فلابد أن يسبقها نقطة مع تحياتي -
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه 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![اسم القائمة])
-
اظهار قيمة حقل المناظره لأكبر قيمة حقل آخر
محمد طاهر عرفه 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 للملفات التنفيذية و أخيرا يطيب لي هذا الاقتباس من مشاركة للأخ المزيني فى الفريق العربي