منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ماهي المشكله بلكود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
Imports System.Data.OleDb
Imports Toast_Notification
Imports Bunifu.Framework
Public Class Form13

    Dim con As New OleDbConnection("provider=microsoft.ACE.OLEDB.12.0; data source=database.accdb")
    Dim da As New OleDbDataAdapter()
    Dim dt As New DataTable
    Dim table As New DataTable
    Sub load_date()


        Dim cmd As New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con)

        cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text
        Dim adapter1 As New OleDbDataAdapter(cmd)
        Dim table As New DataTable
        adapter1.Fill(table)

    End Sub
    Sub save_date()
        Dim save As New OleDbCommandBuilder(da)
        save.QuotePrefix = "["
        save.QuoteSuffix = "]"
        da.Update(dt)
        dt.AcceptChanges()
    End Sub
    Private Sub Form13_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        load_date()
        DataGridView1.DataSource = table
    End Sub
End Class

لا يوجد اخطاء ولاكن لا يضهر البيانات في الداتا جريد فيو جربت الكود بلاكسيس وزبط الاكسيس بطلب من اكتب الاسم

هذه صور اخرى
مرحباً اخى mostafa12

الخطاء بهذا السطر
كود :
cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text

حيث انك تقوم بتعبئة قيمة m بـ Label1.Text واللى قيمتها فى الصورة هى 11aaa
القيم التى تتواجد بقواعد البيانات 111 فطبيعي يكون الداتا جريد فارغ لكونه
لم يحصل على قيمة بـ 11aaa 

تحياتى لك
وتمنياتى لك التوفيق
لا اخي جرت 111

هو الجدول معبى ويوجد فيه 11aaa

lable ياخذ القيمه من الداتا جريد فيو

شوف اخى الكريم بكل سهولة تعال فى الشاشة خاصة الداتا جريد الاولى
واجعل الاستعلام بهذا الشكل

SELECT Max(myid) AS Fid, myname, Max(mydate) AS Fdate, Max(mytime) AS Ftime, Max(mypres) AS Fpres FROM test GROUP BY myname

ناتى الان لعرض الداتا جريد الثانية
كل الامر ستجعل الاستعلام بهذا الشكل
SELECT myid, myname, mydate, mytime, mypres FROM test WHERE myname = "11"

طبعاً استبدل رقم 11 بقيمة الاسم من السطر المحدد ومع مراعاه تغيير المسميات لما هى لديك
وبكده تكون عملت عدم تكرار للدروس فى الداتا جريد الاولى
وفى الداتا جريد الثانية قمت بعرض جميع الدورس للاسم الواحد

تحياتى لك
طبقت ما قلته لي زالاستعلام الاول شغال لاكن الثاني لايضهر البيانات

هذه صور اخرى

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

تحياتى لك
وتمنياتى لك التوفيق
لا يمكنني تحميله كامل لاتوجد مساحه كافيه هل يمكنني رفع فورم1

ثواني سوف احاول

هاذا هو المشروع

لقد قمت بحذف اشياء كثيره لاستطيع تحميله بلفورم 5 اضغط دبل كليك على الرو ويفتح فورم8 هنا المشكله
تعال على هذا الكود فى الفوم 8 لديك
كود :
   Sub load_date()


       Dim cmd As New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con)

       cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text
       Dim adapter1 As New OleDbDataAdapter(cmd)
       Dim table As New DataTable
       adapter1.Fill(table)

   End Sub

استبدله بهذا الكود
كود :
   Function load_date()
       Dim cmd As New OleDbCommand("SELECT [رقم الايدي], m, [تاريخ تعين الدرس], [الساعه], [عدد الدروس], [حضور/غياب] FROM table2 WHERE m=@m ", con)
       cmd.Parameters.Add(New OleDbParameter("@m", OleDbType.VarChar)).Value = Label1.Text
       Dim adapter1 As New OleDbDataAdapter(cmd)
       Dim table As New DataTable
       adapter1.Fill(table)
       Return table
   End Function

تعال ايضاً على هذا الكود فى الفورم 8
كود :
       load_date()
       DataGridView1.DataSource = table

استبدله بهذا الكود
كود :
       DataGridView1.DataSource = load_date()
       DataGridView1.Refresh()

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

النتيجة

تحياتى لك
وتمنياتى لك التوفيق
شكرا لك اخي
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق