السلام عليكم
الاخت الفاضلة زهرة
اثناء تصفحي في منتداكم الرائع وجدت كيفية تقسيم الاسم بواسطة استعلام ووحدة نمطية فهل من الممكن بعد اذنك ان تشرحي لي عمل هذه الوحدة النمطية
ولكم كل الشكر والتقدير
السلام عليكم
الاخت الفاضلة زهرة
اثناء تصفحي في منتداكم الرائع وجدت كيفية تقسيم الاسم بواسطة استعلام ووحدة نمطية فهل من الممكن بعد اذنك ان تشرحي لي عمل هذه الوحدة النمطية
ولكم كل الشكر والتقدير
احمد المبرمج كتب:السلام عليكم
الاخت الفاضلة زهرة
اثناء تصفحي في منتداكم الرائع وجدت كيفية تقسيم الاسم بواسطة استعلام ووحدة نمطية فهل من الممكن بعد اذنك ان تشرحي لي عمل هذه الوحدة النمطية
ولكم كل الشكر والتقدير
اخي الفاضل : احمد
السلام عليكم ورحمة الله وبركاته
مهمة هذه الوحدة النمطية هي تقسيم الأسم او الكلمات في العبارة الواحدة الى عدة اقسام بحيث نحصل من العبارة على التالي
اذا وضعنا iWordNum = 1 فإننا نحصل على اول كلمه في العباره من البداية
واذا اردنا الحصول على الكلمة الثانية فإننا نضع iWordNum = 2 وهكذا بالنسبة للكلمة الثالثة والرابعة .... الخ
اما اذا اردنا ان نحصل على آخر كلمة من العبارة فإننا نستخدم iWordNum = -1
واذا اردنا الحصول على الكلمة ما قبل الأخيره فإننا نستخدم iWordNum = -2 وهكذا بقية الكلمات ... الخ
اذا مهمة هذه الوحدة النمطية هي اعادة الكلمات على حسب ما نضع لها من ارقام للحصول على مكان الكلمة المطلوبه سواء الأولى او الثانية او الثالثة او الأخيره او بترتيب عكسي من الأخير الى الأول . مع ملاحظة انه في الوضع الطبيعي دائما يكون هناك مسافة واحدة بين الكلمات لتعطينا نتائج صحيحه واذا رغبنا ان يكون الإسم متصل كما في الأسماء الإنجليزية المعربه مثل ( المصري ) AL Masry فهذا لقب واحد ولكنه مفصول بمسافة وحتى لا ينقسم اللقب الى جزئين نضع الشرطة ( - ) بدلا من المسافة ليصبح AL-Masry اسما واحدا بدون تقسيم .
طريقة استخدام الوظيفة في الإستعلام
EfName: Word([English_name];1)
هنا نريد الحصول على اول اسم من كامل الإسم
EfName: Word([English_name];2)
هنا نريد الحصول على ثاني اسم من كامل الإسم
EfName: Word([English_name];3)
هنا نريد الحصول على ثالث اسم من كامل الإسم
وهكذا مع بقية مواقع الإسم من الإسم الكامل
واذا اردنا الحصول على آخر اسم من كامل الأسم نستخدم الوظيفة بهذه الطريقة
EfName: Word([English_name];-1)
هنا نريد الحصول على آخر اسم من كامل الإسم
EfName: Word([English_name];-2)
هنا نريد الحصول على الإسم قبل الأخير من كامل الإسم
EfName: Word([English_name];-3)
هنا نريد الحصول على الإسم قبل قبل الأخير من كامل الإسم
وهكذا مع بقية مواقع الإسم من الإسم الكامل
ايضا نستطيع ان نجمع الكلمة الأولى والثانية بهذه الطريقة ( مثل محمد بن )
AfName: Word([name];1) & " " & Word([name];2)
او نجمع عدة كلمات في جملة واحده بهذه الطريقة
AthName: Word([name];5) & " " & Word([name];6) & " " & IIf(Word([name];-1);Word([name];7))
بالتوفيق
شكرا جزيلا لك معلمتي ولا حرمنا الله من عطائك