Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> Office

अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

  <पी> Microsoft Access मैन्युअल डेटा प्रविष्टि को कम करके, त्रुटियों को कम करके और आपके डेटाबेस को वास्तविक समय में सुसंगत रखते हुए लिंक की गई तालिकाओं में जटिल गणनाओं को स्वचालित करने के लिए शक्तिशाली सुविधाएँ प्रदान करता है। परिकलित फ़ील्ड डेटाबेस को अधिक स्वचालित बना सकते हैं; उपयोगकर्ताओं को मैन्युअल रूप से कुल योग, छूट, देय तिथियां या लाभ मूल्य दर्ज करने के लिए कहने के बजाय, एक्सेस मौजूदा फ़ील्ड से उनकी गणना कर सकता है।

<पी> इस ट्यूटोरियल में, हम दिखाएंगे कि स्वचालित क्रॉस-लिंक्ड गणनाओं के लिए एक्सेस टेबल में परिकलित फ़ील्ड कैसे जोड़ें। आइए परिकलित फ़ील्ड बनाएं जो स्वचालित रूप से संबंधित तालिकाओं में मान खींचते हैं और उनकी गणना करते हैं।

<पी> याद रखें कि एक उन्नत डेटाबेस में, परिकलित फ़ील्ड का उपयोग यादृच्छिक रूप से नहीं किया जाना चाहिए। सबसे महत्वपूर्ण नियम है:

  • उन मानों के लिए परिकलित फ़ील्ड का उपयोग करें जो एक ही रिकॉर्ड में फ़ील्ड पर निर्भर करते हैं
  • गणना के लिए क्वेरी का उपयोग करें जो लिंक की गई तालिकाओं या एकाधिक रिकॉर्ड पर निर्भर करती हैं

चरण 1:नमूना संबंधित तालिकाएँ सेट करें

<पी> एक परिकलित फ़ील्ड जो तालिकाओं तक पहुँचती है, ठोस संबंधों पर निर्भर करती है। कोई भी अभिव्यक्ति लिखने से पहले यहां से शुरुआत करें।

<पी> रिश्ता बनाएं:
  • डेटाबेस टूल्स पर जाएं टैब>> रिश्ते चुनें
  • टेबल जोड़ें.
    • खींचें ग्राहकआईडी ग्राहक तालिका से ग्राहकआईडी तक ऑर्डर तालिका में
    • खींचें ProductID उत्पाद तालिका से ProductID तक ऑर्डर विवरण तालिका में
    • खींचें ऑर्डर आईडी ऑर्डर तालिका से ऑर्डरआईडी तक ऑर्डर विवरण तालिका में
  • सक्षम संदर्भात्मक सत्यनिष्ठा लागू करें
  • ठीक क्लिक करें
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> यह सेटअप क्रॉस-लिंक्ड गणनाओं की अनुमति देता है (उदाहरण के लिए लाइन योग के योग के रूप में सबटोटल ऑर्डर करें)। यह लिंकेज ही क्रॉस-टेबल लुकअप को विश्वसनीय बनाता है। इसके बिना, जब कोई संदर्भित रिकॉर्ड हटा दिया जाता है या बेमेल हो जाता है, तो गणना की गई फ़ील्ड चुपचाप शून्य हो सकती है।

चरण 2:तालिका में एक सरल परिकलित फ़ील्ड जोड़ना

  • ऑर्डर विवरण खोलें डिज़ाइन दृश्य में तालिका
  • पहली खाली पंक्ति में:
    • फ़ील्ड का नाम:लाइनटोटल
    • डेटा प्रकार:गणना
  • एक्सेस एक्सप्रेशन बिल्डर खोलता है
  • अपना फॉर्मूला दर्ज करें:
  • या इसे दृश्य रूप से बनाएं:ऑर्डर विवरण का विस्तार करें तालिका>> मात्रा पर डबल-क्लिक करें और यूनिटप्राइस , फिर * जोड़ें ऑपरेटर
  • परिणाम प्रकार सेट करें (मुद्रा, संख्या, पाठ, आदि) यह मिलान करने के लिए कि अभिव्यक्ति क्या लौटाती है
    • फ़ील्ड प्रॉपर्टी का विस्तार करें>>मुद्राचुनें
  • सहेजें टेबल
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> छूट सहित कुल:
[Quantity] * [UnitPrice] * (1 - [DiscountRate])
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> एक्सेस अब प्रत्येक रिकॉर्ड के लिए स्वचालित रूप से लाइनटोटल की गणना करेगा - कोई वीबीए नहीं, कोई मैन्युअल अपडेट की आवश्यकता नहीं है। हर बार जब आप डेटाशीट व्यू में क्वांटिटी या यूनिटप्राइस जोड़ते या संपादित करते हैं, तो लाइनटोटल स्वचालित रूप से अपडेट हो जाता है।

