نوشته اصلی توسط
حانیه
سلام خدمت اساتید ارجمند خودم در این سایت
از راهنمایی ها و آموزش های شما تشکر دارم اجرکم عندالله
در فرم پیوست اولا که چون فایل ماکرو انیبل آپلود نشد فرمتش رو عوش کردم لطفا با فرمت ماکرو انیبل save as شود
من وقتی در تکست باکس یک جستجو را انجام می دهم مشکلی نیست ولی وقتی یک جستجو را با دو آیتم میخواهم انجام دهم و از تکست باکس دوم استفاده می کنم در بعضی از موارد نتیجه جستجو با مشکل مواجه می شود و آنهم به این صورت که نتیجه به تعداد مختلف در لیست باکس تکرار می شود
به عنوان مثال موارد ذیل را امتحان کنید
فهیمه آستانی=نتیجه درست
فهیمه اعصاب مردان=نتیجه درست
فهیمه سرپرستار=نتیجه درست
آستانی سرپرستار=نتیجه درست
ولی..........
فهیمه رسمی= نتیجه مکررا تکرار شده است
خیلی فکر کردم خدا خیرتون بده بگید مشکل کدم در کجاست
از اینکه وقت صرف می کنید تشکر می کنم
اون تصویر اشتباهی اومده
با درودفراوان
نوشته اصلی توسط
حانیه
استاد ارجمند جناب آقای شمس العلما
سلام
تشکر می کنم از راهنمایی های بسیار مفید و مطالب آموزنده ای که در سایت ارائه می فرمایید
لطفا اگه امکانش هست فایل و ک
کدهای textbox2 رو خیلی بالا و پایین کردم ولی نتیجه بدست نیاوردم. میخام بدونم کجای کدم مشکل داره که نتیجه دلخواه بدست نمیاد
لطفا اگه میشه اشکال کد خودمو ببینید کجاست چون برای فرم های دیگرم هم باید استفاده کنم
ممنون می شم
فرم جستجوی پیشرفته با اشکال مواجه شده
با درود فراوان
فایل رو دیدم و کدهای که نوشتی خوب بود امیدوارم همیه ش موفق باشی
در مورد کدی که نوشتی در تکست باکس یک به این صورت هست
کد PHP:
Private Sub TextBox1_Change()On Error Resume NextListBox1.ClearDim b As Range For Each b In Sheets("list").Range("a3:i5000") If b.Value <> "" And b = TextBox1.Text Then
ListBox1.AddItem b.Value For i = 0 To 11 ListBox1.List(ListBox1.ListCount - 1, i - 2) = b.Offset(0, (-b.Column) + i).Text Next i End If Next b
End Sub
که به نظر کار را انجام میدهد ولی در صورتی که برای ما مهم نباشد که ورود تکست باکس یک در چه ستونی پیدا کند
یعنی وقتی می نویسی 4 اگر این عدد برای فهمیه در ستون چهار باشد یک بار این سطر را وارد لیست میکند و اگر بازم در همین سطر شروع کار ماه هم چهار بود دوباره این سطر رو تکراری برای شما وارد لیست باکس میکند
و از نظری دیگه اینکه اگر چهار مد نظر شما فقط شروع کار باشد این جستجو در ستونهای دیگر هم اگر چهار را پیدا کند وارد لیست میکند
حالا نمیدانم شما به همین صورت مد نظرتون هست یا نه و این دلیلش اینه که محدود را در یک ستون نداده اید
کد PHP:
For Each b In Sheets("list").Range("a3:i5000")
و محدود نوشته شده از ستون a تا i در حلقه نوشته شده .
در غیر این صورت می بایست محدود را از a تا a بنویسید.
به این صورت
کد PHP:
For Each b In Sheets("list").Range("a3:a5000")
و با استفاده از کمبو باکس ستون مورد نظر را مشخص کنید برای جستجو که کد بداند در کدام ستون جستجو کند
در کد تکست باکس دو
دو حلقه جدا نوشته اید که اشکال کار اینجاست که اگر شما به دنبال فهمیه آستانی جستجو می کنید تکست باکس یک فهمیه را پیدا می کند و تکست باکس دو آستانی را پیدا میکند بدون در نظر گرفتن تکست باکس یک در نتیجه شما علاوه بر فهمیه آستای تمام کسانی که نام آنها فهیمه
هست و تمام کسانی که فامیلی آنها آستانی هست را برای شما پیدا میکند .
اگر همین مد نظر شما بود که هیچ ولی در غیر اینصورت باید یک حلقه بنویسید و ایفی که در اون حلقه می دین با با and تکست باکس دو هم همونجا چک کنه یعنی
کد PHP:
If b.Value <> "" And b = TextBox1.Text and b.Offset(0,1) = TextBox2.Text Then
یا به این صورت دو تا ایف تو در تو ولی با یک حلقه
کد PHP:
If b.Value <> "" And b = TextBox1.Text Then
If b.Offset(0,1).Value <> "" and b.Offset(0,1) = TextBox2.Text Then
و اینکه اگر میخواهید جستجوی پیشرفته بنویسید که در ستونهای مختلف جستجو کند بهتر این است که با دو تا کمبو باکس برای هر تکست باکس موضوع جستجو را مشخص کنید مثلا یک کمبو بالای تکست باکس یک که وقتی میخواهید نام را پیدا کنید از کمبو باکس نام را انتخاب میکنید و از کمبو باکس بالای تکست باکس دو گزینه مدرک پرستاری را انتخاب میکنید در نتیجه این بر مبنای این دو ستون جستجو میکند
و همیشه بخاطر داشته بشید حلقه بهتر است از یک ستون انتخاب کنید مثلا از رنج a1:a5000 و با آفست بقیه ستون ها را مد نظر بگیرید
علاقه مندی ها (Bookmarks)