एमएस एक्सेस में, एक फॉर्म संबंधित डेटा से डेटा के साथ ड्रॉप-डाउन आबादी कैसे प्रदान कर सकता है?


0

मेरे एमएस एक्सेस डेटाबेस में, मैं एक नया ऑर्डर भरने के लिए एक फॉर्म बनाना चाहता हूं।

मेरे पास एक टेबल है ग्राहकों और एक मेज आदेश

**Customers** => (id, firstname, lastname, address)
                  ^
                  |
**Orders** =>   (customer, product, total)

(ध्यान दें ग्राहक फ़ील्ड के साथ कई संबंध हैं आईडी )

मैं प्रपत्र बनाना चाहता हूं जहां मैं उत्पाद में डालूं, और यह चुनूं कि ग्राहक किस तरह के ड्रॉपडाउन मेनू से यह ऑर्डर कर रहा है।

आप इसे एक्सेस में कैसे प्राप्त करते हैं? अपने शोध से मैं कर सकता हूं कि एक फार्म बनाएं जिसमें वर्तमान तालिका में फ़ील्ड्स के लिए प्लेसहोल्डर हों, लेकिन कुछ भी नहीं जो रिश्ते का फायदा उठाकर मुझे भरने में मदद करे। ग्राहक खेत।

जवाबों:


4

हां, आप ऐसा कर सकते हैं। कुछ चालें हैं, लेकिन कई नहीं।

  1. एक नया फ़ॉर्म बनाएं और रिकॉर्ड स्रोत को "ऑर्डर" तालिका सेट करें। प्रपत्र गुण विंडो देखने के लिए, फ़ॉर्म में राइट क्लिक करें और "फ़ॉर्म गुण" चुनें
  2. प्रपत्र डिज़ाइन रिबन से, प्रपत्र पर एक नया कॉम्बो बॉक्स खींचें
  3. यदि यह आता है तो मैं विज़ार्ड को रद्द कर दूंगा और यह सब मैन्युअल रूप से करूंगा, लेकिन यदि आप चाहें तो इसका उपयोग कर सकते हैं।
  4. सुनिश्चित करें कि कॉम्बो बॉक्स का चयन किया गया है और इसकी संपत्ति शीट देखें
  5. "ग्राहक" फ़ील्ड पर नियंत्रण स्रोत सेट करें
  6. पंक्ति स्रोत को "चयनित ग्राहक। सीआई, ग्राहक। फ़र्स्टनेम, ग्राहक.लस्टेम फ्रॉम कस्टमर्स" होने के लिए सेट करें या इस सरल क्वेरी को बनाने के लिए "..." बटन पर क्लिक करें। ध्यान दें कि FIRST फ़ील्ड ID है, जो फ़ॉर्म और कॉम्बो बॉक्स के बीच की कड़ी है।
  7. यह अब काम कर रहा है, लेकिन यह केवल आईडी दिखाएगा, जो बेकार है। आपको कॉम्बो बॉक्स के प्रारूपण को ठीक करने की आवश्यकता है। गुणों में प्रारूप टैब पर जाएं, फिर "कॉलम गणना" देखें। इसे 3 में बदलें।
  8. इसके तहत कॉलम की चौड़ाई है। आप "0,3,3" में डालकर आईडी फ़ील्ड को छिपाने के लिए इसका उपयोग कर सकते हैं। आप इन मूल्यों के साथ खेलना चाहते हैं ताकि नामों की लंबाई के लिए उन्हें अच्छी तरह से फिट किया जा सके।
  9. आप चाहते हैं कि "कॉलम हेड्स" चालू हो या न हो - आपके ऊपर।
  10. फ़ॉर्म को "फ़ॉर्म दृश्य" में देखें और आनंद लें!

मैं आम तौर पर कॉम्बो के पीछे क्वेरी को अलग से बचाता हूं। फिर चरण 6 में आप SQL पेस्ट करने के बजाय क्वेरी का चयन करें। इसका कारण यह है कि आप आम कॉम्बो बॉक्स के लिए डेटा स्रोतों का संभावित रूप से पुन: उपयोग कर सकते हैं। जब आपका डेटाबेस बढ़ता है, तो नामकरण परंपराएँ बहुत अच्छी बात होती हैं, इसलिए आप जिन चीजों को कहते हैं, उनके बारे में तार्किक होना चाहिए।

इस नोट पर, मैं आपके टेबल चर का नाम नीचे में बदलूंगा। मेरे लिए, यह स्पष्ट है। ऑर्डर के लिए आईडी भी चाहिए। यदि ID का नाम समान है, तो आप तालिकाओं में शामिल होने पर "नाम से मेल खाते" खेलते हैं।

**Customers** => (CustomerID, firstname, lastname, address)
                           ^
                            \
**Orders** =>   (OrderID, CustomerID, product, total)

आप फ़र्स्ट / लास्ट को एक फ़ील्ड में जोड़ने की बजाय उन्हें अलग कर सकते हैं (क्वेरी में फ़ील्ड Custname: [Firstname] & amp; "" & amp; [Lastname])। आप कॉम्बो बॉक्सों को वास्तव में उपयोग में शक्तिशाली बना सकते हैं, लेकिन यह देखें कि क्या उनमें बहुत सारी पंक्तियाँ हैं - वे धीमी हो जाएंगी।

ऑर्डर पर उत्पादों के लिए, आपको वास्तव में "ऑर्डर लाइन्स" नामक एक और तालिका बनाने की आवश्यकता है जिसमें फ़ील्ड के रूप में ऑर्डरलाइन, ऑर्डरआईडी, प्रोडआईडी और क्यूटी हैं। फिर एक एकल आदेश में कई उत्पाद हो सकते हैं। यह सवाल के दायरे से परे है, लेकिन मुझे लगा कि मैं आपको वहां भी सही दिशा में इशारा करूंगा। आपको एक उत्पाद तालिका भी चाहिए।


फॉर्म बनाते समय मुझे कहीं भी "रिकॉर्ड सोर्स" नहीं दिखता
CodyBugstein

उस कदम को छोड़ दिया और बाकी का पालन किया। यह काम करता हैं! आपका बहुत बहुत धन्यवाद!
CodyBugstein

मदद करने में खुशी! यदि यह काम करता है, तो आपको चरण 1 में फॉर्म का रिकॉर्ड स्रोत किसी तरह निर्धारित करना होगा।
Saulysw

मुझे लगता है कि यह स्वचालित रूप से किसी भी तरह किया
CodyBugstein
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.