<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

चरण 3:क्रॉस-लिंक्ड संगणनाओं को संभालना - क्वेरीज़ में डोमेन एग्रीगेट फ़ंक्शंस का उपयोग करें

<पी> तालिका परिकलित फ़ील्ड में सीधे क्रॉस-टेबल संदर्भों की अनुमति नहीं है। आपको क्वेरीज़ या वीबीए का उपयोग करने की आवश्यकता है। डोमेन एग्रीगेट फ़ंक्शंस किसी अन्य तालिका या क्वेरी से गणना किए गए मानों को अभिव्यक्ति में खींचने के लिए एक्सेस का अंतर्निहित तंत्र है। सबसे उपयोगी हैं:

कार्य उद्देश्य DLookup() किसी अन्य तालिका से एकल मान लौटाता हैDSum() किसी शर्त से मेल खाने वाली किसी अन्य तालिका से मानों का योग करता हैDCount() किसी अन्य तालिका में मेल खाने वाले रिकॉर्ड की गणना करता हैDAvg() किसी अन्य तालिका से औसत मान DMax() / DMin() किसी अन्य तालिका से अधिकतम या न्यूनतम मान लौटाता है <पी> एक क्वेरी बनाएं:
  • बनाएं पर जाएं टैब>> SQL क्वेरी चुनें
  • तालिकाएँ जोड़ें से फलक, ऑर्डर और ग्राहक तालिकाएँ जोड़ें
  • फ़ील्ड जोड़ें:ग्राहक नाम, ऑर्डरआईडी
  • एक रिक्त फ़ील्ड कॉलम में, कुल के लिए एक परिकलित फ़ील्ड बनाएं
  • निम्नलिखित अभिव्यक्ति सम्मिलित करें:
Total: DSum("[LineTotal]","OrderDetails","[OrderID]=" & [OrderID])
  • DSum() मिलान वाले ऑर्डरआईडी (एक डोमेन एग्रीगेट फ़ंक्शन जो तालिकाओं में काम करता है) के लिए लाइनटोटल का योग करता है
  • qryOrderSummary के रूप में सहेजें
  • चलाएँ क्लिक करें
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> क्वेरी प्रत्येक रन पर पुन:गणना करती है। इस क्वेरी का उपयोग प्रपत्रों, रिपोर्टों के लिए रिकॉर्ड स्रोत या आगे की गणना के आधार के रूप में करें।

<पी> मुद्रा के साथ प्रारूप:
Total: CCur(DSum("[LineTotal]","OrderDetails","[OrderID]=" & [Orders].[OrderID]))
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

चरण 4:गणना स्रोत के रूप में एक मल्टी-टेबल कंप्यूटेड क्वेरी बनाना

<पी> अधिक परिष्कृत परिदृश्यों के लिए - जैसे कि एक रियायती कुल की गणना करना जिसमें एक तालिका से ग्राहक का स्तर और दूसरे से उत्पाद की कीमत शामिल होती है - आपको एक आधार क्वेरी बनानी चाहिए जो सभी प्रासंगिक तालिकाओं को जोड़ती है, फिर उस क्वेरी को अपने गणना किए गए फ़ील्ड या फ़ॉर्म में संदर्भित करें।

