تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ادخال درجات الطلاب لقاعدة بيانات اكسس .. مساعدة
#1
السلام عليكم ورحمة الله
في المشروع المرفق تجدون نموذج بسيط لإدخال درجات لقاعدة بيانات اكسل
يتم ذلك عن طريق اختيار الشهر من ComboBox1 وعند اختيار الشهر المحددة يتم تفعيل ال NumericUpDown1 الخاص بإدخال الدرجات للشهر الذي تم تحديده
المشكلة هي أنه عند ادخال درجة لشهر اكتوبر ثم نوفمبر ثم يناير وهكذا لنفس الشخص أو السجل لا يتم ادراجهم في نفس الصف او السجل في قاعدة البيانات بل يتم الرصد في صف جديد لكل شهر على حده.
ارجوا المساعدة لوكم جزيل الشكر والامتنان


الملفات المرفقة
.rar   Pro15.rar (الحجم : 5.06 م ب / التحميلات : 32)
الرد }}}
تم الشكر بواسطة:
#2
اخي الفاضل

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

البرنامج يحتاج إلى إعادة صياغة

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

راجع تحليل البرنامج لكي تحصل على خطوات العمل البسيطة بدون أي مشكلات
الرد }}}
تم الشكر بواسطة: OLED , OLED , Tajaldeen , Taha Okla
#3
وعليكم السلام ورحمة الله وبركاته

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

مثلاً 
- طالب1 أدخلت درجاته عن شهر 10 
- طالب 2 أدخلت درجاته عن شهر 10
ثم أردت أن تدخل : 
- درجات الطالب 1 عن شهر 11
- درجات الطالب عن شهر 11
 
كيف سيعرف البرنامج هذه الدرجات لمن تكون وأي طالب ؟؟

على الأقل يجب أن يكون هناك ضمن الجدول حقل لتعريف السجل عن أي طالب هو.
مثلاً رقم الطالب(ID) أو اسم الطالب (Name)..

فإذا ما أردت أن تدخل بيانات الطالب :
- أولا تحدد من هو الطالب بحسب طريقة تعاملك التي حددتها مع هذا الجدول من قاعدة البيانات إم عن طريقة اسمه أو رقمه.
- تبحث عن هذا الرقم في جدول الدرجات في قاعدة البيانات ، هل هو موجود ؟ أم لا ؟
  1. إذا كان غير موجود  نعمل عملية إضافة(إدخال)..
  2. إذا كان موجود نعمل عملية تحديث للسجل لا أكثر.


كتبسيط للأمر في مثالك :
قم بإضافة (ComboBox2)    للنافذة واجعلها من أجل رقم الطالب ..

في قم الأكود قم بإضافة الكود التالي (وضعه في أي مكان مناسب، في قسم المودل أو في قسم الفورم1، مو مشكلة) -- 
وهو كود من أجل التحقق من رقم الطالب موجود أم لا  :
كود :
   Function IsIDExist(Id As String) As Boolean
       Dim cn1 As OleDbConnection
       cn1 = New OleDbConnection
       cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=../debug/testdb.mdb"
       cn1.Open()

       Dim cmd2 As New OleDbCommand(" select * from tbl_accounts Where ID = '" & Id & "'", cn1)
       Dim dt As New DataTable

       dt.Load(cmd2.ExecuteReader)
       If dt.Rows.Count = 1 Then
           Return True
       Else
           Return False
       End If

       cn1.Close()

   End Function


بالنسبة للأكواد الخاصة بالشهرين (Oct) - (Nov)  استبدلهما بالكود التالي :
كود :
Public Sub October()

   Dim Sql As String
   Dim cn1 As OleDbConnection
   cn1 = New OleDbConnection
   cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=../debug/testdb.mdb"
   cn1.Open()

   Dim cmd2 As New OleDbCommand

   Dim Id2 As String = ComboBox2.Text
   Dim Oct2 As String = NumericUpDown1.Value
   If IsIDExist(ComboBox2.Text) = True Then
       Sql = "Update tbl_accounts set Oct='" & Oct2 & "', ID='" & Id2 & "' Where ID ='" & Id2 & "' "
   Else
       Sql = "INSERT INTO tbl_accounts (ID,Oct)Values('" & Id2 & "','" & Oct2 & "')"
   End If

   If ComboBox1.Text = "اكتوبر" Then
       DatabaseConnect()

       With cmd2
           .Connection = cn1
           .CommandText = Sql
           .Parameters.Clear()

           .ExecuteNonQuery()
           MsgBox("تم إضافة الدرجة بنجاح", MsgBoxStyle.Information, "تنبيه")
           NumericUpDown1.ResetText()
       End With
   End If
   cn1.Close()

End Sub

