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

نسخة كاملة : [ تمّ الحل ] : تنسيق التاريخ بقاعدة البيانات : الأكسس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السّلام عليكم و رحمة الله و بركاته
سادتي الأفاضل .. لو ممكن أجد لديكم الفكرة المناسبة لتصحيح الخلل ..
أقوم باستيراد البيانات من ملف الإكسل إلى الداتا جريد .. و التاريخ كما هو مبيّن بملف الإكسل أو على الداتا جريد .. يظهر بطريقة عادية جدا .. بمعنى تاريخ فقط بدون .. توقيت ..
المشكلة .. عند التصدير من الداتا جريد إلى الجدول بقاعدة البيانات الأكسس .. يتحول التاريخ إلى : تاريخ و توقيت
مع العلم أنّ التاريخ بجدول الأكسس من نوع نصّي و ليس تاريخ


أين الخلل برأيكم .. بارك الله فيكم و لكم مقدما و جزاكم خير الجزاء
تحياتي واحتراماتي
السلام عليكم ورحمة الله وبركاته
اخي عبد العزيز هل تقوم بتصدير البيانات الى الاكسس ام تقوم بالحفظ؟
(02-06-19, 03:31 AM)ابراهيم ايبو كتب : [ -> ]
السلام عليكم ورحمة الله وبركاته
اخي عبد العزيز هل تقوم بتصدير البيانات الى الاكسس ام تقوم بالحفظ؟

