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

ابوخليل

أوفيسنا
  • Posts

    12,452
  • تاريخ الانضمام

  • Days Won

    231

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

  1. اولا تأكد ان خصيصة جميع النماذج : تأمين السجلات= سجل محرر ثانيا اذا قاعدة الجداول بامتداد accdb ولا تحتوي على حقول محسوبة في الجداول جرب جعل القاعدة الخلفية على امتداد mdb واجلب لها الجداول ( ليس بتغيير الامتداد فقط وانما بقاعدة بيانات تم عملها على 2003 وهو الافضل .. اوتحويلها عبر ادوات اكسس ) هي تجربة لن تخسر شيئا ... ربما نجحت واستفدنا من هذه التجربة هو لم يصلحها بعينها بل استبدلها ( ضغط واصلاح) ، والنسخة الاحتياطية هي قاعدتك السابقة
  2. المتغيرات في الكود ليس لها علاقة بعدد الارقام فالمتغير x يمثل رقم صحيح مع انه لا يتجاوز بضعة ارقام فهو يتراوح بين 1 وآخر قسط للعميل طيب سوف نغير دالة الدوران ونرى هل يعطي نتيجة كاملة ام لا اذا لم يعطي نتيجة فانت ملزم برفع البيانات كاملة للتطبيق عليها عن قرب ... الاسماء وبقية البيانات لا تهم ، فقط حقلبن كود العميل وتاريخ السداد وحقل فارغ للترقيم Dim rs As DAO.Recordset Dim i As Long Dim x As Integer Dim r As String Set rs = CurrentDb.OpenRecordset("SELECT Sheet1.cod, Sheet1.num , Sheet1.na_id , Sheet1.date_sdad fROM Sheet1 ORDER BY Sheet1.nname,Sheet1.na_id , Sheet1.date_ezen ") If rs.RecordCount > 0 Then rs.MoveLast rs.MoveFirst Else Exit Sub End If r = rs!cod x = 1 For i = 1 To rs.RecordCount rs.Edit If rs!cod = r Then rs!num = x x = x + 1 Else x = 1 r = rs!cod rs!num = x x = x + 1 End If rs.Update rs.MoveNext Next rs.Close: Set rs = Nothing
  3. اعود مرة اخرى احبتي ؛ ماذا عن الامتداد accdr هل جربه منكم احد ؟ علما اني ارسلت القاعدة بهذا الامتداد وانتظر النتيجة
  4. لم اجد طريقة لاكتشاف الخلل ، ولا يمكنني التجربة ... بسبب عدم اكتمال البيانات صحيح الجدول الثاني يحتوي اكثر من 47 الف سجل ولكن لا يوجد تاريخ يتم من خلاله الترقيم جرب هذا الحل لعل وعسى ، وهو جعل الكود يذهب الى آخر سجل ثم يعود الى اول سجل .. قبل التشغيل Dim rs As DAO.Recordset Dim x As Integer Dim r As String Set rs = CurrentDb.OpenRecordset("SELECT Sheet1.cod, Sheet1.num , Sheet1.na_id , Sheet1.date_sdad fROM Sheet1 ORDER BY Sheet1.nname,Sheet1.na_id , Sheet1.date_ezen ") If rs.RecordCount > 0 Then rs.MoveLast rs.MoveFirst Else Exit Sub End If r = rs!cod x = 1 Do While Not rs.EOF rs.Edit If rs!cod = r Then rs!num = x x = x + 1 Else x = 1 r = rs!cod rs!num = x x = x + 1 End If rs.Update rs.MoveNext Loop rs.Close: Set rs = Nothing
  5. شكرا اخي العزيز واستاذنا الفاضل ابو بسملة .. جزاك الله خيرا لا عجب لو قلت انني قرأت هذا الموضوع من وقت قريب بل ايام معدودات عندما طرحه استاذنا ابو جودي فالعتب على العمر .. قاله من قبلي حين سئل كيف اصبحت ؟ قال : اصبحت اذكر البعيد وأنسى القريب والشكر موصول لأخينا وحبيبنا ابي جودي .
  6. السلام عليكم ارسلت برنامج عملته على اوفيس 10 32 بت ووندز 32 بت ، لعميل جهازه وندوز 64 وافيس 32 ، ويعمل بلا مشاكل عندما نقله الى جهاز يحتوي على اوفيس 64 لم يتمكن من فتحه وظهرت له رسالة تخبره باختلاف النواة هل من حلول احبتي ؟
  7. والطريقة الاخرى هي نقل البيانات الى الجدول عبر الكود ..،، في هذه الحال تكون الواجهة غير مرتبطة بالجدول اعمل حقل جديد في الجدول نصي او رقمي ، واجعل الخصيصة مطلوب = نعم وبدون قيمة افتراضية لن يتم حفظ السجل حتى تدخل قيمة في هذا الحقل اذا اردت تحديث النموذج او اغلقته من غير النقر على زر حفظ ستظهر رسالة اكسس المعتادة التي تخبرك انه لا يمكن الحفظ هذه الرسالة مزعجة ويمكن تجاوزها واستبدالها برسالة افضل نأتي لزر الحفظ في اعلى زر الحفظ ستدرج قيمة في الحقل المذكور صفر او واحد او اي شيء هذا كل شيء
  8. الكود يتعامل مع جدول Sheet1 ومن خلال فرز التاريخ يتم الترقيم وفي مثالك الجدول cod_id لا يحتوي حقل التاريخ وبما انك اضفت هذا الجدول الذي يشتمل على الآلاف سوف احاول معاجة الامر من خلال الجدولين
  9. المنتدى مليء بمثل هذه المواضيع اكتب في البحث كلمة : تحزيم وهذا واحد منها ملحوظة : تم دمج الموضوعين
  10. طبعا لا اعمله انا ولكني استفيد ممن سبقني ، ومن الاعمال الموجودة والتي في المتناول ، مادام الأمر متاح وينجز العملية بكل احترافية والتي هي برامج التحزيم برامج التحزيم عديدة ومنها winrar في برامج التحزيم خصائص ومزايا عديدة تمكنك من كثير من الاجراءات .. مثل : 1- فرض توجيه وتنصيب مجلد البرنامج في مكان محدد ( بمعنى انه لن يتمكن العميل من تغيير الهدف ) طبعا هو اختياري عند التحزيم 2- ادراج ملفات داخل مجلد النظام ( مكتبات ) ويمكن تطبيقه في غرس ملفات الحماية 3- تشغيل ملفات تنفيذية اثناء التنصيب او بعد اكتماله ( تسجيل المكتبات / تخفيض امان اكسس ) ويمكن تطبيقة في الحماية بكتابة بيانات في الريجستر 4 - اعطاء كل مجلد او ملف او صورة خصيصة : 1- ( الكتابة فوقه = نعم / لا ) 2- ( الحذف عند الغاء التنصيب = نعم / لا ) ومزايا اخرى عديدة ،،، مثل عمل ملف الالغاء وتسجيل البرنامج ضمن قائمة برامج وندوز ... الى غير ذلك .. بالنسبة للمرة الأولى وتنصيب التحديث مستقبلا ((( اذا اتفقنا ان قاعدة الجداول لا يمكن التعرض لها ))).. فهنا نعطيها في البند الرابع : لا في الخصيصتين والبرنامج الذي يتم تنصيبه عند العميل كتحديث هو نفسه الذي يتم تنصيبه كجديد لأول مرة يبقى اشياء ثانوية كالشعارات والصور التي يتميز بها كل عميل عن الآخر .. فالافضل نطبق عليها ما عملناه مع قاعدة الجداول في الخصيصة الاولى فقط ( الكتابة فوقها = لا ) لأنه في المرة الأولى سيقوم هو باستبدال الايقونات او الشعار الافتراضي للبرنامج .
  11. لم افهم هذه الجزئية بالضبط لأنها تحتمل اكثر من طريقة تنفيذ على كل حال عدلت على الاكواد الموجودة بحيث اذا الرقم غير موجود .. يمكن اضافة بيانات جديدة له وحفظها امل ان تلبي طلبك userid3.rar
  12. اخي العبيدي وجدت لك مثال نادر قد اتحفنا به الاستاذ احمد @Bluemind زميل لنا سابق .. مع بعض التصرف المثال رائع يقوم بتسجيل التعديلات على جميع النماذج تسجيل التغييرات الحادثةفي جميع النماذج.rar
  13. الموضوع مكرر وكان الاولى بصاحب الموضوع ان يتابع في موضوعه السابق اعلاه يغلق ،،،
  14. حلمك ابا احمد صاحب الموضوع هو من يلام على عدم المبادرة وسرعة الاستجابة ، لانه الوحيد المستفيد في الوقت الحاضر والذي يهمه الموضوع ومع ذلك نلتمس له العذر ... فهو بعيد في اليمن .. فقد لا يتهيأ له الانترنت على مدار الساعة .. والغايب عذره معه علما انني من البداية اظهرت له عدم قناعتي بطريقة التصميم ، لأنها لا تنتمي الى اكسس ، بل هي اقرب الى بيئة اكسل
  15. جزاك الله خير اخوي موسى صاحب الموضوع يتحدث عن هذا . وتصور اخونا قاسم بان يطلب ان يرسل العميل له قاعدة الجداول فيعمل عليها التحديثات .. هي آمن الطرق ولكن نبحث مع الأمان ان تكون المسألة عملية سهلة وسلسة ويقوم العميل بها بنفسه . وهذا ما اشرت اليه في مشاركتي السابقة .. من خلال استيراد البيانات من القديم بالنسبة لموقع الجداول والربط الآلي .. فلسنا بحاجة الى اكواد للربط .. فموقع البرنامج مفروض وموجه سلفا ... من خلال التنصيب ... ومع ذلك وجود الكود وظهور مربع حوار يطالب بربط الجداول شيء اساسي في كل برنامج . التجارب تفتق الذهن لعمل ضبط متكامل مع ان اكثر ما اعمله باستمرار هو تحديث الواجهات ، فاني ارسل الواجهة الجديدة للعميل بملف تنفيذي ، وعلى العميل تشغيله فقط ومن خلالها تتم عملية الاستبدال . برامجي اقوم بتنصيبها اما في مجلد C:\Program Files او على محور C:\ مباشرة واستثني قاعدة الجداول من الازالة فيما لو تم الغاء التنصيب بمعنى لو قمت بالغاء التنصيب فسوف يتم حذف جميع ما بداخل مجلد البرنامج ما عدا قاعدة الجداول
  16. نعم كل ما ذكرت صحيح .. والاصل ان قاعدة البيانات الخلفية غير قابلة للتحديث ابدا المبرمج صاحب الخبرة مع العملاء .. يحتاط بوضع حقل او حقلين زائدين في الجداول الاساسية المتغيرة .. ( وهذا ينبع من الخبرة باحتمالية الحاجة اليها ) اذا التحديثات في القاعدة الخلفية كبير فهذا يسمى تطوير وليس تحديث . ويعالج بعمليات خاصة مثل تصدير البيانات المهمة التاريخية وغالبا لا تزيد عن 3 الى 4 جداول ثم تركيب البرنامج الجديد المطور ثم اعادة استيراد البيانات . من تجربتي : لدي برنامج يعمل لدى العملاء من سنين ... اجريت عليه الكثير من التحديث في البداية ، ثم بعد سنوات قمت بتطويره وذلك بدمج برنامجين آخرين معه ... البرنامج خاص بحضور الطلاب ثم دمجت معه برنامجا خاصا بالوكيل لرصد والتعامل مع مخالفات الطلاب وبرنامجا ثالثا تحفيزيا لجمع النقاط وحصد الجوائز والشراء . عندما تطلب المدرسة البرنامج الجديد المطور ... يتم تنصيبه على الجهاز بمسى آخر بحيث تبقى قاعدة بيانات الجداول القديمة على الجهاز ومن البرنامج الجديد يتم استيراد البيانات حسب الرغبة على النحو التالي : 1-اسماء الطلاب وبياناتهم من جدول الاسماء ( الكل او الحالية ) 2- بيانات الحضور والانصراف التاريخية 3- بيانات رسائل ( sms ) الغياب ورسائل المخالفات الى اولياء الامور 4- بصمات الطلاب عادة يكتفون بجلب اسماء الطلاب وبياناتهم الحالية ( الموجودون فعلا ) وبصماتهم . لأن بيانات الاعوام السابقة محفوظة ببرنامج الوزارة الرسمي هذا الاجراء يجب على المبرمج اخذه بالاعتبار مهما كان نوع النشاط ( اجتماعي او مالي ... الخ)
  17. عدم الحفظ ايسر طريقة هو ان تجعل حقلا من حقول مصدر البيانات (الذي هو الجدول ) في خصائص الحقل : مطلوب= نعم ، ويتم تعبئته عند نقر زر الحفظ الثاني وهو معرفة ما يجري من تغيير .. فهي مسألة ذات شقين : 1- معرفة آخر تغيير فقط : فانت بحاجة لثلاثة اعمدة او اربعة : 1- النص الاصلي 2- النص بعد التغيير 3- تاريخ ووقت التغيير 4- معرف المستخدم الذي اجرى التغيير 2- معرفة جميع التغييرات التي تطرأ على الحقل : فانت بحاجة الى جدول فرعي يرتبط بمعرف السجل يوجد به الحقول الاربعة السابقة آمل اني اكون افدتك
  18. هي اجابة واحدة فقط تم
  19. انا لاحظت انك غيرت اسم الحقل في الجدول كان اسمه ID الى userid وهو موجود في جميع الاكواد الاخرى باسم ID فقمت بتعديله الى ID تفضل Private Sub ID_AfterUpdate() On Error Resume Next Dim db As DAO.Database Dim rst As DAO.Recordset Dim i As Long i = Me.ID Set db = CurrentDb Set rst = db.OpenRecordset("SELECT * FROM tbltest WHERE tbltest.ID = " & i) With rst If !ID = i Then Me.sname = ![sname] Me.sage = ![sage] .Close Else Exit Sub End If End With Me.Refresh Set rst = Nothing db.Close Set db = Nothing End Sub اذا الاسم userid يهمك يمكنك التصحيح في الجدول وتعديله في الكود userid2.accdb
  20. هههههههه حتى month محجوز في اكسس يرمز الى الشهر forms!form1!subform1.SetFocus DoCmd.GoToRecord , , acNewRec txt_month.SetFocus
  21. forms!form1!subform1![name].SetFocus ملحوظة : كلمة name محجوزة في اكسس فحاول تعديلها اذا لم يعمل انظر الى اسم عنصر تحكم النموذج الفرعي هل هو = subform1
  22. هههههه الاستفسار بطريقة اخرى لعل الله يهديك وتفصح عن اسرار الدولة ما الميزة التي تتميز بها ارقام الهواتف التي لديك عن غيرها من الارقام .. بشرط ان تشترك كلها بنفس الصفة
×
×
  • اضف...

Important Information