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

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

شروع موضوع توسط minaaa ‏26/1/11 در انجمن برنامه نویسی

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [​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