• 0
omda_asem

[ تمت الإجابة ]انشاء الجداول والفهارس والعلاقات والتحكم بها بواسطة SQL او بواسطة الكود

سؤال

السلام عليكم

انا عندى جدول لية 3 primary keys مثلا Field1,Field2,Field3 كل اللى انا عاوزه انى اخلى Field1,Field2 بس هما اللى primary keys متهيألى السؤال كدة واضح

او على اضعف الايمان مخليش ولا primary key

وطبعا انا عايز اعمل دة بجملة sql :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

21 إجابة على هذا السؤال .

  • 0

أخي الغالي

افتح قاعدة بيانات جديدة

افتح استعلام جديد وضع هذه الجملة في محرر SQL

create table mohamed (item_code int not null PRIMARY KEY )

وهذه الجملة تعني انشاء جدول جديد اسمة mohamed وبداخلة حقل اسمة item_code ومن ضمن خصائصة ان هذا الحقل يحتوي علي مفتاح أساسي

واذا اردت انشاء جدول بدون هذا المفتاح فعليك بهذه الجمله

create table mohamed (item_code int not null  )

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك اخي محمد فؤاد على المشاركه

أخي الفاضل omda_asem

السلام عليكم ورحمة الله وبركاته

دعني اشرح لك وبقية الأخوة الكرام طريقة حذف الفهارس بالتفصيل وعليك الإنتباه والتطبيق بعد ذلك فعلى بركة الله نبدأ :

تعليمات هامه :

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

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

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

والآن هل انت جاهز للشرح ..... اذا على بركة الله نبدأ

1. بالتأكيد انه يوجد لديك جدول او عدة جداول بها فهرس او عدة فهارس موضوعه كـ PrimaryKey ركز على هذه الكلمه واحفظها مثل اسمك . حيث ان فائدة هذه الفهارس هي عدم تكرار البيانات وايضا للإسراع في عمليات البحث .

2. نرى الآن كيفية اعداد فهرس PrimaryKey او عدة فهارس في جدول مثلا اسمه tblEMP اختصارا لجدول الموظفين بهذه الطريقة .

post-15367-1195782478_thumb.gif

الآن دعنا نرى ماذا حدث لهذا الحقل بعد ان جعلناه فهرسا انظر الصوره التالية

post-15367-1195782498_thumb.gif

الآن نريد ان نحذف هذا الفهرس بواسطة جملة استعلام SQL وايضا بواسطة كود VBA

كما اخبرتك سابقا لا تستطيع حذف اي فهرس او فهارس والجدول مفتوح او هناك نموذج مفتوح مبني على احد الجداول لهذا نقوم بإغلاق النماذج والجداول ونبدأ في فتح الإستعلامات

1. نفتح الإستعلامات بدون اضافة اي جداول لها ثم من اشرطة قوائم الإستعلام نختار استعلام ثم خاص بـ SQL ثم تعريف بيانات .

post-15367-1195782529_thumb.gif

الآن سوف يفتح لنا محرر جملة الإستعلام الذي سوف نكتب فيه جملة الإستعلام المطلوبه لحذف الفهرس من الحقل ID من الجدول tblEMP

post-15367-1195782552_thumb.gif

DROP INDEX PrimaryKey ON tblEmp

وسوف يصبح شكل الإستعلام مختلف عنا قليلا بهذا الشكل ونقوم بحفظه بإسم مثلا DropRrimaryKey

post-15367-1195782583_thumb.gif

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

نذهب الآن الى الجدول ونعرضه في وضع التصميم وسنلاحظ ان الفهرس الموضوع على الحقل ID قد تم حذفه .

post-15367-1195782605_thumb.gif

الآن دعنا نقوم بعمل عدة فهارس ولتكن ثلاثة فهارس دفعة واحده في الجدول

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

post-15367-1195782627_thumb.gif

post-15367-1195782648_thumb.gif

نقوم الآن بالحفظ واغلاق الجدول المفهرس بثلاثة فهارس

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

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

Private Sub CmdDropPrimaryKey_Click()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index

