السلام عليكم ورحمة الله وبركاته
قمت بعمل جدول بعدة حقول برمجياً وأحد الحقول أريده أن يكون ترقيم تلقائي وكلما وضعت التعريف تظهر رسالة بوجود خطأ في القواعد
فما العمل؟؟
وجزاكم الله خيرا
السلام عليكم ورحمة الله وبركاته
قمت بعمل جدول بعدة حقول برمجياً وأحد الحقول أريده أن يكون ترقيم تلقائي وكلما وضعت التعريف تظهر رسالة بوجود خطأ في القواعد
فما العمل؟؟
وجزاكم الله خيرا
وعليكم السلام ورحمة الله وبركاته
تفضلي طلبك هنا في هذا المثال
جزاك الله خيراً.
الذي قصدته عمل حقل ترقيم تلقائي أثناء تكوين الجدول باستخدام الأمر Create table ، لكن يبدو أن هذا الأمر غير ممكن.
سلام
أهلا نائلة، أهل بالجميع..
ماهذا اليأس!
حسنا سوف أخبرك الطريقة.. وأعطيك معها فائد عزيزة جداً
- أولا.. Create Table هو أمر من أوامر لغة بناء الاستعلام البنوي تم تضمينه مع أكسس لدعم بناء الاستعلامات المتصلة.
وعليه عند الرغبة في معرفة المزيد عن هذه اللغة يجب الرجوع لمصدرها، وليس إلى أكسس.
- ثانيا.. نمط الحقل المسئول عن هذا النوع من البيانات هو COUNTER
- صيغة هذا الأمر كالتالي:
CREATE TABLE agencies (agencyID COUNTER PRIMARY KEY)
أما الفائد تأتي بإذن الله
أبو إبراهيم
لإنشاء جدول اسمه 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]));
ايضا لإنشاء جدول الموظفين وبه حقل رقم الموظف ترقيم تلقائي ويكون PRIMARY KEY
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]));
لمزيد من المعلومات راجع هذا الرابط
الشرح الكامل المفصل مع الأمثله لإنشاء الجداول والفهارس والعلاقات والربط بينها برمجيا بالكود
الأخ القحم: جزاك الله خيراً، ونفع الله بك ..
أنا لم أيأس ولكن بحثت عن تعريف للحقل من نوع Autonumber فلم أجد، ولم أكن أعلم أنه يعبر عنه بـ Counter.
وبانتظار فائدتك.
الأخت زهرة: جزاكِ الله خيراً على هذا المثال الواضح وعلى الرابط الأكثر من رائع، نفع الله بكِ.
سلام
في الحقيقية لا يقتصر إضافة حقل الترقيم التلقائي على CREATE TABLE فحسب،
بل يمكن إنشاءه عن طريق DAO,ADO,ADOX كلها يمكن أن تحقق الهدف نفسه، وللتعرف على كيفية ذلك ما عليكم سوى الرجوع إلى ملف التعليمات الخاص بأكسس.
وفي نظري أن CREATE TABLE أبسطها جميعا.
**الفائدة**
قبل الشروع في ذكر الفائدة أود أن أشير إلى أن لغة الاستعلام البنوية لها معرفين للترقيم التلقائي هما:
المعرف الأول هو: AutoIncrement وهذا النوع اعتمدت عليه الاستاذة زهرة في مشاركتها التى أفاضت فيها على ما جرت عادتها في اشباع المعلومة.. زادها الله توفيقا.
المعرف الثاني هو: Counter وهذاالنوع اعتمدت عليه أنا شخصيا لأن الفائدة التي سأذكرها متعلقة بهذا المعرف... وهي كالتالي...
... يعلم الجميع أن الترقيم التلقائي في أكسس لايمكن التحكم فيه أو تغيير قيمته عند إنشاء جدول ترقيم تلقائي.. وهذا مقلق جدا.. وتكثر الأسئلة معه عن كيفية إيجاد طرق وحلول بديلة يمكن معها تكوين ترقيم تلقائي مخصص خالٍ من العيوب.. ولم أرَ في ظني أحدا قدم حلاً لهذه المشكلة.
... أما الآن فسوف تصبح هذه المشكلة في طور النسيان مع (Counter)
- المعرف: Counter يوحي مسماه إلى قابليته لذلك .. مثل العداد الرقمي أو عداد الوقت لكل منهما بداية توقيت وفترة انتقال.. وهذا بالفعل هو المعرف Counter
- المعرف: Counter لو خصيصتين أو قل متغيرين..
.. الأول: بداية العد.. أي العدد الذي يمكن البدء منه للعد
.. الثاني: فترة الإنتقال.. أي العدد المحتسب لللأنتقال
.. كمثال على ذلك: تحديد بداية العد من (100) وفترة الانتقال (2). فيبدأ العد من (100) وينتقل إلى (102)، (104)، (106) وهكذا
- صيغة المعرف هي :
Counter(Initial_Value,Step_Value)
حيث إن Initial_Value هي قيمة بداية العد، وStep_Value وهي فترة الانتقال. وعليه تصبح شفرة إنشاء جدول بترقيم تلقائي بقيمة مخصص ومنتظمة هي
Create Table AutoNumberFieldTest( AutoField Counter(100,2), MyName Text(255) )
صيغة هذه الشفرة مبنية في حاوية الاستعلامات (Data Difination)
هذه هي الفائدة التي جعلتني استخدم المعرف Counter بالذات
جربوا هذه الشفرة واستمتعوا بترقيم تلقائي مخصص مع الأكسس
أتمنى للجميع التوفيق
أبو إبراهيم
جزاك الله خيراً يا أبا ابراهيم .. فعلا فائدة كبيرة
سلام
نائلة كتب:جزاك الله خيراً يا أبا ابراهيم .. فعلا فائدة كبيرة
يبدو لي أن الشرح لم يكن واضحا كفاية، أو أن هذه الفائدة ليست عزيزة كما أدعيتُ!!. وإلا لرأيتُ مايبرهن على هذا من قرّاء المشاركة!!
الرابط أدناه هو لكتاب يتحدت عن CREATE TABLE وأخواتها (انجليزي). هدبة لك على الدعوة الطيبة
تمنياتي بالتوفيق
أبو إبراهيم
بالنسبة لي كان الشرح وافٍ، والعداد Counter أراحني كثيراً من فكرة عمل ضغط وفك لقاعدة البيانات لأجل تصفير الترقيم التلقائي autonumber.
وأنا الآن أنزل الملف.
وجزاك الله خيراً على نفع إخوانك.
ما نوع الملف؟ حيث أنزلته ولكن لم يتعرف الويندوز على نوعه!
سلام
نائلة كتب:أراحني كثيراً من فكرة عمل ضغط وفك لقاعدة البيانات لأجل تصفير الترقيم التلقائي autonumber.
لماذا نلجأ إلى هذاالحل؟.. ألا يمكن أعادة الرقم المفقود إلى مكانه!.. في نظري أن (التصفير) مربك بالنسبة للعلاقات.. أكيد هناك حل.. كيف؟
نائلة كتب:ما نوع الملف؟ حيث أنزلته ولكن لم يتعرف الويندوز على نوعه!
الملف من نوع (ADOBE ACROBAT READER)
سلام
القحم كتب:لماذا نلجأ إلى هذاالحل؟.. ألا يمكن أعادة الرقم المفقود إلى مكانه!.. في نظري أن (التصفير) مربك بالنسبة للعلاقات.. أكيد هناك حل.. كيف؟
حسنا.. الطريقة التي يمكن معها إدارج قيمة في حقل الترقيم التلقائي هي عن طريق الاستعلام الإجرائي (INSERT).
صيغة الشقرة كالتالي
INSERT INTO Customers ( CustomerID ) SELECT [أدخل الرقم المطلوب] AS ID;
أتمنى لكم التوفيق