View Full Version : سوال: حذف قسمتی از متن در یک فیلد
Nazir Ahmad
چهارشنبه 29 خرداد 1392, 14:30 عصر
سلام خدمت تمام اساتید
من میخوام در داخل یک کویری قسمتی از متن داخل یک فیلد رو حذف کنم.
مثلا میخوام در فیلد "نام" تنها نامهایی که کلمة "سید" دارند "سید" از اول اسم پاک بشه و بقیه اسم باشه.
مثلا: سید علی اکبر =علی اکبر
البته شاید اسم دیگه ای باشه که سید در وسط باشه و در اول فیلد نباشه.
درباره این موضوع خیل گشتم اما چیز بدرد بخوری پیدا نکردم
ممنون میشم اگه یه کم راهنمایی کنید.
ممنون
Abbas Amiri
چهارشنبه 29 خرداد 1392, 23:34 عصر
سلام خدمت تمام اساتید
من میخوام در داخل یک کویری قسمتی از متن داخل یک فیلد رو حذف کنم.
مثلا میخوام در فیلد "نام" تنها نامهایی که کلمة "سید" دارند "سید" از اول اسم پاک بشه و بقیه اسم باشه.
مثلا: سید علی اکبر =علی اکبر
البته شاید اسم دیگه ای باشه که سید در وسط باشه و در اول فیلد نباشه.
درباره این موضوع خیل گشتم اما چیز بدرد بخوری پیدا نکردم
ممنون میشم اگه یه کم راهنمایی کنید.
ممنون
یک مقدار مشکل در محیط VBA با فونتهای فارسی وجود داره ، برای جلوگیری از اشکال کدهای زیر منظور شما را برآورده می کنه .
فرض شده نام جدول Table1 و نام فیلد FirstName هست
Sub Eliminate_Seyed()
Dim strSQL As String
strSQL = "UPDATE Table1 SET FirstName = Right(FirstName,Len(FirstName)-3) WHERE ASC(Left([FirstName],1))=211 " & _
"AND ASC(Mid([FirstName],2,1))=237 AND ASC(Mid([FirstName],3,1))=207"
CurrentDb.Execute strSQL, dbFailOnError
End Sub
Nazir Ahmad
پنج شنبه 30 خرداد 1392, 08:36 صبح
یک مقدار مشکل در محیط VBA با فونتهای فارسی وجود داره ، برای جلوگیری از اشکال کدهای زیر منظور شما را برآورده می کنه .
فرض شده نام جدول Table1 و نام فیلد FirstName هست
Sub Eliminate_Seyed()
Dim strSQL As String
strSQL = "UPDATE Table1 SET FirstName = Right(FirstName,Len(FirstName)-3) WHERE ASC(Left([FirstName],1))=211 " & _
"AND ASC(Mid([FirstName],2,1))=237 AND ASC(Mid([FirstName],3,1))=207"
CurrentDb.Execute strSQL, dbFailOnError
End Sub
سلام جناب Abbas Amiri (http://barnamenevis.org/member.php?189381-Abbas-Amiri) گرامی
مثل اینکه منظورم رو درست بیان نکردم.
من میخوام در داخل جدول یا کویری مثلا نام و نام پدر اشخاصی که سید دارند . سید رو از اون اسم حذف کنم به طوری که در فیلد اصلی جدول تغییر بوجود نیاید. حالا مشکل اینجاست که بعضی ها سید ندارند و از توابع mid, right یا ... نمیشه استفاده کرد چون اونا فقط تعداد حروفی رو از اول و یا قسمتی از فیلد کم میکنند درحالی که من میخوام یه شرط بذارم که در صورتیکه نامی "سید" داشت اون رو حذف کنه و به بقیه کار نداشته باشه.
یه سوال کوچولو دیگه هم اینکه که آیا در اکسس هم مثل اکسل دستوری مثل shrink to fit وجود داره یا نه؟ (کارش هم در اکسل اینکه که مقادیر یک سل رو به اندازه سل فشرده میکنه)
فایل رو هم ضمیمه کردم
ممنون.
emami.sie
پنج شنبه 30 خرداد 1392, 10:56 صبح
با سلام
اگه مشکلتون فقط حذف عبارت مورد نظر هستش و میخواید در جدول و کوئری اعمال بشه یه راه ساده هست (شکل ضمیمه)
ولی اگه میخواید ماژولی طراحی بشه و از طریق فرم این عملیات انجام بشه بحثی دیگست...
موفق باشید
یا علی
105848
Nazir Ahmad
پنج شنبه 30 خرداد 1392, 13:46 عصر
با سلام
اگه مشکلتون فقط حذف عبارت مورد نظر هستش و میخواید در جدول و کوئری اعمال بشه یه راه ساده هست (شکل ضمیمه)
ولی اگه میخواید ماژولی طراحی بشه و از طریق فرم این عملیات انجام بشه بحثی دیگست...
موفق باشید
یا علی
105848
سلام دوست عزیز مثل اینکه شما درست متوج منظور من نشدید
.......... سید رو از اون اسم حذف کنم به طوری که در فیلد اصلی جدول تغییر بوجود نیاید.
ممنون.
من میخوام فیلد اصلی تغییر نکنه و تنها در کویری در یک فیلد جدید این تغییرات به همراه فیلد اصلی وجود داشته باش.
باز هم ممنون
یا حق
alirezabahrami
پنج شنبه 30 خرداد 1392, 18:16 عصر
سلام خدمت تمام اساتید
من میخوام در داخل یک کویری قسمتی از متن داخل یک فیلد رو حذف کنم.
مثلا میخوام در فیلد "نام" تنها نامهایی که کلمة "سید" دارند "سید" از اول اسم پاک بشه و بقیه اسم باشه.
مثلا: سید علی اکبر =علی اکبر
البته شاید اسم دیگه ای باشه که سید در وسط باشه و در اول فیلد نباشه.
درباره این موضوع خیل گشتم اما چیز بدرد بخوری پیدا نکردم
ممنون میشم اگه یه کم راهنمایی کنید.
ممنون
سلام دوست عزیز مثل اینکه شما درست متوج منظور من نشدید
من میخوام فیلد اصلی تغییر نکنه و تنها در کویری در یک فیلد جدید این تغییرات به همراه فیلد اصلی وجود داشته باش.
باز هم ممنون
یا حق
سلام
کوئری نمونه ضمیمه را ملاحظه نمائید!
یاعلی
Abbas Amiri
پنج شنبه 30 خرداد 1392, 18:19 عصر
سلام دوست عزیز مثل اینکه شما درست متوج منظور من نشدید
من میخوام فیلد اصلی تغییر نکنه و تنها در کویری در یک فیلد جدید این تغییرات به همراه فیلد اصلی وجود داشته باش.
باز هم ممنون
یا حق
در کوئری مورد نظر بجای نام فیلد FirstName عبارت زیر را رو قرار بدید:
nam: IIf(Left([FirstName],3)="سید",Right([FirstName],Len([FirstName])-3),[FirstName])
nazanin_90
پنج شنبه 30 خرداد 1392, 20:44 عصر
سلام
کوئری نمونه ضمیمه را ملاحظه نمائید!
یاعلی
سلام
در نمونه فوق کاربرد trim چیه؟
باتشکر
alirezabahrami
پنج شنبه 30 خرداد 1392, 21:26 عصر
سلام
در نمونه فوق کاربرد trim چیه؟
باتشکر
سلام
تابع trim برای حذف فاصله یا فضای خالی ایجاد شده ناشی از جایگزینی فاصله خالی("") بجای کلمه سید در تابع Replace می باشد.
موفق باشید
Nazir Ahmad
دوشنبه 03 تیر 1392, 14:17 عصر
سلام
کوئری نمونه ضمیمه را ملاحظه نمائید!
یاعلی
ممنون دوست عزیز
کاملا همون چیزی بود که میخواستم
یاحق
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.