Ինչպես ցուցադրել բազմակի արդյունքներ հարցման մեկ դաշտում ձեր մատչման մեջ

Կիսվել հիմա ՝

Եթե ​​երբևէ անհրաժեշտություն է եղել ստեղծել դաշտերի/հարցումների արժեքների սահմանափակ ցանկ՝ ձեր տվյալների բազայից ստացված այլ տեղեկությունների հետ մեկտեղ, ապա գիտեք, որ դա լավագույն դեպքում կարող է դժվար լինել, և մի առաջադրանք, որը շատերի կարծիքով անհնար է լինելու: Օրինակ, եթե ձեզ խնդրել են կազմել հաշվետվություն այն մասին, թե ովքեր էին տարվա յուրաքանչյուր ամսվա համար 5 լավագույն վաճառողները՝ նվազման կարգով, կամ յուրաքանչյուր հաճախորդին ամենամոտ 3 խանութները, ապա հնարավոր է, որ ստիպված լինեք զբաղվել խաչաձև հարցումներով կամ ձեռքով համատեղել արդյունքները Access-ից դուրս: Սակայն մի փոքր VBA կոդի օգնությամբ դուք րոպեների ընթացքում կստանաք հետևյալ արդյունքներից մի քանիսը…

jan Johnոն, Սալի, Բիլ
Feb Սալլի, Ադամ, ոն
ապականել Ադամ, Սալի, Բիլ

Բազմաթիվ դեպքեր կան, երբ օգտակար կլիներ, որ հնարավոր լիներ արդյունքների սահմանազատված ցուցակ ցուցադրել որպես ավելի մեծ հարցման մաս. Առաջատար 3 խոշոր հաճախորդների ցուցակ յուրաքանչյուր վաճառքի ներկայացուցիչների համար, ձեր ամենաբարձր ծախսեր ունեցող յուրաքանչյուր հաճախորդի ամենամոտ 5 խանութ: , ցուցակը շարունակվում է:

Դադարեք միավորել ձեր զեկույցը միասին

Տիկին մատչումՉնայած առավելագույն հնարավոր է մանրամասներ ստանալ այդպիսի հաշվետվություն ստեղծելու համար, սովորաբար սովորաբար ստիպված կլինեք ձեռքով միացնել արդյունքները Access- ից դուրս ՝ որպես աղյուսակի կամ զեկույցի մաս:

Հետևյալ ծածկագիրը կտրում է Access- ից դուրս հարցման արդյունքների հետ շփվելու անհրաժեշտությունը և փոխարենը թույլ կտա ձեզ հեշտությամբ արտադրել վերը նշված արդյունքների տեսակը:

Նախ, ուրվագծենք այն, ինչ ուզում ենք, որ ծածկագիրը կարողանա անել:

«Հաշվի առնելով հարցումը, վերադարձրեք x արդյունքի քանակ, զուգորդված մեկ տողի մեջ, որը սահմանազատվում է y- ով»

Նախքան սկսելը

Նախքան ծածկագիրը դիտելը, կարևոր է նշել, որ չնայած հնարավոր է ստեղծել VBA գործառույթ, որն ավելի ընդհանուր է և ունակ է գործածել հարցումների ցանկացած համադրություն, բայց դա անելու է բավականին երկար կոդ, ուստի այն, ինչ մենք կանենք այս հոդվածում: սահմանել օրինակ դեպք և գրել գործը այդ գործը կարգավորելու համար: Այս եղանակով դա անելը ձեզ համար շատ ավելի հեշտ կդարձնի կոդը վերստեղծել ՝ ձեր հատուկ կարիքները բավարարելու համար:

Գործի նմուշը

Մենք ունենք վաճառքների տվյալների բազա, որը պահում է հաճախորդի գնումների մանրամասները, ինչպես նաև այն ապրանքների կատեգորիան, որին պատկանում է գնումը: Մենք ուզում ենք պատրաստել այնպիսի հաշվետվություն, որը ցույց կտա, ըստ ամիսների, լավագույն 3 կատեգորիաները `նվազման կարգով:

Պարզության համար մենք օրինակը կպահենք մեկ սեղանի շուրջ, չնայած որ հիմնականը կաշխատի ՝ անկախ ձեր կարգավորումից: Աղյուսակը, որը մենք կօգտագործենք, կազմված է հետևյալ կերպ.

Sales
Հաճախորդի անունը
Գործարքի ամսաթիվը
Գործարքի արժեքը
կատեգորիա

Ակնհայտ է, որ սա չափազանց պարզեցված տեղադրում է, բայց գաղափարն ընկալվում է:

Հիմա ՝ ծածկագիրը

Public Function CategoryList(Month As String, NumResults As Integer, SortAscending As Boolean, Delimiter As String) As String
    Dim sSql, resultString As String
    Dim rst As Recordset
    Dim firstLine As Boolean
    
    'Create our SQL string using the supplied parameters
    sSql = "SELECT TOP " & NumResults & " [category] FROM sales GROUP BY Format([TransactionDate],""mmm""), sales.Category HAVING (((Format([TransactionDate], ""mmm"")) = """ & Month & """))"
    If SortAscending Then sSql = sSql & " ORDER BY Sum(sales.TransactionValue) DESC;"
    
    Set rst = CurrentDb.OpenRecordset(sSql)
    
    firstLine = True
    
    'Loop through the results, and create the string to return
    With rst
        Do While Not .EOF
            If Not firstLine Then
                resultString = resultString & Delimiter & .Fields("category")
            Else
                resultString = resultString & .Fields("category")
                firstLine = False
            End If
            
        .MoveNext
        Loop
    End With
    
    Set rs = Nothing
    CategoryList = resultString
End Function

Կոդը ՝ բացատրված

VBA կոդԻնչպես տեսնում եք, կոդը բավականին ինքնաբացատրելի է։ Մենք սկսում ենք մեր հարցումը կառուցելու համար տրամադրված պարամետրերն օգտագործելով։ Հարցման տողը ստեղծվելուց հետո մենք այն կատարում ենք և ցիկլի միջոցով դիտարկում արդյունքները՝ դրանք միացնելով միասին՝ ձևավորելով մեր որոնած միակ արդյունքի տողը։

Դուք կնկատեք, որ մենք ստուգում ենք, թե պե՞տք է տողին բաժանարար ավելացնենք, թե ոչ. Առանց այս ստուգման դուք կհայտնվեիք կամ վատ ձևաչափված արդյունքի տողով, կամ էլ ստիպված կլինեք կոդ ավելացնել ՝ անցանկալի սահմանազատիչները հեռացնելու համար. այս եղանակը ամենասկզբից ամեն ինչ լավ ու կոկիկ է պահում:

Գործառույթն ինքնին, իհարկե, կարելի է կանչել հարցման, զեկույցի կամ Access- ի ներսում ձեզ դուր եկած ցանկացած վայրից:

Ուղղեք կոռումպացված մուտքի տվյալների շտեմարանը

Եթե ​​բախվում եք փչացած Access տվյալների բազաներ երբ գործարկում եք վերոնշյալ ծածկագիրը, ապա ավելի լավ է օգտագործել ինչ-որ մասնագիտացված գործիք դրանք վերականգնելու և բոլոր աղյուսակները կոռումպացված շտեմարաններից վերականգնելու համար:

Հեղինակի ներածություն.

Mitchell Pond- ը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում վերանորոգել SQL խնդիրը և գերազանցել վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: