اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم الإخوة الافاضل في هذا المنتدى الجميل

في هذا الموضوع أريد التعديل على كود بحث :

عند الفلترة بواسطة حقل الإسم الكود شغال

لكن عند الفلترة بواسطة حقل التاريخ تظهر رسالة كما في الصورة المرفقة

 

وبارك الله فيكم وجزاكم خيرا.

1.jpg

base1.accdb

  • أفضل إجابة
قام بنشر

وعليكم السلام ورحمة الله وبركاته ..

جرب هذا الكود بعد التعديلات على زر الفلترة :-

Private Sub Cm1_Click()
    Dim filterCondition As String
    Dim formattedDate As String
    filterCondition = ""
    If Not IsNull(Me.tx1) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        filterCondition = filterCondition & "nom = '" & Replace(Me.tx1, "'", "''") & "'"
    End If
    If Not IsNull(Me.tx2) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        formattedDate = "#" & Format(Me.tx2, "MM/DD/YYYY") & "#"
        filterCondition = filterCondition & "moveDate = " & formattedDate
    End If
    If filterCondition <> "" Then
        Me.Filter = filterCondition
        Me.FilterOn = True
    Else
        Me.FilterOn = False
    End If
End Sub

في الكود تم استخدام دالة Replace لتأمين النصوص في حقل tx1 ضد الأخطاء الناتجة عن علامات الاقتباس المفردة . وتنسيق التاريخ فقط .

 

اما في الكود التالي ، فقط استخدمت تنسيق التاريخ ؛ وبدلاً من استخدام علامة الاقتباس المفردة ' لتطويق النصوص ، استخدمت علامتي اقتباس مزدوجتين """ لتجنب أي مشكلات ناتجة عن وجود اقتباسات مفردة داخل النصوص .

 

Private Sub Cm1_Click()
    Dim filterCondition As String
    Dim formattedDate As String
    filterCondition = ""
    If Not IsNull(Me.tx1) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        filterCondition = filterCondition & "nom = """ & Me.tx1 & """"
    End If
    If Not IsNull(Me.tx2) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        formattedDate = "#" & Format(Me.tx2, "MM/DD/YYYY") & "#"
        filterCondition = filterCondition & "moveDate = " & formattedDate
    End If
    If filterCondition <> "" Then
        Me.Filter = filterCondition
        Me.FilterOn = True
    Else
        Me.FilterOn = False
    End If
End Sub

 

  • Like 1
قام بنشر
6 ساعات مضت, Foksh said:

وعليكم السلام ورحمة الله وبركاته ..

جرب هذا الكود بعد التعديلات على زر الفلترة :-

Private Sub Cm1_Click()
    Dim filterCondition As String
    Dim formattedDate As String
    filterCondition = ""
    If Not IsNull(Me.tx1) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        filterCondition = filterCondition & "nom = '" & Replace(Me.tx1, "'", "''") & "'"
    End If
    If Not IsNull(Me.tx2) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        formattedDate = "#" & Format(Me.tx2, "MM/DD/YYYY") & "#"
        filterCondition = filterCondition & "moveDate = " & formattedDate
    End If
    If filterCondition <> "" Then
        Me.Filter = filterCondition
        Me.FilterOn = True
    Else
        Me.FilterOn = False
    End If
End Sub

في الكود تم استخدام دالة Replace لتأمين النصوص في حقل tx1 ضد الأخطاء الناتجة عن علامات الاقتباس المفردة . وتنسيق التاريخ فقط .

 

اما في الكود التالي ، فقط استخدمت تنسيق التاريخ ؛ وبدلاً من استخدام علامة الاقتباس المفردة ' لتطويق النصوص ، استخدمت علامتي اقتباس مزدوجتين """ لتجنب أي مشكلات ناتجة عن وجود اقتباسات مفردة داخل النصوص .

 

Private Sub Cm1_Click()
    Dim filterCondition As String
    Dim formattedDate As String
    filterCondition = ""
    If Not IsNull(Me.tx1) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        filterCondition = filterCondition & "nom = """ & Me.tx1 & """"
    End If
    If Not IsNull(Me.tx2) Then
        If filterCondition <> "" Then
            filterCondition = filterCondition & " AND "
        End If
        formattedDate = "#" & Format(Me.tx2, "MM/DD/YYYY") & "#"
        filterCondition = filterCondition & "moveDate = " & formattedDate
    End If
    If filterCondition <> "" Then
        Me.Filter = filterCondition
        Me.FilterOn = True
    Else
        Me.FilterOn = False
    End If
End Sub

 

السلام عليكم أخي الكريم

بعد التجربة

يشتغل (الكود 1 و  الكود2) بامتياز و بدون مشاكل

هذا هو المطلوب

جزاك الله كل خير وبارك الله فيك وجعله في ميزان حسناتك

ألف شكر

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information