اذهب الي المحتوي
أوفيسنا

ابوخليل

أوفيسنا
  • Posts

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

  • Days Won

    245

كل منشورات العضو ابوخليل

  1. اهلا ابا طارق لاحظت انك موضوعك هذا مكرر عن موضوعك السابق وكان الأولى ان تتابع هناك على كل حال خذ مني هذه الفوائد : 1- الترقيم التلقائي هو ملك للجدول ولأكسس وليس للمبرمج .. ولا ينصح العبث به .. وغالبا يستخدم كمفتاح له ، ومن هذا الرقم يمكننا اكتشاف عدد السجلات المحذوفة 1- الترقيم التلقائي يصعب تغييره او التعديل عليه الا بكود خاص ونلجأ اليه غالبا عند ادراج ارقام مفقودة . الخلل عندك من البداية حيث جعلت ترقيم الجدول التلقائي رقما للفاتورة . الارقام لا تعني شيئا بجانب البيانات المصاحبة .. اذا غرضك من هذا التعديل هو ترتيب العرض فأرى انه يمكنك معالجة وضعك باضافة حقل ترقيم بجانب رقم الفاتورة وتعمل فيه الترتيب الذي تريد ثم تستخدم الفرز والترتيب بناء على هذا الرقم
  2. شكرا لك استاذ عمر على المداخلة واحسنت في عرض هذه الفكرة ، وطريقة تنفيذها .. ويعتبر هذا العمل زيادة عالية في حماية بيانات العميل .
  3. عدت اجربه مرة اخرى المثال يعمل كما طلبت على اكمل وجه ملحوظة : بعد كل اختيار انقر على تنفيذ يجب الاختيار اولا ليتم الانتقال الى سجل جديد ويتم تنفيذ الامر AAAA2.rar
  4. اعتذر اخي الكريم عن الخطأ في المرفق فقد اختلط علي تفضل المرفق الصحيح AAAA2.accdb
  5. عثرت لك على هذا .. ولم اجربه Sub SavePDFAsPng(sPathToPDF As String, sPathToPNG As String) Dim oPres As Presentation Dim oSh As Shape ' Height/Width are hardcoded here ' You could get trickier and bring the PDF into any presentation ' once to get its proportions, delete it, set the slide size to the same ' proportions, then re-insert the PDF Dim sngWidth As Single Dim sngHeight As Single sngWidth = 612 sngHeight = 792 Set oPres = Presentations.Add With oPres With .PageSetup ' set it to 8.5x11 .SlideHeight = sngHeight ' 11in * 72 points per inch .SlideWidth = sngWidth End With .Slides.AddSlide 1, .SlideMaster.CustomLayouts(1) With .Slides(1) Set oSh = .Shapes.AddOLEObject(0, 0, sngWidth, sngHeight, , sPathToPDF) Call .Export(sPathToPNG, "PNG") End With .Saved = True .Close End With End Sub Sub TestSavePDFAsPng() Call SavePDFAsPng("C:\Temp\MyTest.pdf", "C:\Temp\MyTest.PNG") End Sub
  6. ادرج ptrsafe ليصبح Declare PtrSafe Function apisndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal filename As String, ByVal snd_async As Long) As Long
  7. السلام عليكم خير الكلام ما قل ودل . اللهم صل على محمد وآله وصحبه . بسبب ملاحظتي لحرص البعض _خاصة المستجدين _ على مسألة الحماية واستخدام طرق معقدة والبحث عن الجديد والأقوى احببت ان انشر تجربتي وخبرتي في هذه المسألة كأيسر وكذلك اقوى طريقة . الحماية من جهتين : 1- حماية البيانات وهي الجداول .. وهذه تهم المستخدم ( العميل) 2- حماية البناء ..( التصميم بما يشتمل من اكواد وغيرها ) وهذه تهم المبرمج ----------------------------------- الجهة الأولى : 1- اكسس ضعيف جدا في حماية جداوله .. لأن اي مستخدم مهما ضعفت صلاحياته يمكنه التمكن من الجداول ( نسخ / تغيير / حذف) 2- اي شخص يملك قاعدة بيانات اكسس يمكنه الوصول الى الجداول ما لم يتم حمايتها بكلمة مرور اكسس 3- ينطبق هذا على القواعد المقسمة حيث يجب تفعيل كلمة مرور اكسس على الواجهات الأمامية قبل عرض كلمة مرور المستخدم ، والا ستكون الجداول في متناول اليد . نأتي للجهة الثانية وهي ما يخص المبرمج : من خلال تجارب وخبرة سنوات افضل طريقة تريح المبرمج وكذلك العميل وبعيدا عن غرس الملفات والريجستري والفلاش : الاعتماد على رقم سيريال واحد من عتاد الجهاز ( قرص صلب / معالج / اللوحة الأم ) بشرط ان يكون الرقم اساسي خاصة القرص الصلب لا يتغير عند عمل التهيئة . فكون الرقم اساسي لا يتغير يفيد العميل عندما يقوم بتهيئة القرص ، وهو مريح ايضا للمبرمج ( يوجد كثير من المواضيع هنا في هذا المنتدى تشرح عملية استخلاص ارقام القطع الداخلية لجهاز الحاسب .. ابحث ) الخطوات : --------------------------------- - استخراج واستخلاص الارقام من السيريل ( غالبا يأتي مختلط بارقام وحروف) سيظهر هذا الرقم للعميل في فورم التسجيل واسفله حقل لادخال رقم النسخة ------------------------------- - نعمل دالة1 = استقطاع جزء محدد من النتيجة .. مثلا خمسة ارقام او اربعة ارقام من اليمين او من اليسار ( استقطاع ثابت) - نعمل دالة2 = اجراء معادلة على دالة1 ، مثلا ( دالة1 (x) 1234567 + 53954 ) ------------------------------- - عندما يرسل العميل رقم السيريل ويطلب رقم النسخة نقوم بعمل المعادلة ومن ثم نرسلها للعميل نتيجة هذه المعادلة ستبقى ملك دائم لجهاز حاسب واحد ما دام على قيد الحياة -------------------------------------------------------------------------------------------------------------- ما ذكرته اعلاه هو للنسخة الدائمة .. أما النسخة المؤقته فأقوم بعملها كالتالي : يجب ان يكون العمل مقسم الى واجهات وجداول . يجب ان اتعامل مع العميل على اساس نسختين من الواجهات : مؤقتة / دائمة الفرق بين الواجهة المؤقتة والواجهة الدائمة .. هي زيادة سطرين بشرطين في المؤقتة 1- الشرط 1: لن تفتح المؤقتة الا مع وجود الأنترنت شغال 2- نضع سطرا نحدد تاريخ توقف البرنامج ( يتم جلب التاريخ من الانترنت ) لنفرض انتهت مدة التجربة بعد شهر او شهرين .. وتم الشراء .. هنا نرسل الواجهة الدائمة للصق والاستبدال . هنا نكون حافظنا على بيانات العميل المدخلة وعلى حقوقنا البرمجية ----------------------------------------------------- نقطة اخيرة : سيتبادر الى الذهن ! اين يحفظ رقم النسخة ؟ لأن البرنامج سيطلبه عند كل اقلاع ؟ الجواب : ما دام رقم النسخة ملكا للجهاز فيمكن حفظه في اي مكان ، مثلا في حقل في جدول بشرط ان يحتوي الجدول على سجل واحد فقط او يمكن حفظه في ملف نصي بجانب قاعدة البيانات وهذه الطريقة الاخيرة هي الافضل بل تجب اذا تم توزيع الواجهات على اكثر من جهاز .. والسبب ان كل جهاز سيكون له رقمه الخاص هذا ما لدي آمل تجدوا فائدة
  8. لا شيء .. فاللغة العربية بحر .. " سددوا وقاربوا " .. والمقاربة هنا جميلة .. ما يخرج عن السياق لا يصل عدد اصابع اليد الواحدة
  9. تم تحقيق طلبك الأول الافضل تجعل طلبك الثاني في موضوع مستقل جديد لأنه يخص التقارير ABC2.accdb
  10. يبدو ان قيمة me.type_in_ara في المثال تختلف عن قيمتها في برنامجك حاول ان ترفع مثالا مطابقا تماما لما هو موجود في برنامجك
  11. نرجوا الاهتمام مستقبلا بكتابة العنوان المناسب لوصف الموضوع . تم تعديل العنوان
  12. تفضل حسب طلبك وشرحك بالصورة بالضبط علما بعد رفعي لهذه الاجابة تبين لي ان Other غير منضبط وبحاجة لضبط خاص Private Sub TYPE_IN_ARA_AfterUpdate() Dim i As Integer i = DCount("TYPE_IN_ARA", "TBL_IN_ARA", "TYPE_IN_ARA=" & Me.TYPE_IN_ARA) If TYPE_IN_ARA = 1 Then Me.AI = i + 1 ElseIf TYPE_IN_ARA = 2 Then Me.BO = i + 1 ElseIf TYPE_IN_ARA = 3 Then Me.CR = i + 1 Else Me.OTHER = i + 1 End If End Sub ABC2.accdb
  13. غير مفهوم .. ليش تقرير واستعلام وتاريخ ... فعلى شرحك اعلاه يكون آخر سجل يحمل مجموع عدد مرات التكرار يعني ادخلت حرف A عشرين مرة في عشرين سجل .. هنا السجل ألأخير سيحمل رقم 20 صح ؟
  14. الاصل الذي يجب اتباعه هو تسجيل فترة الانقطاع سواء كانت داخل العقد او بين العقود وفي حالتك يجب اولا ايجاد طريقة لتحويل الاعمدة الى صفوف ثم تعمل مقارنة .. بين تاريخ نهاية العقد وتاريخ بداية العقد الذي يليه
  15. تفضل حسب ما فهمت على الاقل هذه الفكرة تفيدك ABC.accdb
  16. 1- اضبط هوامش التقرير بحيث تكون مناسبة 2- يجب تحجيم عرض المحتوى .. شيئا فشيئا والتجربة كل مرة حتى تختفي الرسالة القصد ان لا يكون اتساع وعرض الحقول في السجل اكبر من عرض التقرير الافتراضي ... لأن عرض التقرير الافتراضي لا يتغير الا عند تغيير حجم الورق فهو يمثل صورة طبق الأصل للورقة التي تم اختيارها للطباعة عليها .
  17. فائدة جميلة .. قد تخفى على الفطن
  18. لا اعلم عن طريقتك او فكرتك بعد الحروف في السجلات لماذا لا تستخدم دالة Dcount لعد هذه الحروف في السجلات ؟ ويمكنك وضع هذه النتيجة في اي مكان تريده
  19. السلام عليكم العلاقات بين الجداول هي للربط والتقييد ربط وتقييد وملزم بها فقط عند ادراج النماذج الفرعية . وعن نفسي لا احرص عليها الا للضرورة الموجبة ولكن ليس هذا على اطلاقه ، فبعض الاعمال يكون الربط جزءا لا يتجزأ من تصميم الجداول
  20. تفضل : جمع كل صفحة / ومجموع ما قبله / والمجموع الكلي . اولا تم التجميع على مستوى الاعمدة ثم استخراج الاجمالي حسب المعادلة حقول التجميع تمت تغطيتها بحقول الاجمالي بحيث تختفي تحتها DataFarms.rar
  21. الجمع عمله يسير باذن الله ، ولكن من الصورة انت تريد جمع الصفحة واجمالي ماسبق واجمالي ما سبق هذا مكانه رأس التقرير وليس الذيل على كل حال ادخل بيانات وافية كافية تغطي اكثر من صفحة .... ثلاث صفحات على الأقل ثم ارفع المرفق اجمالي ما سبق لا يظهر الا اذا كانت البيانات أكثر من صفحة
  22. انا فقط عملت حسب طلبك على اصلاح حقل البحث ,,, لا تحديث ولا ادخال قيم ايضا لاحظت عدم وجود بيانات في المرفق .. بمعنى كيف اللي يريد يساعدك يفحص ؟
×
×
  • اضف...

Important Information