تقييم الموضوع :
  • 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
أخوتي الكرام أرجو المساعدة
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشكلة في حفظ بيانات من الجدولين dark1459 8 124 25-02-17, 10:35 PM
آخر رد: dark1459
  مشكلة في اجبار المستخدم ان يحفظ صورة في قاعدة بيانات shado1796 96 6,255 25-02-17, 04:03 AM
آخر رد: khodor1985
  [VB.NET] مشكلة المسارات Fantastico 1 50 24-02-17, 12:40 PM
آخر رد: Master Hacker
  مشكلة ف الحفظ والتعديل بعد تحويل المشروع لملف تنفيذي apo yousef 3 92 23-02-17, 12:28 PM
آخر رد: ssayed111
  مشكلة في عرض النص بالعربي في #Region فقط ali.alfoly 1 77 22-02-17, 02:50 AM
آخر رد: مساعدة
  كيفية عرض البيانات فى DataGridView فى وضع CrossTab noway 1 82 21-02-17, 09:03 PM
آخر رد: noway
  ار جو المساعدة ما هي مشكلة كود التعديل والحذف boofa2015 2 58 21-02-17, 10:58 AM
آخر رد: boofa2015
  [VB.NET] مشكلة في كيفية اعادة الاتصال في TcpClient YazanOtoum 1 60 20-02-17, 01:03 PM
آخر رد: YazanOtoum
  ازاى اصمم جدول فى قاعدة بيانات 2D noway 5 116 20-02-17, 04:27 AM
آخر رد: khodor1985
  [VB.NET] كيفية حل مشكلة Global.[String] فى ملف Settings.Designer.vb الماجيك مسعد 2 62 20-02-17, 03:08 AM
آخر رد: الماجيك مسعد

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


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