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

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

قام بنشر

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

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

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

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

 

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

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) بامتياز و بدون مشاكل

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

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

ألف شكر

 

  • Thanks 1

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