17-04-17, 01:50 AM (آخر تعديل لهذه المشاركة : 17-04-17, 01:56 AM {2} بواسطة alma_fandi.)
اشكرك سيد عبدالله
دائما المنقذ
بما انك متواجد
سيدي
عملت كل الى حكيت لى اياه و دائما لديك الحل
الان
لاحظ الكومبوكس ببحث من خلال فترات عمرية ( يعني بيعرض الاشخاص الذين اعمارهم بين الفئات العمرية حسب الكومبوكس 2
كيف بطبق هالشي ع البرنامج
كود :
Imports System.Data.OleDb
Public Class frmReport
Private Property dt As Object
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
frmstatsitces.Show()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'الحالات التي حدثت
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
dgvList.DataSource = dt
Dim rep As New done
rep.SetDataSource(dt)
rep.SetParameterValue("start_date", Me.DateTimePicker1.Value.Date)
rep.SetParameterValue("end_date", Me.DateTimePicker2.Value.Date)
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' الحالات المستكملة
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
'الكومبوبوكس
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([Sex]=@sex) AND ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@sex", Me.ComboBox1.Text)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox5.SelectedIndexChanged
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([state]=@state) AND ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@state", Me.ComboBox5.Text)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
CrystalReportViewer1.ReportSource = rep
CrystalReportViewer1.Refresh()
End Sub
Private Sub ComboBox4_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox4.SelectedIndexChanged
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([type]=@sex) AND ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@type", Me.ComboBox4.Text)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
CrystalReportViewer1.ReportSource = rep
CrystalReportViewer1.Refresh()
End Sub
Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox3.SelectedIndexChanged
Dim dt As New DataTable
Dim sql As String = "SELECT * FROM [Table1] WHERE ([place]=@sex) AND ([Birthday] BETWEEN @d1 AND @d2)"
Using da As New OleDbDataAdapter(sql, Con)
da.SelectCommand.Parameters.AddWithValue("@place", Me.ComboBox3.Text)
da.SelectCommand.Parameters.AddWithValue("@d1", CDate(Me.DateTimePicker1.Value.Date))
da.SelectCommand.Parameters.AddWithValue("@d2", CDate(Me.DateTimePicker2.Value.Date))
da.Fill(dt)
End Using
هذا فورم جديد Form1 وضعت فيه طريقة بحث شاملة، للإستفادة منه أو من الكود،
قم بإضافته للمشروع، واجعله فورم بداية التشغيل فقط لتجربته.
ملاحظة:
أنت تعتمد في عدة أعمدة على قيمة نصية، وهذه الطريقة قد تسبب لك مشكلة في البحث
وذلك عند عدم تطابق حرف ما منها في حالة لم يدقق المستخدم الذي يقوم بادخال البيانات،
والخطأ يكون مثلاً في المسافة( ) أو الألف(ا،أ،إ،آ) أو التاء(ة،ه) أو الياء(ي،ى) أو التشكيل وغير ذلك.
17-04-17, 03:58 PM (آخر تعديل لهذه المشاركة : 17-04-17, 07:48 PM {2} بواسطة alma_fandi.)
اشكر تواجد الجميع
سيد عبدالله اشكرك لسرعه الرد البحث من خلال الفئة بعتمد ع العمر يعني ما في مجال للاخطاء الاملائية
انا بدخل الداتامن خلال كومبوكس وبعمل بحث عنها من خلال كوبوكس ( يعني بجبر المستخدم انه يدخل نفس الشي )
انا عملتها ع الاكسس
واستعملت فيها كودات الفيجوال
خليني جرب
'حسب العمر
If ComboBox2.SelectedIndex > 0 Then
Select Case ComboBox2.SelectedIndex
Case 1 'أقل من سنة
filters.Add("[age] < 1")
Case 2 ' من 1 - 4 سنة
filters.Add("[age] BETWEEN 1 AND 4")
Case 3 ' من 5 - 9 سنة
filters.Add("[age] BETWEEN 5 AND 9")
Case 4 ' من 10 - 14 سنة
filters.Add("[age] BETWEEN 10 AND 14")
Case 5 ' من 15 - 19 سنة
filters.Add("[age] BETWEEN 15 AND 19")
Case 6 ' من 20 سنة وأكثر
filters.Add("[age] >= 20")
انا بعمل البحث من خلال العمر مو تاريخ الميلاد ( لان تاريخ الميلاد هاد فعليا تاريخ الزيارة انا خليته بسم تاريخ الميلاد )
من سبع ساعات وانا بحاول بالبرنامج ( مو حابب غلبك اكثر )
بحاول ضيف البارامترات بعد ربط التقرير بقاعدة البيانات مباشرة
لكن بدون فايده
عملت تاريخين للفلتر
عمل فلتر للداتا جريد بس ع الريبورت بيعطي فورم اختيار التاريخ