السّلام عليكم و رحمة الله و بركاته
أهلا بالأخ الغالي " إبراهيم إيبو " ..
أنا أقوم بعملية الحفظ بالجملة المتعارف عليها INSERT INTO
و هذا الكود المستعمل في عملية الحفظ ..
كود :
   Private Sub Export_Data_Grid_View_To_Access_Table()
       Try
           Dim StudentId As Integer, FirstName, LastName, Birthday, LieuBirth, Gender, Nationalite As String

           For xyz As Integer = 0 To DataGridView1.Rows.Count - 1

               StudentId = Me.DataGridView1.Rows(xyz).Cells(0).Value
               FirstName = Me.DataGridView1.Rows(xyz).Cells(1).Value.ToString
               LastName = Me.DataGridView1.Rows(xyz).Cells(2).Value.ToString
               Birthday = Me.DataGridView1.Rows(xyz).Cells(3).Value.ToString
               LieuBirth = Me.DataGridView1.Rows(xyz).Cells(4).Value.ToString
               Gender = Me.DataGridView1.Rows(xyz).Cells(5).Value.ToString
               Nationalite = Me.DataGridView1.Rows(xyz).Cells(6).Value.ToString


               Dim Sql_Str As String = "INSERT INTO TBL_STUDENT( STUDENT_Id, STUDENT_Name, STUDENT_Surname, STUDENT_Date_Naissance, STUDENT_Lieu_Naissance, STUDENT_Gender, STUDENT_Nationalite ) Values ( @STUDENT_Id, @STUDENT_Name, @STUDENT_Surname, @STUDENT_Date_Naissance, @STUDENT_Lieu_Naissance, @STUDENT_Gender, @STUDENT_Nationalite)"
               Dim Cmd As New OleDb.OleDbCommand(Sql_Str, Conne)

               Cmd.Parameters.AddWithValue("@STUDENT_Id", StudentId)
               Cmd.Parameters.AddWithValue("@STUDENT_Name", FirstName)
               Cmd.Parameters.AddWithValue("@STUDENT_Surname", LastName)
               Cmd.Parameters.AddWithValue("@STUDENT_Date_Naissance", Birthday)
               Cmd.Parameters.AddWithValue("@STUDENT_Lieu_Naissance", LieuBirth)
               Cmd.Parameters.AddWithValue("@STUDENT_Gender", Gender)
               Cmd.Parameters.AddWithValue("@STUDENT_Nationalite", Nationalite)

               Cmd.ExecuteNonQuery()
               Cmd.Dispose()
           Next
           Conne.Close()
           MessageBox.Show("تمّ تصدير البيانات بنجاح", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
       Catch ex As OleDb.OleDbException
           MsgBox(ex.Message, MsgBoxStyle.Critical, "خطأ برمجي غير معيّن")
       Catch ex As Exception
           MsgBox(ex.Message, MsgBoxStyle.Critical, "خطأ عام غير معيّن")
       End Try
   End Sub
اخي عبد العزيز 
بما انك تدخل التواريخ بشكل نص افحص حقول التاريخ في قاعدة البيانات ربما تكون من نوع تاريخ وهذا ماأظن
قم بجعل تلك الحقول Text
(02-06-19, 03:57 AM)ابراهيم ايبو كتب : [ -> ]
اخي عبد العزيز 
بما انك تدخل التواريخ بشكل نص افحص حقول التاريخ في قاعدة البيانات ربما تكون من نوع تاريخ وهذا ماأظن
قم بجعل تلك الحقول Text


 أخي الغالي .. أنا جد متأكّد أنّ الحقل بجدول الأكسس هو من نوع نصّي .. لاحظ لو تكرّمت الصورة أدناه

تحياتي
تعال هنا وعد السطرين التالية :


كود :
 Birthday = Me.DataGridView1.Rows(xyz).Cells(3).Value.ToString

لتصبح كالتالي :


كود :
 Birthday = Me.DataGridView1.Rows(xyz).Cells(3).Value.ToString("dd/MM/yyyy")
اخي عبد العزيز كلمة text  هكذا تكتب وليس هكذا  Texte 
اليك مثال فيه التاريخ بشكل نص اكتب التاريخ كبفما تريد سيحفظه في القاعدة كما هو 
(02-06-19, 04:31 AM)حريف برمجة كتب : [ -> ]تعال هنا وعد السطرين التالية :


كود :
 Birthday = Me.DataGridView1.Rows(xyz).Cells(3).Value.ToString

لتصبح كالتالي :


كود :
 Birthday = Me.DataGridView1.Rows(xyz).Cells(3).Value.ToString("dd/MM/yyyy")

السلام عليكم و رحمة الله و بركاته
تسلم أستاذنا الغالي " حريف برمجة " على المساهمة .. لكن المشكل بقي قائمًا ..
تحياتي واحتراماتي

(02-06-19, 04:46 AM)ابراهيم ايبو كتب : [ -> ]
اخي عبد العزيز كلمة text  هكذا تكتب وليس هكذا  Texte 
اليك مثال فيه التاريخ بشكل نص اكتب التاريخ كبفما تريد سيحفظه في القاعدة كما هو 

فاتتك هذه أخي الحبيب الغالي " إبراهيم إيبو " و لم تخطر ببالك .. الأوفيس لديّ نسخة فرنسية و لذلك فعبارة Text تكتب Texte
سأجرّب الملف و أكيد سأخبرك بالنتيجة إن شاء الله
تحياتي واحتراماتي لشخصك الكريم

قمت بتحويل الكود أخي الغالي " ابراهيم " بهذا النسق تماما مثل كود سيادتك .. و جربت الحفظ و بقي المشكل قائما .. ما حيرني فعلا هو أنّ صيغة التاريخ من نوع نصي من المفروض أن يأخذ شكل ما هو عليه الداتا جريد فيو .. سأحاول غدا بإذن الله وضع الملف كاملا على الأقل لمشاركتي الإشكالية عن قرب .. بارك الله في الجميع
كود :
    Cmd.Parameters.Add(New OleDbParameter("@STUDENT_Id", OleDbType.Integer)).Value = StudentId
               Cmd.Parameters.Add(New OleDbParameter("@STUDENT_Name", OleDbType.VarWChar)).Value = FirstName
               Cmd.Parameters.Add(New OleDbParameter("@STUDENT_Surname", OleDbType.VarWChar)).Value = LastName
و عليكم  السلام ورحمة الله وبركاته
اذا كان نص التاريخ بالاساس من دون توقيت هذا يعني انه بتنسيق ShortDate تاكد من نوع الحقل في الاكسس  ومن  تنسيقه.
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك و جزاك الله خيرا أستاذنا العزيز " سعود " .. و كل الإخوة الأفاضل الذين شاركوني المشكلة
فعلا لم أجد الحل لهذه الإشكالية .. فالرجاء لو سمحتم تجربة الملف بالمرفقات .. و بارك الله في الجميع مقدما .. ملف الإكسل موجود بالمرفقات .
تحياتي
الصفحات : 1 2