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


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

أرجو أن يكون شرح المشكلة و اضح أرجو المتابعة و التوضيح
و لكم جزيل الشكر
الرد }}}}
تم الشكر بواسطة:
#2
ارسل المشروع ليستطيع الاخوه مساعدتك
الرد }}}}
تم الشكر بواسطة:
#3
أخي الكريم المشروع ليس ملكي و لا أستطيع إرساله
لكن سأقوم بتنفيذ Form مطابق لما يقوم به البرنامج و بنفس الكود
و لكم جزيل الشكر


.rar   WindowsApplication1.rar (الحجم : 235.75 ك ب / التحميلات : 38)
أخوتي الكرام
هذه نافذة من البرنامح و هي مطابقة تماما
و المشكلة تظهر فيها
السجل الأخير رقمه 32 لكن البرنامج يقف عند 28 و هي واضحة ضمن الـ DataGridView

ملف المشروع بالمرفقات

ولكم جزيل الشكر
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم أخي العزيز ورحمة الله وبركاته
لقد تم التعديل على مشروعكم بناء لطلبكم

الأكواد :
قم بالإعلان عن المتغيرات التالية :
PHP كود :
Dim con As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" Application.StartupPath "\Data.mdb;user id=admin;jet oledb:database password=987")
 
   Dim cmd As OleDbCommand
    Dim da 
As OleDbDataAdapter
    Dim ds 
As DataSet
    Dim bs 
As BindingSource
    Dim sqlstr 
As String 

تحميل البيانات :
PHP كود :
'Load Data
    Private Sub LoadData()
        Try
            con.Open()
            sqlstr = "Select ID as الرقم,WNumber as رقم_القطعة,WName as إسم_الزبون ,WItem as إسم_القطعة,WDate as التاريخ,WOther as الهاتف,WNote as ملحقات From WInput Order By ID ASC"
            cmd = New OleDbCommand(sqlstr, con)
            da = New OleDbDataAdapter(cmd)
            ds = New DataSet
            ds.Clear()
            da.Fill(ds, "WInput")

            bs = New BindingSource
            bs.DataSource = ds.Tables("WInput")

            ClearDatabinding()

            TextBox1.DataBindings.Add("Text", bs, "إسم_الزبون")
            TextBox2.DataBindings.Add("Text", bs, "إسم_القطعة")
            DateTimePicker1.DataBindings.Add("Text", bs, "التاريخ")
            TextBox3.DataBindings.Add("Text", bs, "الهاتف")
            TextBox4.DataBindings.Add("Text", bs, "ملحقات")
            TextBox5.DataBindings.Add("Text", bs, "رقم_القطعة")

            dgvWInput.DataSource = bs
            con.Close()
            '
Me.dgvWInput.Columns(4).DefaultCellStyle.Format "dd/MM/yyyy"
 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub 

تنظيف أدوات التحكم المرتبطة بقاعدة البيانات :
PHP كود :
'Clear Data Binding
    Private Sub ClearDatabinding()
        TextBox1.DataBindings.Clear()
        DateTimePicker1.DataBindings.Clear()
        TextBox2.DataBindings.Clear()
        TextBox3.DataBindings.Clear()
        TextBox4.DataBindings.Clear()
        TextBox5.DataBindings.Clear()
    End Sub 

الزر جديد :
PHP كود :
'Clear Controls
    Private Sub ClearControls()
        ClearDatabinding()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
        TextBox5.Clear()

        Dim max As Integer = 0
        max = bs.Count - 1
        TextBox5.Text = CStr(max + 1)

        btnNew.Enabled = False
        btnSave.Enabled = True
    End Sub 

إدخال البيانات إلى قاعدة البيانات :
PHP كود :
'Insert Data
    Private Sub InsertData()
        Try
            con.Open()
            sqlstr = "INSERT INTO WInput(WNumber,WName,WItem,WDate,WOther,WNote) VALUES(@WNumber,@WName,@WItem,@WDate,@WOther,@WNote)"
            cmd = New OleDbCommand(sqlstr, con)
            With cmd.Parameters
                .Add("@WNumber", OleDbType.VarWChar).Value = TextBox5.Text
                .Add("@WName", OleDbType.VarWChar).Value = TextBox1.Text
                .Add("@WItem", OleDbType.VarWChar).Value = TextBox2.Text
                .Add("@WDate", OleDbType.VarWChar).Value = DateTimePicker1.Value
                .Add("@WOther", OleDbType.VarWChar).Value = TextBox3.Text
                .Add("@WNote", OleDbType.VarWChar).Value = TextBox4.Text
            End With
            cmd.ExecuteNonQuery()
            MsgBox("تمت الإضافة بنجاح", MsgBoxStyle.MsgBoxRight + MsgBoxStyle.Information, "إنتباه")
            con.Close()
        Catch ex As Exception
            If con.State = ConnectionState.Open Then con.Close()
            MsgBox(ex.Message)
        End Try
    End Sub 

وباقي الأكواد يمكنك الإطلاع عليها في المشروع

النتيجة :
   

المشروع بعد التعديل :
.rar   khodor198 - WindowsApplication1.rar (الحجم : 248.88 ك ب / التحميلات : 42)
أتمنى لك التوفيق
الرد }}}}
تم الشكر بواسطة: Adrees , العزابي , derham , zinom
#5
أخي الكريم لك جزييييييل الشكر
سأقوم بالتجريب و أعلمك بالنتيجة
و أرجو منك توضيح مكان الخطأ و ما هو سبب تخبط ترتيب السجلات

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

بارك الله بك و بجهودك و لك جزيل الشكر
الرد }}}}
تم الشكر بواسطة:
#6
أرجو المعذرة أخي الكريم

ما علاقة هذا المثال بمشكلتي و ما هو قصدك ؟؟؟؟؟؟؟
الرد }}}}
تم الشكر بواسطة:
#7
السلام عليكم ورحمة الله وبركاته
والله أنتم تصعبون الأمور عليكم
لم نقم بالتعديل الكامل وإنما تنظيم الكود فقط وترتيبه هذا من جهة، من جهة أخرى يمكنك الوقوف على آخر سجل من خلال BindingSource ، أما بالنسبة لترتيب السجلات كان بإمكانك تعديلها في جملة الSQL
في كل الأحوال، سوف أعدل على المشروع فكرة الوقوف على آخر سجل وترتيب السجلات

أتمنى لك التوفيق
الرد }}}}
تم الشكر بواسطة:
#8
أخي الكريم أعتذر منك على الإزعاج
لكن أنا طلبت شيء محدد فقط و ليس تعديل البرنامج ككل
أرجوك تفهم معلوماتي القليلة و المبتدأة
أريد المحافظة على الكود الذي أستخدمه
و أنا أستخدم BindingSource من أجل الوقوف على آخر السجل
لكن انتبه لما قلته أنه أصبح يقف عند سجل محدد على أنه آخر سجل مهما أضفت من سجلات بعده

تقبل اعتذاري
و لك جزيل الشكر
الرد }}}}
تم الشكر بواسطة:
#9
أرجو المتابعة
الرد }}}}
تم الشكر بواسطة:
#10
أخوتي الكرام أرجو المساعدة
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] حفظ تاريخ معين بقاعدة البيانات توفي العراقي 4 92 اليوم, 01:11 AM
آخر رد: adel27
Sad [VB.NET] كيفية تصميم قاعدة بيانات SQL Server وربطها مع الVS 2010 Ayman97 0 20 أمس, 04:34 PM
آخر رد: Ayman97
  ما هو كود حفظ البيانات من الداتا جريد فيو إلى قاعدة البيانات kofa 0 30 05-12-16, 07:53 PM
آخر رد: kofa
  انشاء قاعدة بيانات بإمتداد خاص بك thevirus 5 124 05-12-16, 03:09 PM
آخر رد: thevirus
  تغيير قاعدة البيانات الى .bak زيد زينوبي 3 54 03-12-16, 07:07 PM
آخر رد: ابراهيم النعيمي
  [سؤال] ايهما افضل في قواعد البيانات للتميم برنامج sal.softip 2 45 03-12-16, 06:59 PM
آخر رد: sal.softip
  قاعدة البيانات لا تدعم اللغة العربية ؟؟؟؟؟؟ صبري زينوبي 13 207 03-12-16, 04:47 PM
آخر رد: صبري زينوبي
  حل مشكلة الكود الاتي - سهل- CLARO 3 84 02-12-16, 04:06 PM
آخر رد: ali.alfoly
  كيف يتم حل مشكلة ظهور رسالة عند الضغط علي هيد داتا جريد فيو السيد الجوهري 4 61 30-11-16, 10:08 PM
آخر رد: السيد الجوهري
  [VB.NET] مشكلة عند عمل تحديث للبيانات Asmaa adel 3 78 27-11-16, 03:56 PM
آخر رد: Adrees

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


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