Public Sub November()

   Dim Sql As String
   Dim cn1 As OleDbConnection
   cn1 = New OleDbConnection
   cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=../debug/testdb.mdb"
   cn1.Open()

   Dim cmd2 As New OleDbCommand

   Dim Id2 As String = ComboBox2.Text
   Dim Nov2 As String = NumericUpDown2.Value

   If IsIDExist(ComboBox2.Text) = True Then
       Sql = "Update tbl_accounts set Nov='" & Nov2 & "' Where ID ='" & Id2 & "' "
   Else
       Sql = "INSERT INTO tbl_accounts (ID,Nov)Values('" & Id2 & "','" & Nov2 & "')"
   End If

   If ComboBox1.Text = "نوفمبر" Then
       DatabaseConnect()

       With cmd2
           .Connection = cn1
           .CommandText = Sql
           .Parameters.Clear()

           .ExecuteNonQuery()
           MsgBox("تم إضافة الدرجة بنجاح", MsgBoxStyle.Information, "تنبيه")
           NumericUpDown2.ResetText()
       End With
   End If
   cn1.Close()
End Sub


جرب الكود على هاذين الشهرين، !!   هل نجح الأمر معك ؟؟

==========================================
لاحظ في كود أي شهر منهما :
- أولا نتحقق من وجود رقم الطالب من خلال الخاصية التي صنعناها في الكود الأول أعلاه، بالشطر التالي :
كود :
If IsIDExist(ComboBox2.Text) = True Then

وبحسب نتيجة الشرط تحقق أم لا نحدد طريقة جملة الاستعلام إما (Update)  أو  (Insert)..
وعليه تكون النتيجة..

هذا مختصر بسيط جداً عن هذه العملية ..

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

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

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

وهناك الكثير من القنوات المجانية على يوتيوب تعلمك البرمجة من الصفر ... 
منها أكاديمية حسونة، وأحمد النجار، و.. إلخ  .. وهناك الكثير من الكتب البرمجية المشروحة شرحاً مبسطاً ..
ولكن أنصحك بالتعلم بالصوت والصورة مع التطبيق لما تراه يوم بيوم ولحظة بلحظة ..
مع التكرار ستصبح أغلب ما تعلمته أساسياً في دماغك وستكتشف بالتجريب طرقاً لم تخطر على بال أحد من قبلك
فطرق الوصول للهدف كثيرة ولكن الأفضل بالتعلم بشكل منطقي وتسلسلي، ولا تطبق مبدأ (نضرب العجينة بالحيط، إذا لزقت فلزقت، وإذا ما لزقت فما لزقت)
التجريب بدون أساسيات طريق طويلة جداً جداً، فقد ينفد العمر ولا ترى نفسك أنك تعلمت سوى القليل،،
فما تتعلمه بطرق أكاديمية ومنطقية (خلال أشهر) يوفر عليك سنوات من المعاناة بالتجريب، ومشروع السنة بالتجريب ستستطيع وقتها أن تنجزه بشهر أو باسبوع.
=========
استثمر في وقتك، فهو أهم الاستثمارات التي ستمر عليك في حياتك ولن تعوض مرة أخرى، 
فالعمر مرة فلا تسرق سنينه بلحظات.. لاضاعت الفرصة ما يعوضها كثر الحسرات..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: Tajaldeen , Tajaldeen , OLED , OLED , OLED , أبو خالد الشكري , MOSTAFA_GHALEB
#4
(05-01-23, 05:24 PM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته

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

جزاك الله خير أخي الكريم
تم عمل المطلوب بنجاح بفضل الله أولا ثم بفضل جهودك المباركة
أنا بالفعل مبتدأ جدا في قواعد البيانات ودائما أفضل طريقة التعلم بالنماذج والمشاريع الجاهزة رغم علمي بأنها طريقة خاطئة مثلما تكرمت
 وعليه من الآن وصاعدا وبإذن الله سيتم أخذ نصائحك الثمينة بالاعتبار وسأحاول جاهدا سلوك الطريق الاكاديمي
يمكنك الاطلاع على الملف المرفق بعد التعديل مع ملاحظة أخيرة لو تكرمت أخي الكريم
قمت بإضافة ComboBox2 يحتوي سجل الطلاب والذي قمت ايضا بإضافته لقاعدة البيانات باسم البند ID
أرغب بوضع سجلات عشرة طلاب في قاعدة البيانات من  1 – 10 مبدئيا وارغب بان يتم ترحيل السجل من قاعدة البيانات
إلى ComboBox2 بحيث تظهر فيه بشكل تلقائي عند تشغيل البرنامج ومنها استطيع التنقل بين السجلات واضافة الدرجات
كما ارغب بتحول نوع القيم إلى رقمية لأنني لاحقا سأقوم بإجراء بعض العمليات الحسابية لأنني عندما قمت بتغييرها ظهرت لي رسالة خطأ
مفادها عدم تطابق نوع البيانات
هلا تكرمت أخي الفاضل بعمل المطلوب على النموذج المرفق وإعادة ارساله لي كونه جزء من مشروع مهم
ما زلت اعمل عليه ووصلت فيه الى المراحل النهائية
والطلب الأخير .. هل هناك عناوين محددة لكتب تستطيع تزويدي بها كي اقوم بتحميلها من النت أو قنوات يوتيب محددة لهذا الغرض
واشكرك جزيل الشكر ... جعل الله ما تقوم به من عمل في ميزان حسناتك
ورحم  الله والديك ونفع بعلمك
خالص التحية
 
رابط قوقل درايف لتحمل المشروع بعد التعديل
 
الرد }}}
تم الشكر بواسطة:
#5
بصراحة لم استوعب ما هي الأهمية لبرنامج مثل هذا حتى الآن.

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

هذا البرنامج يقوم أساساً على قواعد البيانات وهو بدون قواعد البيانات يعتبر لا شيء..
وهذا الجانب : أنت لا تعرف عنه شيء حتى الآن.

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

فكما قلت لك .. أن عرضت عليك الحل هنا من باب النصيحة لا أكثر .. 
أما المساعدة في تنفيذ برنامج من الصفر فلا أظن هنا في المنتدى من يستطيع التفرغ للبرنامج معك بالشهور حتى ينتهي..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: OLED , OLED , MOSTAFA_GHALEB
#6
(05-01-23, 12:11 PM)Jounior_P كتب : اخي الفاضل

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

البرنامج يحتاج إلى إعادة صياغة

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

راجع تحليل البرنامج لكي تحصل على خطوات العمل البسيطة بدون أي مشكلات

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


الملفات المرفقة
.rar   Pro1.rar (الحجم : 5.06 م ب / التحميلات : 50)
الرد }}}
تم الشكر بواسطة:
#7
تم بفضل الله ثم بفضل بعض المنتديات الاجنبية حل اشكالية ادخال القيم الرقمية

 والحل كان ابسط مما اتوقع

وللفاائدة فعند الرغبة في ادخال قيم رقمية الى حقول من النوع الرقمي في قاعدة البيانات ما عليك إلا ان تتخلص من 

علامات التنصيص المفردة ('   ') المحيطة بالقيم والابقاء فقط على علامات التنصيص المزدوجة ( "   " )



فمثلا هذا الكود خاطئ


كود :
Update tbl_accounts set Nov='" & Nov2 & "' Where ID ='" & Id2


الكود الصحيح هو 

كود :
Update tbl_accounts set Nov=" & Nov2 & " Where ID =" & Id2 & " "



Smile كل الاحترام   Smile
الرد }}}
تم الشكر بواسطة:
#8
تحياتي اخي الكريم
انصحك ان تتعلم الاساسيات بالبداية قبل ان تقوم بعمل مشاريع
كما انصحك ان تتعلم قواعد البيانات فهي الاساس لكل برنامج
الرد }}}
#9
(08-01-23, 08:21 PM)aljzazy كتب : تحياتي اخي الكريم
انصحك ان تتعلم الاساسيات بالبداية قبل ان تقوم بعمل مشاريع
كما انصحك ان تتعلم قواعد البيانات فهي الاساس لكل برنامج

هذه النصيحة يجب ان يأخذ بها كل مبتدئ
الرد }}}
تم الشكر بواسطة: مصمم هاوي


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طلب تعديل كود عرض بيانات xlsx ABDULLAH HASSAN 2 119 21-04-24, 03:58 PM
آخر رد: ABDULLAH HASSAN
  مساعدة في حل سؤال بخصةص عرض الوقت عبدالكريم برشدان 2 136 12-04-24, 03:05 PM
آخر رد: عبدالكريم برشدان
  [VB.NET] مساعدة في تقرير mrfenix93 1 101 24-03-24, 10:29 PM
آخر رد: mrfenix93
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 192 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  [سؤال] أتمنى اجابة وافية:عمل برنامج بقاعدة بيانات SQL دون حاجة تثبيت SQLSERVER dr.programming 6 714 19-03-24, 08:56 AM
آخر رد: سلامه محمد11
  استعلام select عن مجموعة بيانات Adel27213 1 283 15-03-24, 01:11 AM
آخر رد: justforit
  حساب عدد الطلاب محمد خيري 4 169 12-03-24, 02:07 PM
آخر رد: محمد خيري
  مساعدة jalaltech 1 130 07-03-24, 07:38 PM
آخر رد: قناص المدينة
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 250 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  [VB.NET] مساعدة فى كود فاتورة اللكترونية asdfar1977 2 241 02-03-24, 02:00 AM
آخر رد: asdfar1977

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم