08-03-22, 08:19 PM
(آخر تعديل لهذه المشاركة : 08-03-22, 08:58 PM {2} بواسطة أحمد الغرباوي.)
(08-03-22, 01:04 AM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاتهبارك الله فيك وشكرًا لك، لدي مشكلة في هدا الجزء فقط:
قم بتعديل الكود التالي ليناسب برنامجك
هذا يسمى كود البحث المتعدد ويعتبر اسرع كود للبحث عن نتيجة ما في البيانات التي تريد البحث فيها
سواء كنت تستخدم البرنامج على جهاز كمبيوتر رئيسي أو فرعي(ستحصل على النتيجة بنفس السرعة)
وسواء تبحث عن رقم الفاتورة أو اسم العميل بالعربي أو الانكليزي :
كود :
Dim Con As New OleDb.OleDbConnection
Dim Adapter1 As OleDb.OleDbDataAdapter
Dim DtAct1 As New DataTable
Dim Dx As New DataGridView ' جدول افتراضي
Sub FillDGV()
Con.ConnectionString = ("Provider=Microsoft.Ace.Oledb.12.0; Data Source =" & Application.StartupPath &
"\Activities.accdb;Jet OLEDB:Database Password=")
Con.Open()
Adapter1 = New OleDb.OleDbDataAdapter("Select Inv_No, CustomerNameAr, CustomerNameEn, Date From Invoices", Con)
Adapter1.Fill(DtAct1)
Dx.DataSource = DtAct1
Con.Close()
End Sub
Sub SearchData() ' البحث ضمن الداتاجريد
Dim dv As DataView = DtAct1.DefaultView
If Len(TextBox1.Text) <= 2 Then
dv.RowFilter = "ActivityNo Like '%12A12%'" ' قيمة غير موجودة
DataGridView1.DataSource = dv
Exit Sub
' اذا كانت الادخال أقل من ثلاث أحرف فلا يتم البحث ويفرغ الداتاجريد من البيانات
End If
If RadioButton1.Checked = True Then
' Invoice No
dv.RowFilter = "BusinessCategory Like '%" & TextBox1.Text & "%'"
ElseIf RadioButton2.Checked = True Then
' Custmer Name (Arabic Name)
dv.RowFilter = "BusinessSubCategory Like '%" & TextBox1.Text & "%'"
ElseIf RadioButton3.Checked = True Then
' Custmer Name (English Name)
dv.RowFilter = "Activity Like '%" & TextBox1.Text & "%'"
ElseIf RadioButton4.Checked = True Then
' ALL
dv.RowFilter = "Inv_No+CustomerNameAr+CustomerNameEn+Date Like '%" & TextBox1.Text & "%'"
End If
DataGridView1.DataSource = dv
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
FillDGV()
End Sub
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
SearchData()
End Sub
'
If BtnSearchBarcode.Checked = True Then
' باركود المنتج
dv.RowFilter = "ItemBarcode Like '%" & TextSearch.Text & "%'"
'
فتظهر الرسالة التالية:
Cannot perform 'Like' operation on System.Int16 and System.String.
وقد قمت بحذف
( ' ' اذا كانت الادخال أقل من ثلاث أحرف فلا يتم البحث ويفرغ الداتاجريد من البيانات)
فهل هذا يؤثر على عمل الكود
