1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش ساخت تابع Query Command

شروع موضوع توسط hector2141 ‏14/10/12 در انجمن مقالات نرم افزار

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    [​IMG]​
    این مقاله نحوه ایجاد قابلیتی را می آموزد که ضوابط فیلتر کردن را از طریق یک فرم جدولی اکسس 2003 وارد کنید و دکمه ای بنام Query داشته باشید تا فیلتر اعمال شود.
    این فیلتر 4 تکست باکس بنام های txtFirstName ، txtMiddleInitial ، txtLastName وtxtSSN دارد که جدول دیتابیس member نام دارد و فیلد هایی بنام های First ، Mi ، Last و SSNدارد .
    فانکشن AttachAnd که برای ساخت جمله فیلتر کننده SQL استفاده میشود :


    "First='David' and Last='Nishimoto'". ​
    ساخت فانکشن :
    Option Compare Database
    Dim ssql​
    1- کاربر دکمه query را فشار داد
    2-یا اینکه شما میتوانید یک دکمه برای رویداد exit قرار دهید.
    Private Sub cmdQuery_Click()
    BuildQueryCommand
    End Sub​
    3- فانکشن BuildQueryCommand یک فیلتر با ضوابطی که از تکست باکس ها دریافت کرده میسازد
    4 – قوانین فیلتر اعمال شد .
    Private Function BuildQueryCommand()
    sSQL = ""
    Call AttachAnd("First", "'" & txtFirstName & "'")
    Call AttachAnd("Mi", "'" & txtMiddleInitial & "'")
    Call AttachAnd("Last", "'" & txtLastName & "'")
    Call AttachAnd("SSN", "'" & txtSSN & "'")

    Filter = sSQL
    FilterOn = True

    End Function​
    ضوابط چندگانه یا تکی را بررسی کنید
    Single: "first='David'"
    Multiple:"First='David' and Last='Nishimoto'"
    Private Function AttachAnd(sField, sValue)

    If sValue = "''" Or sValue = "" Then
    Exit Function
    End If

    If Occurances(sSQL, "=") = 0 Then
    sSQL = sSQL & sField & "=" & sValue
    Else
    sSQL = sSQL & " and " & sField & "=" & sValue
    End If

    End Function​
    رخدادهای یک طرح را در عبارت SQL بشمارید
    Private Function Occurances(sSQL, sOperator)
    Dim offset
    Dim iCount​
    offset = 1
    While offset 0
    offset = InStr(offset + 1, sSQL, sOperator)
    If offset > 1 Then
    iCount = iCount + 1
    End If
    Wend​
    Occurances = iCount
    ​