<पी> कदम:
  • बनाएं पर जाएं टैब>> SQL क्वेरी चुनें
  • ऑर्डर जोड़ें , उत्पाद , और ऑर्डर विवरण क्वेरी के लिए
  • फ़ील्ड जोड़ें:ऑर्डर आईडी, उत्पाद का नाम
  • खाली फ़ील्ड सेल में परिकलित कॉलम जोड़ें:
Profit: [DiscountedTotal] - [CostPrice]
  • क्वेरी को qryOrderProfit के रूप में सहेजें
  • चलाएँ क्लिक करें
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> अब आपके पास सभी ऑर्डरों के लिए उनके उत्पाद नाम के साथ लाभ रिपोर्ट है।

<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> अब कोई भी फॉर्म, रिपोर्ट, या डाउनस्ट्रीम परिकलित फ़ील्ड पूरी तरह से गणना किए गए मान प्राप्त करने के लिए DLookup() या qryOrderProfit के विरुद्ध एक सबक्वेरी का उपयोग कर सकता है - सभी क्रॉस-लिंक्ड और स्वचालित।

चरण 5:डेटा मैक्रोज़ के साथ अपडेट को स्वचालित करना

<पी> जब आपको गणना किए गए परिणाम को संग्रहीत करने की आवश्यकता होती है (सिर्फ प्रदर्शित नहीं) - उदाहरण के लिए, जब भी ऑर्डर विवरण रिकॉर्ड बदलता है तो गणना किए गए कुल को ऑर्डर तालिका में वापस लिखना - चाइल्ड टेबल से जुड़े डेटा मैक्रो का उपयोग करें। <पी> ऑर्डर तालिका में कुल फ़ील्ड जोड़ें:
  • सबसे पहले, ऑर्डर खोलें डिज़ाइन दृश्य में तालिका
    • फ़ील्ड का नाम:कुल
    • डेटा प्रकार:मुद्रा
<पी> यह एक सामान्य मुद्रा फ़ील्ड होना चाहिए, परिकलित फ़ील्ड नहीं।

<पी> सेटअप:
  • ऑर्डर विवरण खोलें डिज़ाइन दृश्य में
  • टेबल टूल्स पर जाएं टैब>> तालिका का चयन करें टैब>> इन्सर्ट करने के बाद / अपडेट के बाद चुनें
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

  • मैक्रो एडिटर में, SetField का उपयोग करें और लुकअपरिकॉर्ड क्रियाएँ:
  • LookupRecord चुनें
Lookup Up A Record In: Orders
Where Condition: [Orders].[OrderID] = [OrderDetails].[OrderID]
  • EditRecord चुनें>> सेटफ़ील्ड चुनें
Name: [Orders].[Total]
Value: DSum("[LineTotal]","OrderDetails","[OrderID]=" & [OrderID])
  • सहेजें क्लिक करें
<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

<पी> यह ऑर्डर विवरण में प्रत्येक प्रविष्टि या अद्यतन पर स्वचालित रूप से सक्रिय हो जाता है, पुनर्गणना किए गए कुल को मूल ऑर्डर तालिका में वापस भेज देता है - पूरी तरह से स्वचालित, कोई वीबीए आवश्यक नहीं है। <पी> अपडेट के बाद के लिए दोहराएँ: <पी> सम्मिलित करने के बाद मैक्रो कुल को तभी अपडेट करता है जब कोई नई विवरण पंक्ति जोड़ी जाती है। यदि उपयोगकर्ता मात्रा, इकाई मूल्य, या डिस्काउंट रेट बदलता है, तो कुल को भी अपडेट करना होगा।

<पी> वही मैक्रो जोड़ें:

Look Up A Record In Orders
Where Condition: [Orders].[OrderID]=[OrderDetails].[OrderID]
 EditRecord
 SetField
 Name: [Orders].[Total]
 Value: DSum("[LineTotal]","OrderDetails","[OrderID]=" & [OrderDetails].[OrderID])
  • सहेजें यह
<पी> अब, जब भी ऑर्डर विवरण में कोई रिकॉर्ड डाला या अपडेट किया जाता है, तो एक्सेस स्वचालित रूप से ऑर्डर कुल की पुनर्गणना करता है और इसे ऑर्डर तालिका में मिलान रिकॉर्ड में संग्रहीत करता है।

<पी> अपने एक्सेस डेटाबेस को सुव्यवस्थित करें:स्वचालित, सटीक क्रॉस-टेबल संगणना के लिए परिकलित फ़ील्ड जोड़ना

चरण 6:संगणनाएँ प्रदर्शित करना और उपयोग करना

  • डेटाशीट दृश्य में: परिकलित फ़ील्ड दिखाई देते हैं और लाइव अपडेट होते हैं।
  • फॉर्म/रिपोर्ट में: पूर्ण क्रॉस-लिंक्ड परिणामों के लिए फॉर्म या रिपोर्ट को क्वेरी (qryOrderSummary) पर आधारित करें। भावों के साथ अनबाउंड टेक्स्ट बॉक्स जोड़ें।
  • फ़िल्टरिंग/सॉर्टिंग: आप क्वेरी मानदंड या प्रकार में परिकलित फ़ील्ड का उपयोग कर सकते हैं।
<पी> टिप: किसी तालिका परिकलित फ़ील्ड को बाद में संपादित करने के लिए:

  • डेटाशीट दृश्य में:कॉलम का चयन करें>> फ़ील्ड चुनें टैब>> अभिव्यक्ति को संशोधित करें
  • या डिज़ाइन व्यू पर वापस लौटें>> गुण चुनें>> अभिव्यक्ति चुनें .

सर्वोत्तम अभ्यास और प्रदर्शन संबंधी विचार

  • तालिका परिकलित फ़ील्ड के बजाय क्वेरीज़ को प्राथमिकता दें एकाधिक तालिकाओं, समुच्चय, या भविष्य में होने वाले परिवर्तनों से संबंधित किसी भी चीज़ के लिए। क्वेरीज़ अधिक पोर्टेबल हैं (उदाहरण के लिए SQL सर्वर के लिए) और लचीली।
  • गणना संग्रहित करने से बचें जब तक प्रदर्शन इसकी मांग नहीं करता (उदाहरण के लिए बहुत बड़े डेटासेट जहां ऑन-द-फ्लाई रकम धीमी होती है)। इसके बजाय प्रश्नों में पुनर्गणना करें।
  • सामान्यीकरण: केवल कच्चे इनपुट को संग्रहित करें। आउटपुट की गतिशील रूप से गणना करें।
  • परीक्षण: परिवर्तनों के बाद, हमेशा नमूना डेटा से सत्यापित करें, विशेषकर संबंध जोड़ने के बाद।
  • प्रदर्शन: बड़ी तालिकाओं पर बहुत अधिक परिकलित फ़ील्ड या जटिल DSum() कॉल चीज़ें धीमी कर सकती हैं। विदेशी कुंजियाँ अनुक्रमित करें।
  • सीमाएं पुनर्कथन:
    • तालिका परिकलित अभिव्यक्तियों में सीधे अन्य तालिकाओं से कोई फ़ील्ड नहीं।
    • तालिका परिकलित फ़ील्ड में प्रतिबंधित फ़ंक्शन (पूर्ण VBA एक्सेस के लिए क्वेरी का उपयोग करें)।
    • परिणाम केवल पढ़ने के लिए हैं।
  • स्केलिंग युक्ति: बहुत उन्नत आवश्यकताओं के लिए, तर्क को SQL दृश्यों या SQL सर्वर जैसे बैकएंड पर स्थानांतरित करने पर विचार करें, जहां गणना किए गए कॉलम अधिक शक्ति प्रदान करते हैं।

सामान्य नुकसान और समस्या निवारण

  • #त्रुटि या #नाम?: जांचें कि फ़ील्ड नाम कोष्ठक में हैं [], डेटा प्रकार मेल खाते हैं, और संबंध सक्रिय हैं।
  • परिपत्र संदर्भ: किसी परिकलित फ़ील्ड को उसकी अपनी अभिव्यक्ति में संदर्भित न करें या लूप न बनाएं।
  • डेटा प्रकार बेमेल: परिणाम प्रकार को स्पष्ट रूप से सेट करें (उदाहरण के लिए धन फ़ील्ड के लिए मुद्रा)।
  • क्रॉस-टेबल विफल: तर्क को जॉइन वाली क्वेरी में ले जाएं या DSum() का उपयोग करें।
  • यदि लिंक की गई तालिकाओं (उदाहरण के लिए SharePoint या किसी अन्य डेटाबेस) का उपयोग कर रहे हैं, तो परिकलित फ़ील्ड में पंक्ति सीमाएँ या ताज़ा समस्याएँ हो सकती हैं।

