أجهزة الكمبيوتر شبابيك إنترنت

تشكيل الطلبات. طلبات إلى مصلحة الضرائب أيون كيف يتم بناء الطلبات

في 8.3.5 لدينا القدرة على العمل برمجيًا مع نص الطلب.
يمكنك قراءة الأخبار حول هذا الموضوع على موقع 1C "مصمم الاستعلام المُدار ونموذج الكائن لمخطط الطلب".
لتحليل طلب معين ، أوصي

دعنا نحاول معرفة ما هو الطلب. في أي شكل يتم تقديمه في 1C وعلى خادم أمن المعلومات.

بشكل مبسط ، يمكن تمييز مستويات العمل التالية مع الاستعلام:
1. الاستعلام بلغة نظم إدارة قواعد البيانات.في هذا المستوى ، يكون الاستعلام عبارة عن سلسلة نصية في بناء جملة DBMS معين.
على سبيل المثال "SELECT field1 from table1 WHERE table1.field2> 100".
2. محرك DBMS معين.إنها أداة تعمل كحلقة وصل بين البرنامج والخادم. يتلقى طلبًا من البرنامج ويمرره إلى نظام إدارة قواعد البيانات.
في هذا المستوى ، يعمل 1C مع مصادر البيانات الخارجية.
3. واجهة برمجية عالمية.هذا مكون عالمي يسمح للبرنامج بالوصول إلى البيانات في أنظمة أمن المعلومات المختلفة. يمكن أن يطلق عليه أيضًا مدير السائق. يتم توصيل برامج تشغيل DBMS المحددة المستخدمة على الكمبيوتر به في شكل DSN. اعتمادًا على النظام المستخدم ، قد يكون هناك مكون ODBC أو OLE DB أو JDBC أو ADO.NET أو أي معيار آخر. اذا حكمنا من خلال http://its.1c.ru/db/metod8dev#content:2926:1 1C تستخدم حاليا OLE DB. منصة 7.7 تستخدم ODBC.
4. كائن على خادم 1C.في هذا المستوى ، يعمل خادم التطبيق مع الطلب.
بقدر ما أفهم ، يصف النظام الأساسي في لغة C كائن استعلام يتم من أجله تحديد طرق إنشاء نص SQL. تعمل كائنات النظام الأساسي (مصمم الاستعلام ، المنشئ ، إلخ) مع كائن الطلب هذا.
5. طلب ​​بلغة 1C.في هذا المستوى ، يكون الاستعلام نصًا مكتوبًا بلغة SQL زائفة من النموذج "SELECT Dataset.ReferenceName.FieldName FROM Dataset.ReferenceName"

بقدر ما أفهم ، مع إدخال كائن مخطط الطلب ، لم يتم اختراع أي شيء جديد في النظام الأساسي.
في السابق ، كان بإمكاننا العمل فقط مع التمثيل النصي للاستعلام (المستوى 5). هذه هي الطريقة الأبسط والأكثر قابلية للفهم ، على الرغم من أنها ليست مريحة دائمًا.
الآن تم منحنا حق الوصول إلى الكائن (المستوى 4) ، والذي عملت به آليات النظام الأساسي فقط في السابق.
إذا قمت بتحليل كائن "مخطط الاستعلام" ، فإن خصائصه تتقاطع بوضوح مع مصمم الاستعلام.
يمكن العثور على كل عنصر وخاصية بشكل مرئي في "مصمم الاستعلام".
كل نقرة في المنشئ يمكن أن تلتقط أمرًا مشابهًا.
على سبيل المثال:
علامة التبويب "دفعة الاستعلام" = QuerySchema.QueryBatch ؛
علامة التبويب "جداول وحقول" = SchemaQuery.PacketQuestions.AvailableTables؛
انقر فوق جدول "المراجع" - "التسمية" = SchemaRequest.PackageRequests.Operators.Sources.Add ("Reference.Nomenclature") ؛

وبالتالي ، يمكننا إنشاء أي استعلام تقريبًا برمجيًا يمكننا إنشاء مُنشئ.
بالطبع ، يعد الإنشاء البرنامجي أكثر صعوبة ويستغرق وقتًا طويلاً من مجرد العمل مع المصمم أو حتى كتابة نص الطلب يدويًا.
بالنسبة للاستعلامات الثابتة ، التي لا يتغير نصها ، فلا فائدة من استخدام المخطط.
يتطلب العمل البرنامجي فهمًا أعمق لكيفية التعامل مع الاستعلامات.
إنه ملائم إذا احتجنا إلى تغيير نص الاستعلام ديناميكيًا اعتمادًا على معلمات النظام واختيار المستخدم ونتيجة الاستعلام السابق.

لتعديل نص طلب موجود ، يجب تعيين هذا النص للنظام واستلامه مرة أخرى بعد التعديل. لهذا ، يتم استخدام رمز النموذج:

QuerySchema = New QuerySchema ؛ QuerySchema.SetQueryText (Query.Text) ، // فيما يلي أوامرنا الخاصة بتعديل الطلب Request.Text = SchemaRequest.GetRequestText () ؛

طلب نموذج كائنيتضمن الكائن الرئيسي "مخطط الاستعلام" وحوالي 50 عنصرًا ثانويًا ومجموعات وأنواع بيانات محددة.من الصعب التنقل عبر هذه المجموعة من الكائنات في البداية.

لفهم الهيكل العام لنظام الاستعلام ، افتح القسم المطلوب من المشروع المشترك وادفع جميع الاتصالات بين الكائنات إلى الراسمة.
اتضح مثل هذا الرسم البياني.
لا أستطيع أن أقول أنه واضح جدا ، لكنه يعكس الفكرة العامة. من الملائم النقب عند تحليل الطلب.
يشير العمود إلى:
أصفر - طلب كيانات مخطط ؛
الأحمر - مجموعات من الأشياء ؛
الأخضر - أنواع 1C القياسية (سلسلة ، رقم ، منطقية) ؛
الفيروز - أنواع بدائية خاصة بمخطط الطلب ؛

يعتبر نظام الاستعلام الأكثر ملاءمة لتعديل استعلام جاهز ؛ كما يسمح لك بإنشاء نص استعلام من البداية.

على سبيل المثال ، ضع في اعتبارك إنشاء حزمة طلب من البداية ، على غرار الطلب من

حدد المنتجات المسموح بها. المرجع: التسمية ، المشتريات ، الفترة AS الفترة ، فارغة (المشتريات. مبلغ الدوران ، 0) كمبلغ الشراء ، 0 كمبلغ المبيعات ، جدول ما بعد التحولات من الدليل ، التصنيف كما تركت المنتجات ونهاية المشتريات كيف الشراء عن طريق الشراء .Nomenclature = Products.Link WHERE ليس هناك منتجات. (& Beginning، & End، Month) مثل المبيعات حسب المبيعات. التسمية = المنتجات. المرجع حيث لا توجد المنتجات. هذا هو فهرس المجموعة حسب التسمية ، الفترة ؛ //////////////////////////////////////////////////// // ////////////////////////////// SELECT TableTurnovers.Nomenclature AS Nomenclature ، TableTurnovers.Period AS ، SUM (TableTurnovers.AmountPurchase) AS المبلغ ، الشراء ، SUM (TableTurnovers.SumSales) AS AmountSales from TableTurnovers as TableTo to turnover ORDER BY TableTurnovers.Nomenclature ، TableTurnovers.Period HAVING AMOUNT (TableTurnovers.Total.Purchase amount)) بشكل عام ، تسمية فقط HIERARCHY ؛ //////////////////////////////////////////////////// // ////////////////////////////// تدمير الجدول التحولات

دعنا نحلل دفعة الطلب.

الحزمة عبارة عن مجموعة من ثلاثة طلبات.
في الطلب الأول ، يتم اختيار البيانات من IB من قبل اثنين من المشغلين (استفسارات عن المشتريات والمبيعات) ، يستخدم كل منهما مصدرين (الكتاب المرجعي "Nomenclature" وسجل التراكم المقابل). يتم دمج البيانات من العبارتين ووضعها في جدول مؤقت على الخادم.
في الطلب الثاني ، نحصل على البيانات من جدول مؤقت ، ونجمعها ونحصل على النتيجة للمعالجة على خادم 1C.
يتم استخدام الاستعلام الثالث لتدمير الجدول المؤقت الذي شكله الاستعلام الأول.

لنبدأ في إنشاء مجموعة من الطلبات برمجيًا.

دعنا نستخدم شجرة الطلب لتطوير الكود. إنه مناسب له تحديد مسارات البيانات. يُنصح بالتحقق بشكل دوري من نص الطلب الناتج بعد تعديلات الكود.

أولاً ، لنقم بإنشاء كائن QuerySchema.

QuerySchema = New QuerySchema ؛

يحتوي مخطط الاستعلام الذي تم إنشاؤه بالفعل على حزمة واحدة وبيان اختيار واحد.
للراحة ، سنحفظها في متغيرات منفصلة.

SelectOfSIB = QuerySchema.QueryPackage ، SelectOperatorPurchase = RequestSelectionOfOperators ؛

مضيفا المصادرفي بيان الاختيار الأول.
لهذا نستخدم طريقة "Add ()" لجمع المصادر. في معلمات الطريقة ، حدد اسم الجدول المضاف والاسم المستعار الخاص به ، والذي سنشير إليه في المستقبل.
كجدول مضاف ، يمكنك استخدام إما اسم الجدول أو ارتباط إليه في مجموعة الجداول المتاحة.

SourceNomenclature = OperatorSelectionPurchase.Sources.Add ("Directory.Nomenclature" ، "المنتجات") ؛ PurchaseSource = PurchaseOperatorPurchaseSources.Add ("Accumulation Register.Purchases.Turnovers" ، "المشتريات") ؛

بشكل افتراضي ، يتم إضافة المصدر الثاني مع الاتصال الأيسر إلى الأول.

نحن بحاجة إلى اتصال عكسي. نقوم بتغيير نوع الاتصال.

PurchaseSource.Connection.ConnectionType = QuerySchemaConnectionType.RightOuter؛

معلمات الجدول:
لكل جدول مضاف كمصدر ، يمكننا تعيين معلمات إضافية.
يتم ملء مجموعة المعلمات تلقائيًا عند إضافة جدول ، اعتمادًا على نوع الجدول.
لا يمكنك إضافة معلمة إليه يدويًا ، يمكنك فقط تعيين قيمة المعلمة الموجودة.
جدول "Reference.Nomenclature" هو طاولة بسيطةكتاب مرجعي. ليس لديها معلمات.
الجدول "سجل التراكم. المشتريات. معدل الدوران" هو جدول دوران سجل التراكم.
وفقًا للمشروع المشترك ، فإنه يحتوي على 4 معلمات: بداية الفترة ، ونهاية الفترة ، والتكرار ، والشرط.
نحتاج إلى تعيين المعلمات الثلاثة الأولى:

PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("& Beginning")؛ PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("& End")؛ PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("الشهر") ؛

دعنا نشير إلى الأعمدة ،التي يجب تحديدها من الجداول المدرجة.
للقيام بذلك ، أضف الحقول إلى مجموعة الحقول المختارة لعامل التشغيل المحدد.

OperatorPurchasingSelectableFields.Add ("Products.Link") ؛ SelectOperatorPurchase.SelectableFields.Add ("Purchases.Period") ؛ ChoiceOperatorPurchase.SelectedFields.Add ("IS NULL (المشتريات.AmountTurnover ، 0)") ؛ ChoiceOperatorPurchase.SelectableFields.Add ("0") ؛

حدد على مستوى الطلب ككل الأسماء المستعارة للأعمدة القابلة للتحديد:
لاحظ أنه يتم تحديد أعمدة الجداول لكل استعلام فرعي للصلة ، ويتم تعيين أسماء الأعمدة ككل لمجموعة "الأعمدة" على مستوى استعلام الحزمة.

RequestSelectionFromVT.Columns.Alias ​​= "التسمية" ؛ RequestSelectionOfVT.Columns.Alias ​​= "فترة" ؛ RequestSelectionOfVT.Columns.Alias ​​= "مبلغ الشراء" ؛ RequestSelectionFromVT.Columns.Alias ​​= "مبلغ المبيعات" ؛

أضف شرطًا لاختيار البيانات

SelectOperatorSales.Selection.Add ("ليس السلع. ThisGroup") ؛

نضيف كل شيء بنفس الطريقة للجزء الثاني من الطلب.

تعيين العمود:
نختار 4 حقول في كل مشغل اختيار (عنصر من كتاب مرجع "التسمية" والتاريخ وحقلان رقميان).
عند الجمع بين أعمدة من عاملين لتحديد عمود من الدليل والتاريخ ، سيتطابق النظام مع نفسه.
هناك نوعان من الأعمدة العددية. قد يقوم المخطط نفسه بتعيينها بشكل غير صحيح إلى أعمدة الاستعلام الأول.
نشير إلى أي عمود من جدول النتائج يتطابق مع التعبير.

SelectOfSelectResult.Columns.Fields.Set (1 ، PurchaseExpression) ؛ SelectOfSelectQuery.Columns.Fields.Set (1 ، SaleExpression) ؛

نكرر كل شيء بنفس الطريقة لطلب الحزمة الثاني.

من بين الاختلافات ، فإنه يستخدم تحديدًا بناءً على القيم الإجمالية لنوع "HAVING".
يتم إضافة هذا الشرط بشكل مشابه للتحديد المعتاد للسجلات التفصيلية.
سيحدد المخطط نفسه في أي قسم من الشروط لوضع شروطنا ، اعتمادًا على استخدام وظائف التجميع.

OperatorSelect.Select.Add ("SUM (TableTurnovers.SummaPurchase)> 0") ؛

الخطوة الأخيرة هي إضافة استعلام لتدمير جدول البيانات

هدم QueryBT = QuerySchema.RequestScheme.Add (النوع ("QuerySchemaDescriptionDestroy Query")) ؛ طلب الهدمWT.TableName = "جدول التقلبات" ؛

نقوم أيضًا بتعيين خصائص استعلام إضافية:

QuerySelectionIsIB.TableForRooms = "جدول التحولات" ؛ SelectOfSIB.SelectAllowed = صحيح ؛

الاخير النسخة الكاملةتشكيل طلب:

// إنشاء مخطط استعلام QuerySchema = New QuerySchema؛ SelectOfSIB = QuerySchema.QueryPackage ، // تعيين خصائص الاستعلام QuerySelectionIsIB.TableForRooms = "Turnovers Table" ؛ SelectOfSIB.SelectAllowed = صحيح ؛ // أضف عوامل تشغيل لتحديد الطلب الأول للحزمة ChoiceOperatorPurchase = QueryOfSIB.Operators ؛ SourceNomenclature = OperatorSelectionPurchase.Sources.Add ("Directory.Nomenclature" ، "المنتجات") ؛ // أضف طلبًا للاختيار من سجل الشراء PurchaseSourcePurchaseSourceSources.Add ("Accumulation Register.Purchases.Turnovers"، "Purchases") ؛ PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("& Beginning")؛ PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("& End")؛ PurchaseSource.Parameters.Expression = New QuerySchemaExpression ("الشهر") ؛ // تغيير نوع الاتصالPurchaseSource.Connection.ConnectionType = RequestSchemaConnectionType.RightExternal ؛ // حدد الحقول القابلة للتحديد ChoiceOperatorPurchase.SelectableFields.Add ("Products.Link") ؛ SelectOperatorPurchase.SelectableFields.Add ("Purchases.Period") ؛ ChoiceOperatorPurchase.SelectedFields.Add ("IS NULL (المشتريات.AmountTurnover ، 0)") ؛ ChoiceOperatorPurchase.SelectableFields.Add ("0") ؛ // حدد الأسماء المستعارة للحقول المحددة QuerySelectOF.Columns.Alias ​​= "Nomenclature" ؛ RequestSelectionIsIB.Columns.Alias ​​= "فترة" ؛ RequestSelectionOf.Columns.Alias ​​= "مبلغ الشراء" ؛ RequestSelectionOf.Columns.Pseudonym = "مبلغ المبيعات" ؛ // إضافة SelectionOperatorPurchase.Selection.Add ("NOT Products. ThisGroup") ؛ /////////////////////// // حدد بيانات المبيعات SalesChoiceOperator = RequestSelectionOfSales.Operators.Add () ؛ SourceNomenclature = SelectOperatorSales.Sources.Add ("Directory.Nomenclature"، "المنتجات")؛ SelectOperatorSales.SelectableFields.Add ("Products.Link") ؛ // أضف مصدر RN وقم بتعيين المعلمات SalesSource = SelectOperatorSales.Sources.Add ("Accumulation Register.Sales.Turnover"، "Sales") ؛ SourceSales.Source.Parameters.Expression = New QuerySchemaExpression ("& Beginning")؛ SourceSales.Source.Parameters.Expression = NewQuerySchemaExpression ("& End")؛ SourceSales.Source.Parameters.Expression = New QuerySchemaExpression ("الشهر") ؛ Sales.Source.Connection.ConnectionType = QuerySchemaConnectionType.RightExternal ؛ // حدد الحقول المراد تحديدها وقم بتعيين المراسلات للحقول الرقمية على حقول الاستعلام الأول SelectableFields.Add ("Sales.Period") ، PurchaseExpression = ChoiceOperatorSales.FieldsChooseable.Add ("0") ؛ SalesExpression = SelectOperatorSales.ChooseableFields.Add ("IS NULL (Sales.SumTurnover، 0)")؛ SelectOfSelectResult.Columns.Fields.Set (1 ، PurchaseExpression) ؛ SelectOfSelectQuery.Columns.Fields.Set (1 ، SaleExpression) ؛ // إضافة SelectionOperatorSales.Selection.Add ("NOT Products. ThisGroup") ؛ // فهرسة بيانات ISIB.Index.AddChoiceResult.Index.Add (ISIB.ColumnSelectionQuery.Columns) ؛ RequestSelectionFromIB.Index.Add (RequestSelectingFromIB.Columns) ؛ // تعيين معلمات اختيار البيانات SelectOperatorSales.SelectDifferent = True ؛ تم استلام SalesOperatorSales.NumberRecords = 100 ؛ //////////////// // حزمة الطلب الثانية ChoiceResultResVT = QuerySchema.QueryPackage.Add () ؛ SelectOperator = SelectOperatorOpenOperators ؛ // قم بتعيين الجدول المؤقت الذي تم تشكيله في الاستعلام السابق كمصدر المصدر = OperatorSelect.Sources.Add ("Turnovers Table"، "Turnovers Table")؛ OperatorSelect.SelectableFields.Add ("Turnovers Table.Nomenclature") ؛ OperatorSelect.SelectableFields.Add ("TableTurnovers.Period") ؛ OperatorSelect.SelectableFields.Add ("SUM (TableTurnovers.Purchase amount)") ؛ OperatorSelect.SelectableFields.Add ("SUM (TableTurnovers.SalesSum)") ؛ // شرط التحديد OperatorSelect.Select.Add ("SUM (TableTurnover.SumPurchase)> 0") ؛ // تعيين الأسماء المستعارة للعمود SelectSelectQuest.Columns.Alias ​​= "Nomenclature" ؛ RequestSelectionOfVT.Columns.Alias ​​= "فترة" ؛ RequestSelectionOfVT.Columns.Alias ​​= "مبلغ الشراء" ؛ RequestSelectionFromVT.Columns.Alias ​​= "مبلغ المبيعات" ؛ // ترتيب فرز البيانات RequestSelectionFromOrder.Add (RequestSelectionFromOrder.Columns) ؛ // إجماليات الاستعلام SubtotalNomenclature = QuerySelectionOfVT.CheckpointsTotals.Add (QueryChoiceOfColumn.Columns) ؛ SubtotalNomenclature.CheckpointType = CheckpointTypeQuerySchema.HierarchyOnly ؛ ChoiceResultResult.GeneralTotals = صحيح ، RequestSelectingFromExt.Expressions.Add (RequestSelectingFromE.Columns) ؛ RequestSelectingFromExt.Expressions.Add (RequestSelectingFromE.Columns) ؛ //////////////// // آخر طلب دفعة هو حذف الجدول المؤقت DestroyQueryBT = QuerySchema.QuerySchema.Add (اكتب ("QuerySchemaDestroyTableDeleteQuery")) ؛ طلب الهدمWT.TableName = "جدول التقلبات" ؛

بعد تنفيذ هذه المجموعة من الأوامر ، نتلقى نفس الطلب الذي تلقاه المنشئ سابقًا.

من الواضح أن إنشاء البرامج أكثر تعقيدًا من إنشاء النصوص.
السؤال الذي يطرح نفسه ، ما هو الهدف من العبث بإنشاء البرامج بدلاً من التصميم الملائم.
إذا لم يتغير هذا الطلب بعد الآن ، فلا فائدة من ذلك.

تظهر المكافآت فقط إذا احتجنا إلى تعديل هذا الطلب بشكل أكبر ، اعتمادًا على الإعدادات.
ضع في اعتبارك بعض الأمثلة على تعديل حزمة الطلبات الثلاثة:

مثال 1.

لنفترض أن لدينا المتغيرين "المؤسسة" و "المستودع". وإذا تم ملؤها ، نحتاج إلى إضافة شروط لهذه المتغيرات لاختيار البيانات.
عند العمل مع النص ، سيتعين علينا التعمق في نص الطلب وكتابة شروط معقدة مثل "إذا كان المتجر ممتلئًا ، فقم بإضافة شرط". علاوة على ذلك ، لاقتحام عدة أماكن والجمع بين الخيارات ، يتم ملء كل من المستودع والمنظمة ، ويتم ملء المستودع فقط ، ويتم ملء المؤسسة فقط ، ولا يتم ملء أي شيء.
بعد هذا التعديل ، سيكون من المستحيل فتح الطلب بواسطة المُنشئ ، كما أن تعديله الإضافي صعب للغاية.

عند العمل مع البيانات برمجيًا ، نضيف فقط الأوامر:

إذا كانت ValueFilled (مؤسسة) ، فحددOperatorPurchase.Select.Add ("Purchases.Organization = & Organization") ؛ ChoiceOperatorSales.Select.Add ("Sales.Organization = & Organization") ؛ إنهاء إذا؛ If ValueFilled (Warehouse) ثم حددOperatorPurchase.Pickup.Add ("Purchases.Warehouse = & Warehouse") ؛ SelectOperatorSales.Select.Add ("Sales.Warehouse = & Warehouse") ؛ إنهاء إذا؛

مثال 2.

نحن بحاجة إلى اختيار البضائع التي يكون آخر سعر لها أعلى من 1000 روبل.
أولئك. من الضروري
1. أضف إلى نص الاستعلام تحديدًا إلى الجدول المؤقت من سجل أسعار العنصر ، والتي تكون أسعارها أعلى من 1000 روبل.
2. أضف ، عند اختيار البيانات ، شروطًا لهذا الجدول المؤقت في كل من استعلام تحديد البيانات (الشراء والبيع).
كيف تدخل في طلب نصي لتنفيذ هذه الإجراءات ، يمكنك أن تتخيل نفسك.
برمجيًا ، نضيف فقط سطورًا من التعليمات البرمجية:

// إضافة جدول مؤقت QueryFromPriceRegister = QuerySchema.QueryPackage.Add () ؛ // إعداد جدول مؤقت QueryFromPriceRegist.TableForPlace = "VT_PricesNomenclature" ؛ OperatorSelect = QueryFromPrices.Operators ؛ المصدر = OperatorSelect.Sources.Add ("InformationRegister.NomenclaturePrices.Last Slice"، "NomenclaturePricesLast Slice")؛ عامل التشغيل Select.SelectableFields.Add ("PriceNomenclatureSliceLast.Nomenclature")؛ عامل التشغيل Select.Select.Add ("PriceNomenclatureSliceLast.Price> & Price")؛ // قم بتغيير اللوحة الجديدة قبل أن يطلب تحديد البيانات QuerySchema.PackageRequests.Move (QueryScheme.PackageRequests.Index (QueryFromPriceRegist) ، 0) ؛ // أضف شروطًا إلى الاستعلامات الأصلية ChoiceOperatorPurchase.Option.Add ("المشتريات. SelectOperatorSales.Obtain.Add ("Sales.Nomenclature IN (SELECT VT_Nomenclature prices.Nomenclature fromOM VT_Nomenclature prices AS VT_Nomenclature prices)") ؛

IMHO ، حتى بالنسبة لهذه الأمثلة برنامج العملمع استعلام أكثر ملاءمة من العمل المباشر مع النص.
في الوقت نفسه ، سنأخذ في الاعتبار أن خيارات التعديل هذه لا تزال بسيطة للغاية.
مع تعقيد خيارات التعديل ، زيادة عدد الطلبات في الحزمة ، واختيار التعديلات المختلفة حسب الشروط (على سبيل المثال ، إضافة شروط إما وفقًا لسجل الأسعار ، أو وفقًا لأنواع التسمية ، أو وفقًا لخطط الإنتاج) ، يبدو عمل البرنامج أكثر ملاءمة مقارنة بالعمل مع سلسلة نصية.

يمكنك التدرب على الاستعلامات باستخدام المعالجة ، فهي ملائمة لتطوير أوامر لتعديل استعلام موجود. يحتوي أيضًا على عدة أمثلة لتعديل كود الطلب ورسم بياني لمخطط نوع الطلب.

ض كل ما سبق هو مجرد فهمي الشخصي للموضوع. ربما أكون مخطئا في مكان ما. التعليقات والتوضيحات مرحب بها.

تحديث:مثال صغير آخر على استخدام مخطط الطلب. تشكيل استعلام يبحث عن قيم مكررة لبيانات محددة مسبقًا. بدون الوصول إلى البيانات الوصفية ، يقوم بإنشاء استعلام عام واحد لجميع الكتب المرجعية ، ومخططات الحسابات ، و PVC ، و PVR ككل من حيث التكوين. تستخدم في المعالجة

RequestSchema = طلب جديد ؛ CollectionOperators = QuerySchema.QueryPackage.Operators ؛ من أجل eachTableGroupFrom QuerySchema.QueryPackage.AvailableTables Loop IfTableGroup.View = "المراجع" OR TableGroup.View = "Account Plans" OR TableGroup.View = "ViewTypesCalculations" OR "ViewTables" Loop لكل TableField From Table.Fields Loop IfTableField. PredefinedDataName "ثم NewOperator = CollectionOperators.Add () ؛ NewSource = NewOperator.Sources.Add (جدول، "DirectoryName") ، NewOperator.SelectedFields.Add ("" "+ Table.Name +" "" ")؛ NewOperator.SelectableFields.Add ("QUANTITY (DIFFERENT DirectoryName.PredefinedDataName)")؛ NewOperator.Grouping.Add ("DirectoryName.NamePredefinedData") ؛ NewOperator.Selection.Add ("DirectoryName.Predefined") ؛ NewOperator.Option.Add ("QUANTITY (DIFFERENT DirectoryName.Link)> 1")؛ تقدم؛ إنهاء إذا؛ نهاية الدورة نهاية الدورة إنهاء إذا؛ نهاية الدورة

كيف تصوغ بشكل صحيح طلب كوكبة العميل؟ كثيرا ما يسأل العملاء عن هذا. حتى أن بعضهم يطلب مشورة مسبقة: "ساعدني في معرفة ذلك وصياغة طلب ، أنا في حيرة من أمري."

دعونا نفهم ذلك.

تاريخياً ، كانت هناك عدة طرق لاستعلام الكوكبة الصحيح. هذا يرجع إلى كيفية تطور الأبراج كطريقة ، إلى جانب مجالات أخرى من العلاج النفسي وتقاليد الممارسة الروحية. عندما دخلت الأبراج حيز التنفيذ (في أواخر السبعينيات - أوائل الثمانينيات من القرن الماضي) ، كانت طرق ما يسمى. "العلاج الموجه للحل على المدى القصير". على عكس عمل العلاج النفسي طويل الأمد (بما في ذلك التحليل النفسي) ، بدأ المعالجون في تطوير طرق لتقديم مساعدة سريعة وملموسة للعميل. تتطلب هذه المساعدة طلبًا واضحًا. يجب أن تكون معايير تحقيق هذا الطلب مفهومة بوضوح من قبل كل من العميل والمعالج. "أريد أن أحصل على راتب أكبر ، لكن إذا ذهبت إلى المدير لأطلب زيادة في الراتب ، أشعر بالبرد والعرق وتتراجع ساقاي."... المهمة: اذهب إلى رئيسك للترقية ، واسأله واحصل على ما تريد. سنعمل على هذه المهمة ، على سبيل المثال ، 10 جلسات. في النهاية ، سيُسأل العميل عن مدى الثقة التي يشعر بها (على الأقل). علاج ناجح: تم تلقي الترويج.

نظرًا لأن الأبراج هي بالتأكيد عمل قصير المدى ، فقد بدأوا في إحالتها "عن طريق القياس" إلى مجموعة طرق العلاج قصيرة المدى وتطبيق نفس متطلبات الطلب والفعالية التي تم تبنيها في هذه الأساليب. تم تسهيل ذلك أيضًا من خلال الاهتمام بأبراج المتخصصين المشهورين في العلاج قصير الأمد (ماتياس فارجا فون كيبيد وإنزي سبارير). وأعتقد أنه كان مدعومًا ضمنيًا بحماس هيلينجر وميله للحديث عن الأبراج بعبارات مثل "تم العثور على حل". غالبًا ما تحدث في أعماله المبكرة عن "إزالة الأعراض" و "حل مشكلة إدمان الكحول" وما إلى ذلك.

لا يزال بإمكانك العثور على مجموعات النجوم "القديمة" التي تطلب من العميل تحديدًا معينًا الصياغة نتيجة مرغوبة. حتى أنني قابلت زملاء (على سبيل المثال ، Thomas Hafer) قاموا بتدوين طلب العميل على قطعة من الورق وفي نهاية فارق النقاط تحقق من تلبية هذا الطلب المحدد ، أي حالة الوكلاء تتوافق مع الحالة المرغوبة للعميل.

إلى جانب هذه الأسباب التاريخية ، لا توجد دائمًا رغبة واعية لدى العميل في صياغة شيء ملموس ، ببساطة لأنه سيكون هناك ترتيب واحد فقط الآن ، وهو مكلف ، وربما تم انتظاره لفترة طويلة و "تحتاج إلى استفد من فرصتك ".

ومع ذلك ، هناك طريقة أخرى معاكسة تقريبًا للاستعلام. وهو يتألف من حقيقة أن الطلب غير مطلوب إطلاقا... هناك أيضًا أسباب تاريخية لذلك ، مرتبطة بشكل أساسي بأسلوب عمل بيرت هيلينجر.

في الأبراج المبكرة ، كان Hellinger دائمًا ينشئ الأسرة الحالية و / أو الأبوية للعميل. سأل هيلينجر ما هي مشكلة العميل ، ولكن مهما أجاب ، كانت الكوكبة دائمًا تعمل مع أفراد الأسرة. يطرح سؤال عادل: لماذا نسأل؟ في وقت لاحق ، عندما صاغ Hellinger أن العمل يتماشى مع النظام ككل (وليس مع العميل على هذا النحو) ، بدأ الطلب يفقد معناه "لمعرفة ما يريده العميل" واكتسب معنى مختلفًا. الطلب مطلوب من أجل التعيين اتصل... يمكن لأولئك الذين هم على دراية بعمل Hellinger بالتأكيد أن يقدموا العديد من الأمثلة على كيفية رفض Hellinger إجراء ترتيب ، بالكاد يستمع إلى جملتين أو ثلاث من العميل. "أنت لا تحترمني ، لا يمكنني العمل معك."

غالبًا ما عملت Hellinger دون تبادل كلمة على الإطلاق فيما يتعلق بطلب العميل.

كيف يمكن للعميل العادي أن يفهم كل هذا التنوع؟ الشيء الرئيسي الذي أود أن أنقله إلى عملائي [] هو أن أي لبس (بالإضافة إلى أي توضيح) بخصوص الطلب أمر طبيعي تمامًا. تعبر عمليتك الداخلية عن نفسها بطريقة مألوفة وطبيعية بالنسبة لك. ومن ناحية الأسلوب لا توجد قيود على طرق التعبير عن الطلب. إذا كان بإمكانك الجلوس "فقط" بجوار الميسر وانفجرت في البكاء ، فهذا يكفي. إذا كنت تفكر في صياغة واضحة لمدة أسبوع وقدمتها إلي ، فهذا أمر طبيعي أيضًا. حتى لو كانت هناك خمس عشرة نقطة في هذه الصيغة وكل شيء مشوش. حتى لو انهارت هذه الصياغة تمامًا في اللحظة التي كنت فيها على الكرسي بجواري.

بعد Hellinger ، أعتقد أن الشيء الرئيسي للبدء هو الاحترام والاتصال بين العميل والكوكبة. الطريقة التي سيتم بها تحقيق ذلك ليست مهمة. من الناحية الفنية ، يمكنني العمل بصيغة واضحة وبدون طلب على الإطلاق. عادة في مجموعة طويلة الأمد لدي الكثير من الوظيفتين.

مثل كل كوكبة ، لدي تفضيلاتي الخاصة ، الحالات التي أشعر فيها براحة أكبر. عند العمل مع طلب ما ، أميل إلى استخدام الصيغ منخفضة الدقة التي يكون العميل جاهزًا لاستكشافها في الكوكبة وتغييرها ، إذا لزم الأمر ، في هذه العملية. على سبيل المثال ، بالنسبة لي الصياغة "أريد الزواج من رجل عادي"أصعب من العمل معها "أنا وحيد جدًا وأود أن أفهم كيف يمكنني أن أجد القدرة على الدخول في علاقة متناغمة ، أو ما الذي يمنع ذلك"... تضعني الصيغة الأولى ضمنيًا في دور "الشخص الذي سيحقق النتيجة" ، والثانية تحول العميل إلى المكان الذي يؤلم فيه ... وفي نفس الوقت ، أحترم حقيقة أن درجة الاتصال مع يمكن أن يكون الألم مرئيًا فقط من خلال عدم وجود النتيجة المرجوة ، ولا شيء آخر حتى الآن.

من خلال ملاحظتي وخبرتي ، فإن المجال يستجيب بشكل أفضل للطلبات التي تتناول استكشاف الألم وتحويله. أشعر أن هذه هي الحركة الأساسية الموجودة في هذا المجال - الاقتراب من حالة مؤلمة ومضغوطة ومرفوضة ، ولمسها ، وبالتالي جعلها مرئية ومقبولة وقابلة للتمرير. بالمعنى الأوسع للكلمة ، هذا هو تنفيذ النظام الأول (القانون الذي صاغه Hellinger) للأنظمة: لا أحد مستبعد. على نطاق أوسع ، لا شيء غير وارد. إذا تم استبعاد الألم ، فإنه يعمل. إذا تم تجاوز الألم ، فإنه يفقد تأثيره وقوته.

بناءً على هذا الفهم ، لا يهم على الإطلاق كيف وجدت أنا والعميل "مكان الألم". هل كانت صياغة وكانت واضحة. هل تغيرت هذه الصياغة خمس مرات لكل مجموعة أو بقيت ثابتة. أو جلسنا في صمت. أو كانت العميلة تبكي وكنت أجلس بجانبها. أنا أبحث دائمًا عن اتصال غير لفظي (بتعبير أدق ، إنه موجود دائمًا ، حتى لو لم نكن على علم بذلك) ، فأنا ألتقي بالعميل وأستطيع من خلال جسدي أن أشعر بما يحدث له. أحيانًا تكون هذه الحساسية واضحة جدًا ، وأحيانًا تفشل ، ولكنها موجودة على أي حال وتجلب درجة أو أخرى من الاتصال ، بالإضافة إلى أو بالإضافة إلى أي تركيبات. سيأتي الاتصال والوضوح الإضافي بعد ذلك من البدائل عندما نبدأ الكوكبة.

يمكنك مساعدة اتصال جيدالإجابة على سؤالي "حيث يؤلم"أو "ماالخطب"... يمكن أن تكون الإجابة: "هنا"(في القلب) أو "الأم"(العلاقة مع أمي مؤلمة) أو "الزوج لا يريد ولدا ولكني أريد"أو "موظف يجلس علي"أو أي صياغة أخرى واضحة أو غير واضحة. يرجى ملاحظة أنه حتى في حالة الغياب التام للصياغة اللفظية ، فأنت تعلم "لسبب ما" أن شيئًا ما خطأ ، وإلا لما حضرت إلى المجموعة. عادة ما يكون لهذه المعرفة مكانها في جسمك ، يمكنك فقط الإشارة إلى هذا المكان - وستكون "بيان استفسار" جيد جدًا وواضح جدًا!

وبالتالي ، بالنسبة لي ، فإن الإجابة على السؤال "ما هو استعلام كوكبة جيد" تبدو هكذا: يمكن أن تكون كذلك أي صياغة أو نقص في الصياغةإذا شعرنا ، نتيجة تفاعلنا مع العميل ، بالاتصال والثقة ببعضنا البعض من أجل البدء.

علينا حل العديد من المشاكل كل يوم. لحلها الناجح ، يلزم تقديم إجابات على الأسئلة: بدءًا من "ما هو الطقس اليوم" وانتهاءً بـ "سعر الزلوتي البولندي مقابل الروبل الروسي". يسمح لك الإنترنت ومحركات البحث بالعثور على إجابات لجميع الأسئلة تقريبًا ، ولكن بشرط واحد: يجب طرحها بشكل صحيح.

تعليمات

  • تم تصميم محركات البحث (Google و Yandex و Rambler و Mail و Yahoo وغيرها) لتزويد المستخدمين بالمعلومات الضرورية. يفعلون ذلك بناءً على استعلام البحث. يمكن أن تكون استعلامات البحث من ثلاثة أنواع:
  • معلوماتية. يبحث المستخدم عن معلومات دقيقة (بغض النظر عن الموقع الموجود عليه). على سبيل المثال: "نشيد روسيا".

    ملاحي. يبحث المستخدم عن عنوان الموقع حيث يمكن العثور على المعلومات ذات الأهمية. على سبيل المثال: "موقع جامعة لومونوسوف موسكو الحكومية".

    المعاملات. المستخدم جاهز للقيام بأي إجراء ويحتاج إلى معلومات عنه. على سبيل المثال: "تنسيق القرص". لذا ، فإن أول شيء يجب فعله عند تكوين استعلام بحث هو تحديد ما تبحث عنه بالضبط.

  • محرك البحث هو قاعدة بيانات ضخمة ، كل المعلومات التي "تتحلل" إلى رفوف - كلمات رئيسية. بعد أن تسأل استعلام بحث، هناك بحث عن الكلمات الرئيسية ويتم عرض نتيجة البحث. والخطأ الشائع للمستخدمين المبتدئين هو أنهم ينظرون إلى محرك البحث كمحاور يعرف كل شيء ، ويسألون استعلام بحث ، على سبيل المثال ، "هل يمكنك إخباري بكيفية إزالة وصمة عار من بلوزة العلامة التجارية الجديدة؟ الحرير ". بطبيعة الحال ، فإن الاستفادة من مثل هذا الطلب ستكون ضئيلة للغاية. وسيكون مثل هذا الطلب أكثر فاعلية: "بلوزة من الحرير الأبيض لإزالة البقعة". لذا ، فإن الشيء الثاني الذي يجب فعله هو تشكيل الطلب بشكل صحيح. يجب أن تكون بسيطة قدر الإمكان وتحتوي على كلمات رئيسية.
  • بعد أن يقوم الجهاز بمعالجة طلبك ، سيعيد نتائج البحث. عادة ، يتم العثور على جميع النتائج الأكثر صلة في أول صفحتين إلى ثلاث صفحات. يتبع ذلك نتائج البحث التي ترضي الاستعلام جزئيًا فقط. ومع ذلك ، هناك حالات عندما تكون هناك حاجة إلى معلومات نادرة جدًا - ثم يتعين عليك المرور عبر مجموعات متعددة من الكلمات الرئيسية في استعلام البحث وتصفية البيانات بعناية فائقة.
  • أيضًا ، في بعض الأحيان يتعين عليك البحث عن معلومات نادرة "موجودة" في الشائع الكلمات الدالة... على سبيل المثال ، إذا سألت طلب البحث "علامات ناشر الصور" ، إذن نظام البحثسوف تجد العديد من الصور الفوتوغرافية لكارل ماركس ، ناشر كارل ماركس ، ولكن من أجل العثور على صورة فوتوغرافية لـ A. سيتعين على ناشر الكتاب ماركس أن يعمل بجد ، لذا فإن ثالث شيء يجب القيام به من أجل نجاح البحث هو فرز المعلومات بشكل صحيح.

    الموضوع 2.3. برامج العروض التقديمية وأساسيات البرمجة المكتبية

    الموضوع 2.4. أنظمة إدارة قواعد البيانات والأنظمة الخبيرة

    2.4.11. قاعدة بيانات التدريب مع نموذج الزر الرئيسي "Training_students" - تنزيل


    نظم إدارة قواعد البيانات والأنظمة الخبيرة

    2.4 أنظمة إدارة قواعد البيانات والأنظمة الخبيرة

    2.4.4. إنشاء (تشكيل) الطلبات

    استفسارهي وسيلة لاختيار المعلومات اللازمة من قاعدة البيانات. السؤال الذي تم إنشاؤه فيما يتعلق بقاعدة البيانات هو الطلب. هناك نوعان من الاستعلامات المستخدمة: حسب النمط (QBE - الاستعلام حسب المثال) ولغة الاستعلام المهيكلة (SQL - لغة الاستعلام الهيكلية).

    QBE - طلب عينة- وسيلة لإيجاد المعلومات اللازمة في قاعدة البيانات. لا يتم تشكيلها بلغة خاصة ، ولكن عن طريق ملء نموذج طلب في نافذة Query Builder.

    SQL - الاستفساراتهي استعلامات تتكون (من قبل المبرمجين) من سلسلة من عبارات SQL. تحدد هذه التعليمات ما يجب فعله بمجموعة بيانات الإدخال لإنشاء مجموعة بيانات الإخراج. ينشئ Access جميع الاستعلامات على أساس استعلامات SQL. لعرضها ، تحتاج إلى تنفيذ الأمر View / SQL في نافذة تصميم الاستعلام النشط.

    هناك عدة أنواع من الاستعلامات: التحديد والتحديث والإضافة والحذف والاستعلام المتقاطع وإنشاء الجداول. الأكثر شيوعًا هو استعلام الجلب. تستخدم نماذج الاستعلامات للاختيار ضروري للمستخدمالمعلومات الواردة في الجداول. يتم إنشاؤها فقط للجداول ذات الصلة.

    2.4.4.1. قم بإنشاء استعلام تحديد باستخدام المعالج

    عند إنشاء استعلام ، تحتاج إلى تحديد:

    • الحقول في قاعدة البيانات ، والتي سيتم استخدامها للبحث عن المعلومات ؛
    • موضوع البحث في قاعدة البيانات ؛
    • قائمة الحقول نتيجة تنفيذ الاستعلام.

    في نافذة قاعدة البيانات ، حدد علامة التبويب "الاستعلامات" وانقر نقرًا مزدوجًا فوق رمز "إنشاء استعلام باستخدام المعالج" ، وستظهر نافذة "إنشاء استعلامات بسيطة".


    أرز. 1.

    في نافذة المعالج ، حدد الجدول المطلوب (جدول - مصدر) من خيار الجداول والاستعلامات وحدد حقول البيانات. إذا تم تشكيل الاستعلام على أساس عدة جداول ، فمن الضروري تكرار الخطوات لكل جدول - المصدر.

    بعد ذلك ، في نافذة المعالج ، حدد تقريرًا مفصلاً أو موجزًا ​​وانقر فوق الزر "التالي". بعد ذلك ، تحتاج إلى تحديد اسم الطلب وتحديد أحد الخيارات مزيد من العمل: افتح الاستعلام لعرض البيانات ، أو قم بتغيير تخطيط الاستعلام وانقر فوق "إنهاء". نتيجة لذلك ، سوف تحصل على استعلام جاهز.

    2.4.4.2. قم بإنشاء استعلام تحديد باستخدام المُنشئ

    باستخدام المُنشئ ، يمكنك إنشاء أنواع الاستعلامات التالية:

    1. بسيط.
    2. حسب الشرط.
    3. حدودي.
    4. أخير.
    5. مع الحقول المحسوبة.

    للاتصال بمصمم الاستعلام ، يجب أن تذهب إلى نافذة قاعدة البيانات. في نافذة قاعدة البيانات ، حدد علامة التبويب "استعلامات" وانقر نقرًا مزدوجًا فوق رمز "إنشاء استعلام" في وضع التصميم. تظهر نافذة "إضافة جدول" النشطة على خلفية نافذة "الاستعلام: تحديد الاستعلام" غير النشطة.

    في نافذة إضافة جدول ، حدد جدول مصدر أو عدة جداول من قائمة الجداول المعروضة ، على أساسها سيتم تحديد البيانات ، وانقر فوق الزر "إضافة". بعد ذلك ، أغلق نافذة إضافة جدول ، وستصبح نافذة "الاستعلام: الاستعلام عن التحديد" نشطة.

    تتكون نافذة المنشئ من جزأين - علوي وسفلي. يحتوي الجزء العلوي من النافذة على مخطط بيانات الاستعلام ، والذي يحتوي على قائمة بجداول المصدر ويعكس العلاقة بينها.

    في الجزء السفلي من النافذة يوجد الاستعلام بالمثال (QBE) ، حيث يؤدي كل سطر وظيفة معينة:

    1. حقل - يشير إلى أسماء الحقول التي يتضمنها الطلب.
    2. اسم الجدول - اسم الجدول الذي تم تحديد هذا الحقل منه.
    3. فرز - يشير إلى نوع الفرز.
    4. العرض على الشاشة - يضبط مربع الاختيار لعرض الحقل على الشاشة.
    5. شروط الاختيار - تم تعيين معايير البحث.
    6. أو - يتم تعيين معايير اختيار إضافية.



    أرز. 2.

    طلب عينة

    في نافذة "استعلام: استعلام عن التحديد" ، استخدم الأدوات لتكوين استعلام:

    1. حدد الجدول - المصدر الذي يتم من خلاله اختيار السجلات.
    2. نقل أسماء الحقول من المصدر إلى نموذج الاستعلام. على سبيل المثال ، من جدول مجموعات الطلاب ، اسحب حقل الاسم إلى الحقل الأول في نموذج الاستعلام ، ومن جدول الطلاب ، اسحب حقل اللقب إلى الحقل الثاني في نموذج الاستعلام ، ومن جدول التقديرات اسحب حقل التقدير إلى الحقل الثالث ومن جدول Disciplines ، اسحب حقل الاسم إلى الحقل الرابع من نموذج الاستعلام.
    3. حدد مبدأ الفرز. حرك مؤشر الماوس إلى سطر الفرز لأي حقل ، سيظهر زر لفتح قائمة أوضاع الفرز: تصاعدي وتنازلي. على سبيل المثال ، اضبط وضع الفرز في حقل الاسم الأخير - تصاعديًا.
    4. في إخراج السطر على الشاشة ، يتم تحديد مربع الاختيار لعرض المعلومات الموجودة في الحقل تلقائيًا.
    5. في سطر "شروط" التحديد والخط "أو" من الضروري إدخال شروط بحث محدود - معايير البحث. على سبيل المثال ، في حقل الدرجة ، أدخل - "ex / A" ، أي اعرض جميع أسماء الطلاب الحاصلين على درجات سابقة / أ.
    6. بعد الانتهاء من تشكيل الطلب ، أغلق نافذة طلب الاختيار. يفتح مربع الحوار حفظ - الإجابة بنعم (أدخل اسم الاستعلام الذي تم إنشاؤه ، على سبيل المثال ، نموذج استعلام في طريقة العرض "تصميم") وانقر فوق "موافق" والعودة إلى نافذة قاعدة البيانات.



    أرز. 3.

    لفتح استعلام من نافذة قاعدة البيانات ، حدد اسم الاستعلام وانقر فوق الزر "فتح" ، وستظهر على الشاشة نافذة استعلام بالاسم المطلوب.



    أرز. 4.

    لإجراء تغييرات على الاستعلام ، يجب عليك تحديده بنقرة واحدة بالماوس في نافذة قاعدة البيانات ، والنقر فوق الزر المُنشئ ، وإجراء التغييرات. احفظ الطلب ، كرر تنفيذه.

    استعلامات حدودي

    الاستعلامات التي هي متغيرات من الاستعلام الأساسي وتختلف قليلاً عن بعضها البعض تسمى حدودي. يحدد استعلام حدودي معيارًا يمكن تغييره بناءً على طلب المستخدم.

    تسلسل إنشاء استعلام حدودي:

    1. قم بإنشاء استعلام في وضع التصميم ، أو افتح استعلامًا موجودًا في وضع التصميم ، مثل "نموذج استعلام في وضع التصميم".
    2. في نموذج الاستعلام ، في سطر المعايير ، أدخل شرط عامل التصفية في شكل دعوة إلى أقواس مربعة، على سبيل المثال [أدخل اسمك الأخير].
    3. أغلق نافذة طلب التحديد ، أجب عن السؤال حول حفظ التغيير - نعم. ارجع إلى نافذة قاعدة البيانات ، حيث سيتم تمييز الاستعلام الذي تم إنشاؤه.
    4. قم بتشغيل الاستعلام بالنقر فوق الزر: فتح. في مربع الحوار "أدخل قيمة المعلمة" الذي يظهر على الشاشة ، يجب عليك إدخال ، على سبيل المثال ، اسم عائلة الطالب الذي تريد الحصول على معلومات تقدمه ، انقر فوق الزر "موافق".

    الاستعلامات هي أحد أنواع المستندات المستخدمة في Access DBMS ، والتي تم تصميمها لمعالجة البيانات المخزنة في الجداول.

    يمكن إنشاء الاستعلامات في الوضع البناءوبمساعدة الحرفيين... يسمح لك المُنشئ بإنشاء أي نوع من الاستعلام بشكل مستقل ، ولكن يوصى بهذا الوضع للمستخدمين الذين لديهم بالفعل بعض الخبرة في إنشاء الاستعلامات.

    طلب معالجفي عدة خطوات يجمع المعلومات اللازمة لتشكيل طلب ، ثم يقوم تلقائيًا بتكوينه ، اعتمادًا على إجابات المستخدم على الأسئلة المطروحة.

    يمكنك استخدام المعالجات في Access لإنشاء أنواع الاستعلامات التالية:

    § طلب بسيط.

    § استعلام متقاطع.

    § إدخالات مكررة.

    § سجلات بدون مرؤوسين.

    لإنشاء أي منها ، حدد كائن الاستعلامات في نافذة قاعدة البيانات وانقر فوق الزر "إنشاء". سيتم فتح نافذة الطلب الجديدة ، والتي تظهر في الشكل. 1.

    الشكل 1 نافذة قاعدة بيانات الولاية ونافذة اختيار أنواع الطلبات

    استعلام بسيطيسمح لك بإنشاء ملفات السادة طلب الجلبالبيانات من حقول معينة من الجداول أو الاستعلامات ، فهي أكثر ملاءمة للمستخدمين المبتدئين. عند تحديده ، يبدأ المعالج ، في النافذة الأولى التي (الشكل 2) تحتاج إلى تحديد جدول في قائمة الجداول والاستعلامات ، على سبيل المثال ، طاقم المعلمين ، حدد من قائمة الحقول المتاحة تلك الحقول التي يجب أن تكون موجودة في الطلب وترجمتها بالضغط على [>]. وبالمثل ، يتم إضافة الحقول من جداول أخرى من نفس قاعدة البيانات إلى الاستعلام.

    ملحوظة.يمكن تقديم الطلب فقط عن طريق الجداول أو فقط من خلال استعلامات قاعدة البيانات. لا يُسمح بدمج الحقول من الجدول والاستعلام في استعلام.

    الشكل 2 تحديد الحقول للطلب.

    عبر الاستعلاميشبه الطاولة , حيث يتم عرض ما يصل إلى ثلاثة حقول (أعمدة) من الجدول الأصلي ، ويتم تحويل خلايا أحد الحقول المتبقية إلى أعمدة جديدة ، وعند تقاطعها يتم عرض إحدى القيم المحددة من قبل المستخدم - التباين ، والحد الأدنى ، والحد الأقصى ، متوسط ​​، انحراف ، رقم ، أول ، آخر ، إلخ. على سبيل المثال ، الاستعلام في الشكل. 4 هو استعلام تبادلي للجدول 1 في الشكل. 3 ، حيث أصبحت قيم المسافة أسماء الأعمدة:

    خيار إدخالات مكررةينشئ استعلامًا للبحث عن سجلات مكررة (صفوف) في جدول أو استعلام واحد ، للجدول في الشكل. 3 للحقول المحددة المسافة والأجرة ، يبدو (الشكل 5)

    يسمح لك MS Access بإنشاء مثل هذا الاستعلام لجدول أو استعلام واحد فقط (وليس لعدة جداول قاعدة بيانات) ، وفيه تحتاج إلى تحديد

    الشكل 3 الجدول 1 لإنشاء استعلام الإسناد الترافقي


    الشكل 4 جدول الاستعلام المتقاطع. 1

    فقط تلك الحقول التي يوجد فيها تطابق كامل متزامن للبيانات من السجلات (على سبيل المثال ، لا يمكن تضمين حقل النقل في هذا الطلب). بالإضافة إلى ذلك ، للتعرف ، يمكنك تمكين حقل غير مكرر (المدينة).

    السجلات بدون المرؤوسيناستعلام للبحث عن السجلات التي لا تتطابق مع أي سجل في جدول المقارنة. يستخدم هذا الاستعلام للعديد من قواعد البيانات الجدولية.

    الشكل 6 الجدول الرئيسي 1

    استعلام بدون مرؤوسين لمقارنة الجداول في الشكل. 3 والتين. 6 سيعرض خطًا غير متطابق (الشكل 7):

    هذه الاستعلامات هي الأساس لخلق المزيد استفسارات معقدةالتي يتم تطبيق وضع التصميم عليها.