PDA

View Full Version : جدا سازي قسمتي از شرح



mosaArabi
یک شنبه 10 آبان 1388, 08:23 صبح
باسلام
در فايل نمونه در كوري نده ميخوام در ستون "زير فعاليت" كه بصورت روف و اعداد ميباشد فقط حروف ا در سيون ديگري جدا سازي كنم. البته قبلا موضوع مشابهي را داشتم كه يكي از دوستان (جناب قرباني) از طريق دستور در VBAدر فرو اين كار را انجام مشد . اما بنده ميخوام در كوري اين كار را انجام شود
فايل نمونه جهت تسريع

مهدی قربانی
یک شنبه 10 آبان 1388, 13:36 عصر
سلام
نمونه شما تكميل شد به ماجول مرتبط رجوع كنيد .

mosaArabi
یک شنبه 10 آبان 1388, 19:09 عصر
جناب قرباني
با سلام
ممنون از لطف شما. من مشكلم با راهنمايي شما حل شد.فقط ميخوام بدونم آيا امكان آن وجود دارد كه در خود كوري (بدون ماژول)از همان دستور MIDطوري استفاده كرد كه به جواب برسد . البته در ماژل جنابعالي ديدم كه فقط نوشته بوديد متن از اعداد جدا شود.
ميخوام اگه بشه اين امر باز باشد تا كاربر بتواند در زمان دلخواه بجاي اعداد، عبارت ، كلمه (فارسي و انگليسي)را جايگزين كند .(در كوري)
بازهم ممنون

مهدی قربانی
دوشنبه 11 آبان 1388, 15:46 عصر
سلام
ببينيد اگر بخوايم تشبيه كنيم مي تونيم اينطور اظهار كنيم كه تابع MID در اصل يك تابع تك بعدي و يا ايستا هست يعني شما با MID‌ تعيين مي كنيد كه محتويات يك فيلد يا كنترل هاي محتوي مقدار از كاراكتر چندم چه تعداد كاراكتر استخراج و نمايش داده بشه اما در تابع ChrSeperate عملاً يك حالت پوياي يا دايناميك به تابع MID‌ اضافه شده تا بواسطه يك حلقه در يك تعداد سيكل تعيين شده بياد از كاراكتر اول تا آخر رو يك به يك استخراج كرده و با IF بررسي كنه و نتيجه مورد نياز رو به ما ارائه كنه پس تابع MID به تنهايي قادر به انجام پروسه مورد نظر شما نيست .
اين ماجولي كه تقديم شما شد در اصل يك نمونه اي از تابع نويسي براي استفاده در داخل اكسس هست خوب همونطورم كه ملاحظه كرديد خود تابع حاضر تشكيل شده از توابع MID‌ و حلقه كه از اين تابع ميشه در كوئري ، فرم و يا گزارش استفاده كرد . شما بسته به نيازي كه وجود داره مي تونيد با بهره گيري از كد نويسي توابع لازم رو توليد كنيد و اونها رو بكار بگيريد براي نمونه من در تابعي كه تقديم شد يك آرگومان ديگه اضافه كردم كه كار اين آرگومان تشخيص نوع تفكيك سازي مقدار موجوده يعني شما اگر براي آرگومان numAct عدد 1 رو قرار بديد كاركتر هاي غير عددي و چنانچه 2 رو قرار بديد كاراكترهاي عددي استخراج و نمايش داده ميشه حالا شما اگر بخواين مي تونيد دامنه اين آرگومان رو بواسطه Select Case ايجاد شده توسعه بديد كه بتونه عمليات بيشتري رو انجام بده حتي همون جايگزيني كاراكترها و ....

سينتكس تابع جهت استفاده داخل كوئري در ويرايش جديد :

ChrSeperate(1;[FieldName])

dadsara
سه شنبه 12 آبان 1388, 08:32 صبح
سلام
در نمونه ارائه شده زمانیکه به کاراکتر عددی می رسیم آنرا استخراج کرده و در فیلد بعدی قرار می دهد.
جناب قربانی آیا با همین دستور می توان کاری کرد اگر به کاراکتر دلخواهی رسید این عمل را انجام دهد
مثلا گاهی اوقات در یک فیلد نام و نام خانوادگی بصورت علی / محمدی و یا اینکه علی - محمدی درج شده است حال قصد داریم علی را در یک فیلد و محمدی را در فیلد دیگر نمایش دهیم

مهدی قربانی
سه شنبه 12 آبان 1388, 16:55 عصر
سلام
جناب dadsara بله اين كار شدنيه شما با حلقه ميتونيد محتويات يك فيلد رو بررسي و در صورت رسيدن به كاراكتر مورد نظر عمليات تفكيك رو اجرا كنيد ، البته اين مستلزم بررسي و كار بيشتر روي اين تابع خواهد بود تا نتيجه دلخواه رو فراهم كنه .