निष्कर्ष

<पी> उपरोक्त चरणों का पालन करके, आप स्वचालित क्रॉस-लिंक्ड गणनाओं के लिए एक्सेस तालिकाओं में परिकलित फ़ील्ड जोड़ सकते हैं। परिकलित फ़ील्ड Microsoft Access में पंक्ति-स्तरीय गणनाओं को स्वचालित करने के लिए उपयोगी हैं - वे लाइन योग, छूट, देय तिथियां और प्रति ऑर्डर लाइन लाभ जैसे मानों के लिए अच्छी तरह से काम करते हैं। उन्नत क्रॉस-लिंक्ड गणनाओं के लिए, क्वेरीज़ सही उपकरण हैं:वे तालिकाओं के बीच संबंधों का पालन करते हैं और ऑर्डर कुल, ग्राहक बिक्री योग, इन्वेंट्री शेष और लाभ सारांश की गणना करते हैं। एक्सेस में गणना किए गए फ़ील्ड और क्रॉस-लिंक्ड गणनाओं में महारत हासिल करना एक स्थिर डेटा स्टोर को एक जीवित, स्व-रखरखाव प्रणाली में बदल देता है।

समाधान के साथ निःशुल्क उन्नत एक्सेल अभ्यास प्राप्त करें!
  1. Yammer का प्रभावी ढंग से उपयोग कैसे करें - शुरुआती मार्गदर्शिका Yammer का प्रभावी ढंग से उपयोग कैसे करें - शुरुआती मार्गदर्शिका

    यामर Microsoft का एक समूह संचार उपकरण है जिसका उपयोग कोई भी व्यक्ति किसी भी कंपनी के लिए सामाजिक नेटवर्क स्थापित करने के लिए कर सकता है। इस गाइड में, मैं आपको Yammer को सेट करने और फिर उसका उपयोग करने के लिए मार्गदर्शन करने के लिए कुछ शुरुआती टिप्स साझा करूँगा। Yammer का प्रभावी ढंग से उपयोग कैसे कर

  1. Apple का सितंबर 2023 इवेंट लाइव देखें:iPhone 15, Apple Watch और बहुत कुछ Apple का सितंबर 2023 इवेंट लाइव देखें:iPhone 15, Apple Watch और बहुत कुछ

    यह सितंबर है, और इसका मतलब है कि Apple जल्द ही अपने वार्षिक कार्यक्रम की मेजबानी करेगा जिसमें उन्नत उपकरणों की रिलीज की तारीखों के अलावा, iPhone 15 और iPhone 15 Pro Max, नई Apple घड़ियाँ और बहुत कुछ की घोषणाएं और पहली नज़र पेश की जाएगी। हमेशा की तरह, वंडरलस्ट नामक बड़े कार्यक्रम को कैलिफोर्निया के

  1. पीसी पर बैटलफ्रंट 2 लॉन्ग लोड टाइम्स को कैसे हल करें पीसी पर बैटलफ्रंट 2 लॉन्ग लोड टाइम्स को कैसे हल करें

    स्टार वार्स बैटलफ़्रंट 2 एक उत्कृष्ट एक्शन-एडवेंचर गेम है जो न केवल स्टार वार्स प्रशंसकों द्वारा बल्कि अन्य गेमर्स द्वारा खेला जाता है जो एक्शन गेम पसंद करते हैं। हालांकि, स्टार वॉर्स के संबंध में त्रुटियों के बारे में रिपोर्टें आई हैं बैटलफ्रंट 2 लॉन्ग लोड टाइम्स। इस लेख में सर्वोत्तम समस्या निवारण