اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

nssj

03 عضو مميز
  • Posts

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

  • تاريخ اخر زياره

كل منشورات العضو nssj

  1. الأخ الكريم جعفر .. شكرا على توضيحاتك وتنبيهاتك لكن لا تزال مشكلة إضافة سطر جديد موجودة، هل هذا يعني أن الحل الذي خطر في بالي وهو جعل المؤشر يقف بعد الانتقال عند التكست بوكس وليس حقل النص هو الحل الأمثل لهذه المشكلة وليس له أي سلبيات ثم وللفائدة .. فقد لاحظت أنه يمكن الانتقال باستخدام الفارة عند الكبس على زر المنظار مع أنك حذفت الكود من هذا الزر .. فعلى أي أساس انتقل
  2. شكرا على النصيحة أخي الكريم .. مع أنني أعمل بها قدر استطاعتي .. قبل كتابة هذا الموضوع ليلة كاملة وأنا أبحث عن الكود المناسب وأجرب هذا وذاك وعشرات التجارب الفاشلة بسبب فاصلة أو نقطة .. لأن البرمجة ليس مجالي ولا يمكنني أن أترك تخصصي وأخوض في بحارها .. وبعد ساعات من التجارب خرجت بالأكواد الموجودة في الملف .. وهي أكواد أعتقد أن شخصا لديه بعض الخبرة بالبرمجة يكتب أفضل منها في دقائق .. ولكن أحب أن أجرب بنفسي قبل السؤال حتى مشكلة إضافة سطر جديد عند الانتقال بالانتر وجدت لها حلا عبر استخدام Me.tn.SetFocus ولكني أشعر أن هذا حل بدائي .. وأرغب بحل احترافي من أهل الخبرة وبخصوص مسح التكست بوكس .. الكود يمسحه بعد الانتقال فقط وليس بعد كتابة رقم خاطئ .. لكن كلامك جعلني أنظر مرة أخرى للكود لأكتشف أني لم أكن دقيق النظر بما يكفي .. فعدلت الكود إلى If DCount("ID", "tbl2", "HNO =" & tn) = 0 Then MsgBox "لم يتم العثور على السجل المطلوب", vbCritical, "عملية خاطئة" tn = Null Exit Sub End If فتم المطلوب في هذه الجزئية والحمد لله أما بخصوص إشكاليات الانتقال عبر الإنتر .. فأنا أعدت تحميل الملف وكررت التجربة .. والنتيجة نفسها .. وتفسيري الوحيد لما يحدث -و لست من أهل الخبرة- أن الكود ينفذ الأمر بالنظر للتكست بوكس قبل كتابة الرقم .. يعني إذا كان فارغا وكتبت فيه (5) وكبست إنتر تخرج لي رسالة (يرجى كتابة رقم) ثم إذا كتبت (4) وكبست إنتر ينتقل إلى الرقم الذي كان مكتوبا في السابق (5) هذا ما يحدث معي .. وإذا كان لا يحدث معك فهو شيء محير فعلاً
  3. أخي الكريم essam .. بالنسبة للانتقال بالإنتر عادت المشكلة الأولى .. يضيف سطرا جديدا في بداية حقل النص وعند كتابة الرقم الخطأ يعود للسجل الأول .. ولعله من الأفضل أن يبقى حيث هو
  4. أخي الكريم أبو مهاب .. شكرا على مشاركتك .. ولكن هناك ملاحظتان أولا: مسألة فنية: إلغاء الرقم في التكست بوكس بعد رسائل الخطأ أيضا ثانيا: توجد إشكاليات في الانتقال بكبسة إنتر - إذا استخدمت الانتقال بالإنتر بعد فتح الملف مباشرة، أو بعد الانتقال بالفارة تخرج رسالة: يرجى كتابة رقم - إذا كتبت رقما غير موجود واستخدمت الانتر تخرج رسالة (يرجى كتابة رقم)، ثم إذا أدخلت الرقم الصحيح تخرج رسالة (لم يتم العثور على السجل)، وإذا كبست إنتر للمرة الثانية دون أن أغير الرقم يتم الانتقال للمطلوب، وإذا غيرت الرقم ينتقل للرقم الذي كان موجودا قبل التغيير !
  5. الأخ الكريم essam rabea شكرا على مشاركتك .. تم حل المشاكل المذكورة .. لكن الكود ينتقل إلى الرقم عبر الفلترة، وإذا ألغيت الفلترة يعود للسجل الأول والمطلوب أكرمك الله الانتقال للسجل المطلوب وهو بين السجلات بدون فلترة بحيث أستطيع التنقل قبله وبعده
  6. الإخوة الكرام .. في الملف المرفق محاولة مني لعمل كود للانتقال إلى سجل معين بحسب رقم (Hno) قمت به حسب فهمي لما اطلعت عليه من مواضيع حسب استطاعتي والمطلوب بعض التعديلات: 1- أن يقوم الكود بمسح الرقم بمجرد الانتقال من (textbox) وهو في المثال المرفق (tn) 2- إن لم يكن الرقم موجودا تخرج رسالة بذلك 3- كما وحاولت أيضاً أن أجعل مفتاح (Enter) يقوم أيضاً بعملية الانتقال، لكن المشكلة أنه بعد الانتقال يضيف سطراً جديداً في بداية الحقل !! 4- بحسب بحثي استخدمت كودين لعملية الانتقال DoCmd.GoToRecord , , acGoTo, HNO(tn) Me.Recordset.FindFirst "hno=" & Me.tn فأيهما أسرع لاسيما في الملفات الكبييييرة انتقال.accdb
  7. كلامك ريَّحني وبطلت زعلان .. خليها عالمبرمجين - سهل ولا مش سهل يدبروا حالهم 😁- وخليني في شغلي .. طبعا من ضمن شغلي إني أنظف ملفات الوورد قدر الإمكان وكأنه ما في إشي اسمه: أكسس
  8. تمام .. ولكن السؤال هنا: معرفة أنه هذا العمود (في وورد أو الحقل في أكسس) لا يحتوي إلا على نص مختصر (250 بايت مثلا) وما سوى ذلك يحدد لي أين الخلل أو أن هذا العمود لا يحتوي إلا على هذه الرموز المعينة، وما سوى ذلك يحدد لي أين الخلل أو أن هذا العمود لا يحتوي إلا على أرقام ، وما سوى ذلك يحدد لي أين الخلل أو أن هذا العمود لا يحتوي على مسافات أو فقرات، وما سوى ذلك يحدد لي أين الخلل هذا الأمور وما على شاكلتها أنا بمعلوماتي البسيطة أظن أنها في أكسس أسهل، فيكفي أنني سأتعامل حينها مع جدول واحد وليس (50) جدول أو أكثر .. فهل الأمر كما ظننت
  9. أخي الكريم جعفر .. تم المطلوب على أحسن وجه وبحمد الله، سواء في الاستيراد أو في التصحيح، مع سلامة النص في الحالتين .. فجزاك الله خيراً وأحسن إليك إلا أن قولك زَعَّلني شوي 😟 ولخبط حساباتي 🙃 .. كان أملي أن يكون هذا الأمر في أكسس سهلاً، لأني أريد أن أتخلص من الخطوات الطوييييييلة والمملة التي كنت أتبعها في وورد لمعرفة أين الخطأ على كل حال .. موضوعنا هنا: (استيراد الجدول من وورد لأكسس كما هو)، قد وفقك الله لإتمامه على أحسن وجه، فبارك الله فيك، والحمد لله أولاً وآخراً أما موضوع معالجة وتصحيح البيانات وتغيير خصائص الحقول فسأطرحه في موضوع مستقل .. وساعتها بنشوف أحسن طريقة نتعامل فيها مع شرطي المرور (Access) لأنه على الأغالب أكثر مرونة في هالموضوع من شرطي مرور (Word) 😄 ولكن أولاً -وبعد الانتهاء من المهم- علي ترتيب أوراقي لمتابعة الموضوع الأهم: إضافة ونقل السجلات .. والله ولي التوفيق
  10. أخي الكريم جعفر .. رسالة (3163) تظهر إذا لم يكن عمود النص الطويل هو آخر عمود ولو كان الجدول 4 أعمدة، أو أني بالخطأ في أحد الصفوف وضعت النص في غير العمود المخصص له، وهذا لم يحدث معي إلا نادرا لكنه حدث على أي حال المقصود أخي الكريم .. أن فكرة جعل كل الحقول (مذكرة) -بشكل مؤقت عند الاستيراد فقط- هي لتلافي مثل هذه الأخطاء .. ولكي لا أضطر إلى تغيير الخصائص في الجدول الافتراضي (tbl_From_Word) حسب الحاجة لأنه كما ذكرت سابقا: تحويل الجداول من وورد إلى أكسس هو عملية متكررة أقوم بها لأكثر من غرض وليس فقط من أجل البرنامج الرئيسي، وفي بعض الأحيان يكون الجدول المراد تحويله يحتوي على أكثر من عمود فيه نص طويل ولزيادة البيان أقول: أني سوف أخصص قاعدة بيانات خاصة للتحويل من وورد لأكسس، ولن أدرجها في البرنامج الرئيسي، وعند استيراد مجموعة الجداول المطلوبة سوف أصدرها لقاعدة البيانات المطلوبة -سواء الرئيسية أو غيرها حسب طبيعة العمل- وهناك سوف أجري عليها التعديلات الخاصة بها ولن تبقى الحقول كلها (مذكرة) بل سوف أحولها للمطلوب سواء (رقم) أو (نص) .. وهذا كله بعد التأكد من أن حقل (الرقم) لا يحتوي إلا على الأرقام فقط، وحقل (النص) لا يحتوي على نص طويل، وفي حالة وجود شيء من ذلك فأرجو أن تكون هناك طريقة في أكسس يمكنني بها أن أعرف أرقام هذه السجلات وأعالج الأمر قبل التحويل .. لأن الخطأ في إدخال البيانات في الوورد وارد، ولا بد من تصحيحه وأظن -ولست من أهل الخبرة- أن الجدول بهذه الإجراءات سيأخذ وضعه المناسب ولن يكون سببا في ثقل البرنامج .. وأرجو أن يكون ظني في محله
  11. الأخ الكريك جعفر .. هذه نتيجة تجربة الكود الجديد كما طلبت .. الكود الجديد يزيد سطرا فارغا في آخر كل حقل، ما سوى ذلك فالنتيجة تمام والنص سليم ولا توجد أسطر فارغة أو مسافات في أوائل وأواخر الأسطر حتى لو كانت موجودة في ملف الوورد بالخطأ ويمكنك أن ترى الفرق بين الكودين في الملف المرفق، الملف (04) تم استيراده بالكود القديم، أما (05) فبالكود الجديد ثم وبالعودة للملاحظة المتقدمة بخصوص رسالة (3163)، فظهرت معي خلال التجارب المتعددة رسالة أخرى (3421): خطأ في تحويل نوع البيانات وكان التفكير سابقا أن تتكرم بحل لهذه الرسائل بحيث يتوقف الكود عن العمل مهما كبست عليه ولا تكون هناك حاجة لإجبار البرنامج على التوقف لكن ظهر لي أمر آخر أحب أن آخذ رأيك فيه، وهو أن نجعل خصائص كل الحقول في الجدول الرئيسي (tbl_From_Word) نص طويل (مذكرة) حتى لا تخرج هذه الرسائل، وحتى يتم تحويل الجدول بكل بياناته، ثم بعد ذلك يمكن معالجة الجداول وتغيير خصائصها حسب المطلوب في أكسس، لا سيما وأن استخدامي لهذا الكود لن يكون فقط للملف الرئيسي بخصائصة الموحدة، بل لأغراض متعددة ومتجددة يقتضي كل منها أن تكون بعض الجداول بخصائص مختلفة عن الأخرى لكن قبل ذلك أحب أن أتأكد من أمر ما: فبعض الحقول ينبغي ألا تحتوي إلا على أرقام، ووجود غيرها خطأ ينبغي معالجته وبعض الحقول أرقام وأقواس ووجود أحرف عادية غير مرغوب به وحقول لا ينبغي أن تكون فيها النصوص طويلة فهل توجد آليات في أكسس لتمييز هذه الأمور قبل تغيير خصائص الحقول يعني أن أتأكد أولا قبل تحويل الحقل من (مذكرة) إلى (رقم) أن هذا الحقل لايحتوي إلا على أرقام، والحقول التي تحتوي على غيرها يعطيني أرقامها لمعالجتها وكذلك الحال إذا كانت بعض الحقول تحتوي على نص طويل، قبل تحويله من (مذكرة) إلى (نص) أنا عادة أقوم ببعض هذه الأمور في الوورد عبر خطوات طويلة، فإن كان هذا الأمر ممكنا في أكسس فلعله من الأفضل أن تعالج هذه الأمور فيه ونجعل خصائص كل حقول الجدول (tbl_From_Word) على (مذكرة)، ثم سأطرح موضوع هذه الآليات المطلوبة في موضوع مستقل فما هو رأيك أخي الكريم ؟ 1322.6.تحويل.accdb
  12. أخي الكريم (Hawiii) .. لا يزال الكود لا يحذف المسافة الواحدة في أول وآخر السطر. لكن توجد إشكالية أخرى في هذا الكود .. بسبب وجود القوسين {} فيه وهي أقواس أستخدمها لترقيم خاص، فأصبح يحذف المتكرر منها، ويضيف سطرا بعد كل واحد، يعني: تصبح هكذا ولاحظ المسافة باللون الأصفر ثم وبخصوص كود الأخ جعفر الذي ظهر لي أنه يؤدي المطلوب ولا يؤثر على النص، ليس هذا بالملاحظة بل بالمقارنة بعد تصدير الملفات إلى وورد ومقارنتها آليا مع الأصول، فإذا لاحظتَ خلاف ذلك فالرجاء التحديد بشكل أوضح إن تكرمت هذا وأعتقد أن تعدد الأفكار والحلول ظاهرة صحية، ولا مانع من استخدام عدة أكواد، طبعا في قواعد بيانات متعددة، هذا هنا وهذا هناك، وليس في مكان واحد 🙂
  13. لأني كنت منشغلا بالتجارب رغبة في التعلم حتى أحل مشاكلي بنفسي في المستقبل أخي الكريم (Hawiii) لو جربتَ الكود للاحظتَ أنه لا يحذف المسافات إلا إذا كانت أكثر من اثنتين، أما المسافة الواحدة في أول وآخر السطر فتبقى كما هي وأنا أحاول أن أتعلم من كل مشاركة من أي أخ من أهل الخبرة، حتى لو لم تكن مشاركته فيها الحل الجذري للمشكلة .. فأنا بحمد الله أجيد التعلم بالمقارنة والقياس .. وكل محاولة تضيف جديدا في رصيد معرفتي .. وبالرغم من أن كود الأخ جعفر قد حل المشكلة .. فأنا تعلمت من الكود الذي تفضلت به، وكذا من مشاركات الإخوة الذين أتحفونا بمشاركاتهم .. تعلمت أمورا ربما تنفعني في حل مشاكل أخرى وقد أضفت على الكود الذي تفضلت به جملتين حصل بهما المقصود .. حذف المسافة في أول وآخر السطر DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Replace([" & Field & "],'" & vbNewLine & "','');" DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Replace([" & Field & "],' ',' ');" DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Replace([" & Field & "],' ',' ');" DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Replace([" & Field & "],' '+Chr(13),Chr(13));" DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Replace([" & Field & "],Chr(13)+' ',Chr(13));" DoCmd.RunSQL "UPDATE " & Table & " SET [" & Table & "].[" & Field & "] = Trim([" & Field & "]);" بقي أن أتعلم كيف أحوله إلى استعلام تحديث، حتى تخرج لي رسالة واحدة فقط، بدل أن تخرج لي ست رسائل بعدد أسطر الكود، ولأنه ظهر لي أن استخدام الاستعلام وأنا خارج النموذج أسلم، خشية أن أستعمل الكود وأنا في سجل قد قمت بتحديثه ولم أقم بحفظه فتخرج لي رسالة: لقد قام مستخدم آخر بتغيير هذا السجل .. ثم سوف أحتفظ بهذا الكود فقد أستخدمه في قاعدة بيانات أخرى غير قاعدة البيانات الرئيسية التي سوف أستخدم فيها الكود الذي تفضل به الأخ جعفر .. وإن لم أستخدمه فيكفي أنه أضاف لي جديدا في رصيد معرفتي
  14. الأخ الكريم جعفر .. تم الأمر بحمد الله .. حذفت جميع الأسطر الفارغة حيثما كانت وبغض النظر عن المسافات الفارغة فيها أو قبلها أو بعدها، وحذفت جميع المسافات في أوائل وأواخر الأسطر، دون المساس بالنص، وذلك بعد التجربة والمقارنة فجزاك الله خيراً على صبرك علي .. وبارك الله فيك
  15. الأخ الكريم Hawiii .. شكرا لك أن راعيت كوني مبتدئا وطبقت الكود على الملف لكن لما حاولت أن أحوله إلى استعلام كي أتخلص من رسائل التأكيد (أنت على وشك ..) لم أنجح مع أني استخدمت هذه الصيغة UPDATE مسند SET مسند.nass = CleanTable([nass]); وكذلك الأمر حين حولت الوحدة النمطية إلى Function CleanTable(..) . . End Function فأين الخطأ ثم بالنسبة للكود الذي تفضلت به فهو فعال في حذف الأسطر الفارغة إذ يحذف الأسطر الفارغة أينما كانت حتى لو كان فيها مسافة أو مسافات فارغة لكن بالنسبة لحذف المسافات في أول وآخر السطر فهو يحول المسافتين إلى واحدة ولا يحذفها يبدو فعلا أن موضوع حذف المسافات أكثر تعقيدا من حذف الأسطر 🤔
  16. الأخ الكريم جعفر .. بعد التجربة الأولية كانت النتيجة ممتازة .. ولكن بعد إجراء التجارب على ملفات أخرى ظهر لي أن الكود يحذف آخر حرف في آخر سطر في الحقل إذا كانت قبله مسافة أو مسافات يعني ( 1/ 21 ) فذكره . تصبح هكذا ( 1/ 21 فذكره بينما الكود الأول لم يفعل ذلك .. فإذا كان موضوع حذف المسافات في آخر السطر فيه احتمالية ولو ضعيفة لحذف شيء من النص فالأسلم تركها
  17. أعتذر ربما لم أشرح جيدا أو اختلط علي الأمر الكود لا يحذف السطر الفارغ إذا كان فيه مسافة أو مسافات .. لابد أولا من حذف المسافات ثم يحذف السطر الفارغ .. ربما لأنه إذا كان فيه مسافة لا يعتبره فارغا .. بصراحة معه حق في هذا .. فهذا مقتضى الدقة 🙂
  18. الأخ الكريم جعفر .. الكود لم يعد يأكل الكلام 🙂 .. لكنه لا يحذف السطر الفارغ إذا كان السطر الذي بعده في أوله مسافة .. يحذف أولا المسافة في أول السطر ثم بعد تشغيله مرة ثانية يحذف السطر الفارغ بينما الكود الأول الذي تفضلت به Function Remove_Extras(myValue As String) As String Dim x() As String Dim j As Integer For j = 1 To 999 'remove all the extra characters at the end of the line If Right(myValue, 1) = Chr(7) Or _ Right(myValue, 1) = vbCr Or _ Right(myValue, 1) = vbLf Or _ Right(myValue, 1) = vbCrLf Then myValue = Mid(myValue, 1, Len(myValue) - 1) Else Exit For End If Next j 'now remove the empty lines myValue = Replace(myValue, Chr(7), vbCrLf) myValue = Replace(myValue, vbCr, vbCrLf) myValue = Replace(myValue, vbLf, vbCrLf) x = Split(myValue, vbCrLf) For j = 0 To UBound(x) 'remove the extra spaces on: x(j) = LTrim(x(j)) 'the Left x(j) = RTrim(x(j)) 'the Right If Len(x(j)) < 2 Then Else Remove_Extras = Remove_Extras & x(j) End If Next j Remove_Extras = Replace(Remove_Extras, Chr(11), vbCrLf) 'remove all VT characters End Function كان يحذف الأسطر الفارغة بغض النظر عن المسافات في اوائل الأسطر وشكرا للأخ (هاوي) على مشاركته .. لكن لم أعرف كيف أستدعي الكود .. ولما جربته بشكل منفصل وكتبت أسم الجدول والحقل لم يحذف إلا المسافات التي في آخر الحقل فقط، أما إلمسافات التي في أواخر الأسطر الأخرى فبقيت كما هي
  19. الأخ الكريم جعفر .. صحيح أن شرطي المرور لم يعترض هذه المرة على الكود .. لكن يظهر أن الكود نفسه جائع بعض الشيء .. كل مرة أشغله فيها يأكل حرفا من آخر الحقل 😂 وشكراً للأخ biskra على اهتمامه بالموضوع .. الموضوع الذي يظهر لي أنه أكثر تعقيداً مما ظننت .. 🤔
  20. الأخ الكريم جعفر .. الأكسس الذي عندي لم يعجبه السطر الذي أضفته وأخرج لي رسالة وظلله بالأصفر ولما قلت له تابع على أي حال .. غضب وحذف كل شيء 😂 خلينا عالكود الأول أحسن 🙂
  21. الأخ الكريم جعفر .. تم الأمر بحمد الله فجزاك الله خيراً مع ملاحظة أن الكود لم يحذف المسافات التي في آخر السطر .. وربما لأنني لم أطلب ذلك في بداية الموضوع 🙂 .. ولكن الأمر هين ولا أريد أن أعقد الأمر أكثر من ذلك ثم وأنا أجري التجارب وبعد تقليب النظر بين الأكواد السابقة اخترعت استعلامين، أحدهما لحذف المسافة في بداية السطر UPDATE مسند SET nass = Replace(nass,Chr(13)+" ",Chr(13)); والثاني لحذف المسافة في آخر السطر UPDATE مسند SET nass = Replace(nass," "+Chr(13),Chr(13)); طبعا .. هو يحذف مسافة واحدة فقط .. ولكن هذا بالنسبة لي إنجاز كبييير 🙂 .. وحتى في الوورد الذي أعمل عليه منذ سنين أنا أقوم بهذا الأمر بنفس الطريقة تقريبا .. أستمر بعملية الاستبدال أكثر من مرة لحذف جميع المسافات والأسطر الزائدة ولكن -وإن كان طلبا جانبيا خارج الموضوع- كيف يمكنني إدماج مثل هذين الاستعلامين في استعلام واحد .. لعلي أستخدم هذا الأمر في استعلامات أخرى
  22. الأخ الكريم biskra .. الكود الذي تفضلت به يحذف المسافات المكررة خلال النص، ولم ألاحظ أنه حذف المسافات أول وآخر السطر، وهي المطلوبة ثم بصراحة .. الموضوع يزداد تشعبا بالنسبة لمبتدئ مثلي بينما كنت أظن أنه أيسر من ذلك .. وأنا خايف يصير وضعي أصعب من الصعب 🙄
  23. الأخ الكريم Hawiii .. جربت استخدام الكود فلم أفلح .. سواء لوحده أم باستعلام أم مع وحدة نمطية 🙄 وأود أن أذكرك بأن وضعي صعب جداً .. ولم أصل بعد لدرجة مبتدئ .. ومصطلحات: وحدة نمطية .. واستدعاء الكود .. والتحويل لاستعلام .. مصطلحات لم أستطع تطبيقها إلى الآن فالرجاء التطبيق العملي على الملف حتى أتعلم وأطبق في المرات القادمة .. سواء في هذا الكود أو غيره
  24. أخي الكريم .. هذا الكود قلب الملف رأسا على عقب 🙃 وألغى كل المسافات 😂
×
×
  • اضف...

Important Information