تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اضافة التاريخ الى جميع السجلات
#1
السلام  عليكم ورحمة الله وبركاته


استخدمت هذا الكود لنقل جزء من البيانات الى جدول آخر

ويوجد في الجدول الثاني حقل لتاريخ اليوم و الملاحظات 
وارغب في اضافة وتعبئة حقل التاريخ الى جميع السجلات حسب ما هو مكتوب في اداة التاريخ

   
كود :
 Dim strSQL As String = ""
        Dim Command As OleDbCommand

        If Con.State = ConnectionState.Open Then Con.Close()
        Con.Open()
        strSQL = " INSERT INTO tblAtten(ManagEmp, UserFullName, EmpGrade, Scale, GradeSerialN)SELECT ManagEmp, UserFullName, EmpGrade, Scale, GradeSerialN FROM tblEmployees ORDER BY GradeSerialN ASC, Scale DESC, EmpGrade DESC " ORDER BY GradeSerialN ASC, Scale DESC, EmpGrade DESC

        Command = New OleDbCommand(strSQL, Con)
        Command.ExecuteNonQuery()
        Con.Close()

هذا الكود المستخدم في نقل البيانات من جدول الى الجدول الثاني
الرد
تم الشكر بواسطة: asemshahen5
#2
السلام عليكم ورحمة الله وبركاته
اخي الكريم قم باضافة كود تعدبل لحقل التاريخ بدون شرط بعد جملة الانسرت بحيث يأخذ من اداة التاريخ وبهذا سيتم تعديل كل السجلات بتاريخ اداة التاريخ
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: aftfm , asemshahen5 , asemshahen5
#3
جزيت خيراً اخي العزيز

هذا الكود يقوم بالتعديل

لكن اريده بشروط معينة

1- عدم التكرار في حالة وجود نفس تاريخ اليوم


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



كود :
    Dim cmdUpdate As New OleDbCommand
            cmdUpdate.CommandText = "UPDATE tblAtten SET DateOfDay= #" & Me.txtDateOfDay.MyText & "#"
            cmdUpdate.CommandType = CommandType.Text
            cmdUpdate.Connection = Con
            cmdUpdate.ExecuteNonQuery()

وضعت شرط التحقق من التاريخ



كود :
 Dim cmd As New OleDbCommand(" Select DateOfDay From tblAtten Where DateOfDay = #" & Me.txtDateOfDay.MyText & "#", Con)
        Dim dr As OleDbDataReader = cmd.ExecuteReader
        If dr.HasRows Then

        endif

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

للتوضيح

اريد كل يوم نقل البيانات مع تاريخ جديد
وفي حالة التاريخ موجود لا يتم نقل البيانات
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#4
السلام عليكم
اخي الكريم 
لم تذكر انك تقوم بنقل سجلات كل يوم
اما وانك تقوم بنسخ سجلات معينة كل يوم وقد تكون عددا معينا وتريد عند نقلها ان تأخذ تاريخ اليوم وبما ان الجدول فيه بيانات سابقة قد تم ادخال تاريخ مختلف لكل مجموعة تم نقلها هنا سنعمل شرط اضافة التاريخ للسجلات التي تم نقلها اليوم بأن يكون التعديل شرط  ان يكون حقل التاريخ ب Is Null   او  Nothing وبهذا سيتم اضافة تاريخ اليوم يجب التجربة (لانني لم اجرب)
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: aftfm , asemshahen5
#5
هذا مثال للتوضيح


الملفات المرفقة
.rar   TransferAndUpdate.rar (الحجم : 112.62 ك ب / التحميلات : 11)
الرد
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5 , asemshahen5
#6
السلام عليكم ورحمة الله وبركاته
اخي الكريم هذا كود النقل واضافة التاريخ وان كانت السجلات قد تم نقلها اليوم سوف لن يتم نقلها
اتمنى ان اكون قد فهمت منك ماتريد وان يلبي هذا الكود مرادك
1- قم بحذف السجلات من الحدول ثم شغل الكود ولاحط اضافة تاريخ اليوم
2 - اعد النقر على كود النقل سوف يخبرك ان بيانات هذا اليوم قد تم نقلها
3 - اذهب الى قاعدة البيانات الجدول الثاني وغير التاريخ الى تاريخ اقدم ثم شعل البرنامج وقم بنقل السجلات ستلاحط انه تم النقل واضافة تاريخ اليوم
بقي مسألة التاريخ الهجري يمكنك تعديله او حلها حسب ماترى
دمت بخير
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Me.ArabicDate1.MyText = Class1.GetTodayHijriDate
       Me.lblDays.Text = Class1.GetTodayHijriDay
       '--------------------------------------'
       ' تعاريف
       Dim strSQL As String = ""
       Dim Command As New OleDbCommand()
       Dim cmd1, cmd2, cmd3, cmdUpdate As New OleDbCommand()
       ' فتح الاتصال
       If Con.State = ConnectionState.Open Then Con.Close()
       Con.Open()
       ' الاستعلام عن السجلات التي تحتوي تاريخ اليوم
       cmd1 = New OleDbCommand(" Select DateOfDay From tbl2 WHERE DateOfDay=#" & Me.ArabicDate1.MyText & "#", Con)
       Dim dr1 As OleDbDataReader = cmd1.ExecuteReader
       If dr1.HasRows Then
           MsgBox("بيانات هذا اليوم تم نقلها سابقا")
           Exit Sub
       Else
           ' اذا لم يكن هناك سجلات تحمل تاريخ اليوم سيتم اضافتها
           '-----نقل البيانات-------'
           strSQL = " INSERT INTO tbl2 (ManagEmp, UserName, EmpGrade)SELECT ManagEmp, UserName, EmpGrade FROM tbl1 "
           cmd2 = New OleDbCommand(strSQL, Con)
           cmd2.ExecuteNonQuery()
           '-----الاستعلام عن حقل التاريخ الفارغ ثم التعديل-------'

           cmd3 = New OleDbCommand(" Select DateOfDay From tbl2 WHERE ( DateOfDay IS NULL)", Con)
           Dim dr3 As OleDbDataReader = cmd3.ExecuteReader
           If dr3.HasRows Then
               cmdUpdate.CommandText = "UPDATE tbl2 SET DateOfDay= #" & Me.ArabicDate1.MyText & "# WHERE (DateOfDay IS NULL)"
               cmdUpdate.CommandType = CommandType.Text
               cmdUpdate.Connection = Con
               cmdUpdate.ExecuteNonQuery()

           End If
       End If
       ' اغلاق الاتصال
       Con.Close()
       Load_Data()
       Me.DataGridView1.DataSource = DataDT

   End Sub
اعمل الخير واجرك لاتنتظره فالله خير من اليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد
تم الشكر بواسطة: asemshahen5 , aftfm
#7
الف شكر اخي العزيز ابراهيم

الكود شغام 100%

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



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


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