PDA

View Full Version : سوال: فیلتر کردن ساب فرم با کمبوبکس



rsrzae
سه شنبه 09 اسفند 1390, 19:22 عصر
سلام دوستان
چطوری میشه جدول ساب فرم را با کمبوبکس فیلتر کرد و نتایج فیلتر شده را چاپ کرد؟83435

Abbas Amiri
سه شنبه 09 اسفند 1390, 19:52 عصر
سوالتان با نمونه همخوانی ندارد چون درنمونه لیست باکس هست نه سابفرم
اگر سابفرم باشد وبا فرم اصلی اشتراک داشته باشد موضوع فرق میکند درغیر اینصورت رویه مشابه است . به هر حال برای مورد شما مانند زیر عمل کنید:


Private Sub Combo6_AfterUpdate()
listnam.RowSource = "SELECT * FROM Table1 WHERE [Name]='" & Combo6 & "'"
End Sub

rsrzae
سه شنبه 09 اسفند 1390, 20:00 عصر
ممنون آقای امیری من اسمش را اشتباه نوشتم
امکان داره روی نمونه اجرا کنین؟

Abbas Amiri
سه شنبه 09 اسفند 1390, 20:21 عصر
این هم نمونه :

rsrzae
چهارشنبه 10 اسفند 1390, 19:37 عصر
سلام
چطور میشه که همزمان از فیلتر چند کمبو استفاده کرد.یعنی اگر اسم را فیلتر کردم با انتخاب سال فیلتر اسم از بین نره؟

Abbas Amiri
چهارشنبه 10 اسفند 1390, 20:20 عصر
کدهای زیر راجایگزین کنید


Const ListSource As String = "SELECT * FROM Table1"
Private Sub Combo4_AfterUpdate()

SetFilter
End Sub

Private Sub Combo6_AfterUpdate()
SetFilter
End Sub

Private Sub Combo8_AfterUpdate()
SetFilter
End Sub

Private Sub SetFilter()
Dim strSource As String
strSource = ListSource & " WHERE [city] LIKE '" & Nz(Combo8) & "*'" & _
" AND [Name]LIKE '" & Nz(Combo6) & "*' AND [date] LIKE '" & Nz(Combo4, "") & "*'"
listnam.RowSource = strSource
End Sub

rsrzae
پنج شنبه 11 اسفند 1390, 19:06 عصر
ممنون آقای امیری
4 سوال دیگه
1-چه کدی برای یه باتن تعریف کنم که همه کمبوها را بعد از فیلتر به حالت اول برگردونه
2-چطوری نتایج را پرینت بگیرم
3-چطور بر اساس نام جستجو تعریف کنم
4-امکان حذف شماره ها و اسامی تکراری در کمبو هست یا نه
ممنون میشم جواب این 4 سوال را بدین

Abbas Amiri
جمعه 12 اسفند 1390, 00:15 صبح
سلام دوست عزیز
اگر بخواهید برای هرمسئله ای هر چند ساده ، راه حل آماده را داشته باشید تا ابد به دیگران نیازخواهید داشت باکمی تحقیق میتوانید تمام موارد فوق را بدست آورید که مهارت و اعتمادبنفستان را هم زیاد خواهدکرد
مورد یک بسیار ساده است به خودتان واگذارمی کنم
مورد 2 - نتایجی که به RowSource لیست باکس منتسب می شوند کوئری هستند و شما می توانید از کوئریها گزارش بسازید
مورد 3 ؟
مورد 4 بله از دستور GROUP BY استفاده کنید مثال



SELECT [Table1].[name] FROM Table1 GROUP BY name;

rsrzae
جمعه 12 اسفند 1390, 20:10 عصر
آقای امیری عزیز شرمندتونم که انقدر سوال میپرسم
من مبتدی هستم و دارم اولین پروژه را میسازم
شرمنده که این سوالات را میپرسم

Abbas Amiri
چهارشنبه 17 اسفند 1390, 23:49 عصر
فایل اصلاح شد

Abbas Amiri
شنبه 20 اسفند 1390, 00:29 صبح
با سلام پیرو پیام خصوصیتان تغییرات درفایل انجام شد.

rsrzae
یک شنبه 21 اسفند 1390, 20:12 عصر
سلام
برای خارج کردن کمبو از حالت فیلتر از کد زیر استفاده میکنم ولی کار نمیکنه
مشکل از کجاست؟

Private Sub Toggle10_Click()

Dim ctl As Control
For Each ctl In Me.Controls
If ctl.Tag = "cboFilter" Then
ctl = Null
End If
Next
SetFilter

End Sub

Abbas Amiri
یک شنبه 21 اسفند 1390, 20:41 عصر
در نمونه ارسالی مشکلی نداشت . با اینحال شما یک باتن به فرم اضافه کنید و کدهای داخل رویداد کلیک آن را در رویداد کلیک باتن جدید کپی کنید وامتحان کنید

rsrzae
یک شنبه 21 اسفند 1390, 21:36 عصر
در نمونه ارسالی مشکلی نداشت . با اینحال شما یک باتن به فرم اضافه کنید و کدهای داخل رویداد کلیک آن را در رویداد کلیک باتن جدید کپی کنید وامتحان کنید

نمیدونم چرا کار نمیکنه

rsrzae
یک شنبه 21 اسفند 1390, 21:48 عصر
کجای کار مشکل داره؟

Abbas Amiri
یک شنبه 21 اسفند 1390, 22:09 عصر
این بر میگردد به همان نکته که شما هیچ تحقیقی نمیکنید وبرای هرمسئله پیش پاافتاده هم سوال می کنید
در کدهای مربوط به رفع فیلتر ازکمبو ، شما نوشته اید کنترلهایی که خصوصیت Tag آنها cboFilter است مقدار نول بگیرند اما خصوصیت Tag کمبوباکس های شما هیچ مقداری ندارند . کمبوهای فیلتر را انتخاب کرده در پنجره Properties>Other خصوصیت Tag را مقدار cboFilter بدهید
یک نکته لازم بذکر است که شما میتوانستید مستقیما به کمبو ها مقدار نول بدهید ولی درروش مندرج شما هر تعداد کنترل مربوط به فیلتر داشته باشید وخصوصیت Tag آنها مقداردهی شده باشد با این کدها مقدار نول می گیرند