Set db = CurrentDb
Set tdf = db.TableDefs("tblEmp")
tdf.Indexes.Delete "PrimaryKey"

End Sub

post-15367-1195782820_thumb.gif

شايف البساطة والسهاله والمرونه بالكود كلها خطوه وحده بدلا من عذاب الإستعلامات

طيب خلينا نشرح الكود على السريع :

1. تم التصريح عن متغير لقاعدة البيانات

2. تم التصريح عن متغير للجدول

3. تم التصريح عن الحقل

4. تم التصريح عن الفهرس

تم اسناد متغير قاعدة البيانات لقاعدة البيانات الحالية

تم تعريف الجدول المطلوب وهو tblEmp

تم حذف الفهرس

وهذا البرنامج به الجدول والإستعلام والنموذج ( يمكن الإطلاع عليها )

za_Drop__PrimaryKey.rar

بقيت لدينا نقطه هامه وهي كيفية إظهار نافذة العلاقات و حذف العلاقات بالكود لهذا اترككم مع هذا المثال البسيط

post-15367-1195782903_thumb.gif

zaDeleteAllRelationships.rar

اتمنى من الله العلي القدير ان يكون هذا الشرح السهل الممتنع قد تم فهمه واستيعابه والى دروس قادمه إن شاء الله

وبالتوفيق لكم جميعا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك وجزاك الله خير يااخت زهره

ونعفع الله بعلمك

الله يعطيك الصحة والعافيه على هالشرح الرائع والمفيد

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بجد ربنا يكرمك

انت متعرفيش ريحتينى اد ايه و بالمناسبة انا بشتغل ب vb6 as a front end لذلك سوف يكون استخامى لجملة ال sql عبارة عن سطر واحد :

conn.exexcute "Drop index .........."

بس بجد شكرا على الاجابة اللى فعلا هى السهل الممتنع

ويارب الاقى اجابة زيها فى قسم ال sql server لان نفس المشكلة هتواجهنى معاه ولا اعتقد ان هذه الجملة تتماشى معه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

لحذف الفهارس في MS SQL Server نكتبها بهذ الطريقة

DROP INDEX table_name.index_name

لحذف الفهارس في قواعد البيانات IBM DB2 and Oracle نكتبها بهذه الطريقة

DROP INDEX index_name

لحذف الفهارس في MySQL نكتبها بهذه الطريقه

ALTER TABLE table_name DROP INDEX index_name

لجميع قواعد البيانات

لحذف جدول نكتبها بهذه الطريقة

DROP TABLE table_name

لحذف قاعدة بيانات نكتبها بهذه الطريقة

DROP DATABASE database_name

لإنشاء قاعدة بيانات نكتبها بهذه الطريقة

CREATE DATABASE database_name

لإنشاء جدول في قاعدة البيانات نكتبه بهذه الطريقة

CREATE TABLE table_name
(column_name1 data_type,
column_name2 data_type,
.......
)

مثال

انشاء جدول اسمه Company وبه حقل C_ID مفهرس و يحتوي على البيانات التالية مع تحديد احجام الحقول :

الرقم C_ID

الاسم C_NAME

التيلفون C_PHONE

التاريخ C_DATE

ملاحظات NOTES

نكتبه بهذه الطريقة

CREATE TABLE Company 
([C_ID] integer,
[C_NAME] text (30),
[C_DATE] date,
[C_PHONE] text (20),
[NOTES] memo,
CONSTRAINT [Index1] PRIMARY KEY ([C_ID]));

إنشاء فهرس فريد بدون تكرار UNIQUE على حقل معين نكتبه بهذه الطريقة

CREATE UNIQUE INDEX index_name ON table_name (column_name)

انشاء فهرس INDEX مع السماح بالتكرار على حقل معين نكتبه بهذه الطريقه

CREATE INDEX index_name ON table_name (column_name)

مثال

انشاء فهرس على حقل C_NAME في الجدول Company نكتبه بهذه الطريقة

CREATE INDEX CompanyIndex ON Company (C_NAME)

إنشاء فهرس على حقل معين مع امكانية الفرز التنازلي Descending Order نكتبه بهذه الطريقة

CREATE INDEX CompanyIndex ON Company (C_NAME DESC)

لإنشاء فهارس على اكثر من حقل مثلا الحقل C_ID و الحقل C_NAME في الجدول Company نكتبه بهذه الطريقة

CREATE INDEX CompanyIndex ON Company (C_ID, C_NAME)

إستخدام عبارة ALTER TABLE لإنشاء حقول اضافة او حذف حقول من الجدول وتكون صيغتها بهذه الطريقة

ALTER TABLE table_name 
ADD column_name datatype

ALTER TABLE table_name 
DROP COLUMN column_name

ملاحظة : بعض قواعد البيانات لا تسمح بحذف الحقول بهذه الطريقة

مثال

لإضافة حقل المدينه City بحجم 30 حرف الى الجدول Company نكتبه بهذه الطريقة

ALTER TABLE Person ADD City varchar(30)

ولحذف الحقل المدينة City من الجدول Company نكتبه بهذه الطريقة

ALTER TABLE Company DROP COLUMN City

وبهذا نكون قد اتينا على معظم ما نحتاجه لقاعدة البيانات من خلال جمل وعبارات SQL وإلى دروس قادمه مفيده ( وأي استفسار او سؤال يخطر على بالك لا تتردد اخي الكريم )

نتمنى لكم التوفيق جميعا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بعد ان تطرقنا لشرح مبسط في الدروس السابقه وعرفنا كيف ننشيء الجداول والفهارس وكيف نستطيع ان نحذف الجدول والفهارس فيتبارد الى اذهاننا هذا السؤال

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

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

انشاء جدول الأصناف

CREATE TABLE [Categories] (
[CategoryID] AUTOINCREMENT,
[CategoryName] TEXT(15) NOT NULL,
[Description] MEMO ,
[Picture] IMAGE,
CONSTRAINT [CategoryName] UNIQUE ([CategoryName]),
CONSTRAINT [PrimaryKey] PRIMARY KEY ([CategoryID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Categories ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbEmployees نقوم الآن بإستعراض الجدول حتى نتأكد من الفهرس والحقول ثم نقوم بإغلاقه .

انشاء جدول الزبائن

CREATE TABLE [Customers] (
[CustomerID] TEXT(5) ,
[CompanyName] TEXT(40) NOT NULL,
[ContactName] TEXT(30) ,
[ContactTitle] TEXT(30) ,
[Address] TEXT(60) ,
[City] TEXT(15) ,
[Region] TEXT(15) ,
[PostalCode] TEXT(10) ,
[Country] TEXT(15) ,
[Phone] TEXT(24) ,
[Fax] TEXT(24) ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([CustomerID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Customers ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbCustomers .

إنشاء جدول الموظفين

CREATE TABLE [Employees] (
[EmployeeID] AUTOINCREMENT,
[LastName] TEXT(20) NOT NULL,
[FirstName] TEXT(10) NOT NULL,
[Title] TEXT(30) ,
[TitleOfCourtesy] TEXT(25) ,
[BirthDate] DATETIME,
[HireDate] DATETIME,
[Address] TEXT(60) ,
[City] TEXT(15) ,
[Region] TEXT(15) ,
[PostalCode] TEXT(10) ,
[Country] TEXT(15) ,
[HomePhone] TEXT(24) ,
[Extension] TEXT(4) ,
[Photo] TEXT(255) ,
[Notes] MEMO ,
[ReportsTo] LONG,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([EmployeeID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Employees ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbEmployees .

انشاء جدول تفاصيل الطلبات

CREATE TABLE [OrderDetails] (
[OrderID] LONG,
[ProductID] LONG NOT NULL,
[UnitPrice] CURRENCY NOT NULL ,
[Quantity] SMALLINT NOT NULL ,
[Discount] SINGLE NOT NULL ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([OrderID], [ProductID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم OrderDetails ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbOrderDetails .

انشاء جدول الطلبات

CREATE TABLE [Orders] (
[OrderID] AUTOINCREMENT,
[CustomerID] TEXT(5) ,
[EmployeeID] LONG,
[OrderDate] DATETIME,
[RequiredDate] DATETIME,
[ShippedDate] DATETIME,
[ShipVia] LONG,
[Freight] CURRENCY DEFAULT 0,
[ShipName] TEXT(40) ,
[ShipAddress] TEXT(60) ,
[ShipCity] TEXT(15) ,
[ShipRegion] TEXT(15) ,
[ShipPostalCode] TEXT(10) ,
[ShipCountry] TEXT(15) ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([OrderID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Orders ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbOrders .

انشاء جدول المنتجات

CREATE TABLE [Products] (
[ProductID] AUTOINCREMENT,
[ProductName] TEXT(40) NOT NULL,
[SupplierID] LONG,
[CategoryID] LONG,
[QuantityPerUnit] TEXT(20) ,
[UnitPrice] CURRENCY ,
[UnitsInStock] SMALLINT ,
[UnitsOnOrder] SMALLINT ,
[ReorderLevel] SMALLINT ,
[Discontinued] BIT NOT NULL ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([ProductID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Products ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbProducts .

انشاء جدول الشحن

CREATE TABLE [Shippers] (
[ShipperID] AUTOINCREMENT,
[CompanyName] TEXT(40) NOT NULL,
[Phone] TEXT(24) ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([ShipperID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Shippers ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbShippers .

انشاء جدول الموردين

CREATE TABLE [Suppliers] (
[SupplierID] AUTOINCREMENT,
[CompanyName] TEXT(40) NOT NULL,
[ContactName] TEXT(30) ,
[ContactTitle] TEXT(30) ,
[Address] TEXT(60) ,
[City] TEXT(15) ,
[Region] TEXT(15) ,
[PostalCode] TEXT(10) ,
[Country] TEXT(15) ,
[Phone] TEXT(24) ,
[Fax] TEXT(24) ,
[HomePage] MEMO ,
CONSTRAINT [PrimaryKey] PRIMARY KEY ([SupplierID]));

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف ينشأ لدينا جدول بإسم Suppliers ثم نقوم بحفظ الإستعلام بإسم مثلا qryCrTbSuppliers .

الحمد الله انتهينا من انشاء الجداول جميعها ولو نلاحظ ان بعض الجداول قمنا بوضع لها فهرسين PrimaryKey مع الترقيم تلقائي وبعضها رقم فقط AUTOINCREMENT في نفس الجدول .

الآن جاء دور انشاء العلاقات بين الجدول وبنفس الطريقة السابقة نقوم بإستخدام عبارة ALTER TABLE مع عبارة ADD CONSTRAINT ثم نضع اسماء الجداول واسماء الحقول بهذه الطريقة :

انشاء علاقة واحد الى متعدد بين جدول الطلبات Orders وجدول الزبائن Customers حيث المفتاح الأساسي CustomerID موجود في جدول الزبائن والمفتاح الفرعي موجود في جدول الطلبات .

ALTER TABLE [Orders] ADD CONSTRAINT [CustomersID] FOREIGN KEY ([CustomerID]) REFERENCES [Customers] ([CustomerID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipOrderAndCustomers .

انشاء علاقة واحد الى متعدد بين جدول الطلبات Orders وجدول الزبائن Employees حيث المفتاح الأساسي EmployeeID موجود في جدول الموظفين والمفتاح الفرعي موجود في جدول الطلبات .

ALTER TABLE [Orders] ADD CONSTRAINT [EmployeesID] FOREIGN KEY ([EmployeeID]) REFERENCES [Employees] ([EmployeeID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipOrderSAndEmployees .

انشاء علاقة واحد الى متعدد بين جدول تفاصيل الطلبات Order Details وجدول الطلبات Orders حيث المفتاح الأساسي OrderID موجود في جدول الطلبات والمفتاح الفرعي موجود في جدول تفاصيل الطلبات .

ALTER TABLE [Order Details] ADD CONSTRAINT [OrderID] FOREIGN KEY ([OrderID]) REFERENCES [Orders] ([OrderID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipOrderDetailsAndOrders .

انشاء علاقة واحد الى متعدد بين جدول الطلبات Orders وجدول الشحن Shippers حيث المفتاح الأساسي ShipperID موجود في جدول الشحن والمفتاح الفرعي ShipVia موجود في جدول تفاصيل الطلبات .

ALTER TABLE [Orders] ADD CONSTRAINT [ShipVia] FOREIGN KEY ([ShipVia]) REFERENCES [Shippers] ([ShipperID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipOrdersAndShippers .

انشاء علاقة واحد الى متعدد بين جدول تفاصيل الطلبات OrdersDetails وجدول المنتجات Products حيث المفتاح الأساسي ProductID موجود في جدول المنتجات والمفتاح الفرعي ProductID موجود في جدول تفاصيل الطلبات .

ALTER TABLE [OrderDetails] ADD CONSTRAINT [ProductsOrder Details] FOREIGN KEY ([ProductID]) REFERENCES [Products] ([ProductID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipOrdersDetailsAndProducts .

انشاء علاقة واحد الى متعدد بين جدول المنتجات Products وجدول الأصناف Categories حيث المفتاح الأساسي CategoryID موجود في جدول الأصناف والمفتاح الفرعي موجود في جدول المنتجات .

ALTER TABLE [Products] ADD CONSTRAINT [CategoryID] FOREIGN KEY ([CategoryID]) REFERENCES [Categories] ([CategoryID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipProductsAndCategories .

انشاء علاقة واحد الى متعدد بين جدول المنتجات Products وجدول الموردين Suppliers حيث المفتاح الأساسي SupplierID موجود في جدول الموردين والمفتاح الفرعي موجود في جدول المنتجات .

ALTER TABLE [Products] ADD CONSTRAINT [SupplierID] FOREIGN KEY ([SupplierID]) REFERENCES [Suppliers] ([SupplierID]);

اخيرا نقوم بتشغيل الإستعلام للتأكد من عدم وجود اخطاء وسوف يقوم بإنشاء علاقة واحد الى متعدد بين الجدولين ثم نقوم بحفظ الإستعلام بإسم مثلا qryRelationshipProductsAndSuppliers .

بعد الإنتهاء من كل هذا نذهب الى مخطط العلاقات ونتأكد من عملنا هل هو سليم ام لا وسنجده بهذا الشكل

post-15367-1195841876_thumb.gif

وبهذا نكون قد انتهينا من من انشاء الجداول وانشاء العلاقات

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

اذا كل ما علينا اننا سنضع تحت زر الأمر في النموذج الكود التالي :

Private Sub CreateTablesAndRelationshipsBYSQL_Click()
DoCmd.OpenQuery "qryCrTbCategories"
DoCmd.OpenQuery "qryCrTbCustomers"
DoCmd.OpenQuery "qryCrTbEmployees"
DoCmd.OpenQuery "qryCrTbOrderDetails"
DoCmd.OpenQuery "qryCrTbOrders"
DoCmd.OpenQuery "qryCrTbProducts"
DoCmd.OpenQuery "qryCrTbShippers"
DoCmd.OpenQuery "qryCrTbSuppliers"
DoCmd.OpenQuery "qryRelationshipOrderAndCustomers"
DoCmd.OpenQuery "qryRelationshipOrderDetailsAndOrders"
DoCmd.OpenQuery "qryRelationshipOrdersAndEmployees"
DoCmd.OpenQuery "qryRelationshipOrdersAndShippers"
DoCmd.OpenQuery "qryRelationshipOrdersDetailsAndProducts"
DoCmd.OpenQuery "qryRelationshipProductsAndCategories"
DoCmd.OpenQuery "qryRelationshipProductsAndSuppliers"
MsgBox "تم إنشاء الجداول والعلاقات بنجاح", vbInformation, "مبروك"
End Sub

وفي أقل من ثانية واحده سيقوم بإنشاء الجداول والعلاقات وتصبح جاهزة للإستخدام .

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

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

post-15367-1195841804_thumb.gif

zaCreateTablesAndRelationshipsBySQL.rar

ختاما لكم مني خالص الشكر والتقدير على المتابعة ولو ان الموضوع طويل قليلا ولكن نتمنى ان يكون فيه الفائدة لكل اعضاء المنتدى .

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

مشاء الله تبارك الله

الله يوفقك اختى الكريمه وحفظك الله ورعاك

والسلام عليكم ورحمة الله وبركاته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وفقك الله ورعاك

ورزقك الجنة .. وبارك الله فيك على هذا الجهد المميز

أعجبتني طرق إنشاء الجداول بالكود .. وومكن الاستغناء عن الاستعلامات وتحويلها

لكود فيصيح العمل برمته ( أكواد برمجية ) ... دعواتي لك بالتوفيق

أخوك / EKSEER

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيكم جميعا اخواني الكرام على المرور

يمكن ذلك اخي اكسير عن طريق الكود ولإستغناء عن ذلك

لدرجة انك تستطيع ان تنشيء بالكود البرمجي قاعدة بيانات متكامله من الألف الى الياء كما يفعله الويزرد الموجود مع الأكسيس .

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بجد مش عارف اقول ايه على هذا الفيض من المعلومات التى لم اكن انتظرها بهذه السهوله واليسر :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بناء على رغبة اخينا الفاضل اكسير

فقد تم الإستغناء عن جميع الإستعلامات وتحويلها الى اكواد

الآن كل ما عليك فقط هو ضغط زر الأمر الموجود في النموذج وسيتم انشاء الجداول ووضع الفهارس الخاصة بكل جدول ومن ثم انشاء العلاقات بين الجدول وربطها جميعا

post-15367-1195939854_thumb.gif

zaCreateTablesAndRelationshipsByCode.rar

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
وفقك الله ورعاك

ورزقك الجنة .. وبارك الله فيك على هذا الجهد المميز

آمين..آمين..آمين

اتمنى ان تثبت هذه الدروس الرائعة بقسم الدروس ليتمكن الجميع من الرجوع اليها بسهولة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الى الأخت الفاضله : زهره ، وفقها الله

لقد احلتيني الى هذا الموضوع من

http://www.arabteam2000-forum.com/index.php?showtopic=151574

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

وفق الله الجميع لما يحب ويرضى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي الفاضل

اعتقد انني اجبتك على هذا السؤال بخصوص قواعد البيانالت المرتبطة

اخي الفاضل

بالنسبة لتغيير او تحديث اسم الحقل او نوعه او حجمه او الإضافة او الحذف فهذا يتم فقط على القاعدة الحالية وما بها من جداول اما الجداول المرتبطة والحقول الخاصة بها فلا تستطيع التعديل عليها او التغيير فيها .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

توضيح رائع شكراً لكل من علق على الموضوع بصراحة شروحات مفيدة ورائعة وأتمنى لكم التوفيق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله و بركاته

أختي في الله ( الكريمه/ زهره )

بعد التحيه

أحببت أن ألقي التحيه على الاخت الفاضله المعلمه فحضرتك فعلا نعم الاخت و نعم المعلمه

دمت زخرا لنا و للمسلمين جميعا

و أتمنى أن أكون نعم التلميذ الذي تعلم على يد نعم الاستاذه

فضلا أختي تقبلي احترامي و تقديري

أخوك في الله

أحمد ثروت

(أبو التوأم - مريم و مايا )

أبو مروان

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيكى يا ام عهود

وجزاكى الله كل خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاكم الله كل خير أستاذة زهرة.. زادك الله علما.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الابداعات دى مستخبيه فين

ما شاء الله

جزاك الله خيراا ام عهود وزادك الله علم وتقى وغنى وسترك دنيا واخره

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وبعدين يا ام عهود.. كل لما نقول قربنا منك نلاقي لسه المشوار بعيد :(

مبدعه مبدعه مبدعه

ربنا يكرمك ويجزاكي خير علي مجهودك ومعلوماتك المفيدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .