السلام عليكم
انا اريد استخدام الاداه SmartReport.ocx لانشاء التقارير الاختياريه
فهل حد يساعدني (ولو شويه !!) في تصدير ال DataSet او الى جدول في اكسس ؟
السؤال انطرح من قبل في قسم ال sql لكن محد جاوب عليه
ممكن تساعدوني ؟
وشكرا
السلام عليكم
انا اريد استخدام الاداه SmartReport.ocx لانشاء التقارير الاختياريه
فهل حد يساعدني (ولو شويه !!) في تصدير ال DataSet او الى جدول في اكسس ؟
السؤال انطرح من قبل في قسم ال sql لكن محد جاوب عليه
ممكن تساعدوني ؟
وشكرا
تم تعديل هذه المشاركة بواسطة معتز شمس في 29 سبتمبر 2005 في 21:54
abo_alzobaer@hotmail.com
أنا لا أعلم ما فائدة هذه الأداه ؟ اخبرني ماتريد أن تفعل ؟
هل تريد نقل احدى الـ Data الموجوده في الـ DataSet الى Access ?
تم تعديل هذه المشاركة بواسطة معتز شمس في 29 سبتمبر 2005 في 21:58
لا أعلم طريقة مباشرة لحفظ محتوى الـ DataSet الى Access لكن يمكنك حفظ محتوياتها الى ملف XML كالتلي:
DataSet.WriteXML("XML file path to save");بهذه الطريقة يمكنك بعد ذلك فعل ما تريد بملف الـ XML ..
رأس الحكمة الإيمان بالله
اخي العزيز معتز شمس
الاداه هذه موجوده بالمنتدى
ووظيفتها انك تمرر لها select statment تعطيك ريبورت بالناتج
وهي من تصميم الاستاذ محمد بدوي
لكن عيبها انها تشتغل من اكسس فقط وليس من sql
لذلك انا عندي بيانات sql server اريد اخذ select معينه من الداتابيز ...ولتكن :
select id,name from student where id =15 and Sdate like '15/02/1985'
راح تطلع لي ناتج معين
الناتج هذا ابغي اخزنه بالداتا بيز اكسس كجدول باسم repTable
علشان اقدر اطلع منه الريبورت !
حاولت اتواصل مع محمد بدوي بخصوص الاداه هذي لكن الظاهر انه مشغول !
لذلك اريد طريقة التصدير
فكرت بطريقة عمل جدول
وافراغ البيانات اليه بواسطة ال Loop
لكنه مانفع وما استوعبتها
------
اخي محمد عبدالعليم
وجهة نظر جميله لكني للاسف اجهلها !!
وشكرا لمرورك ياعزيزي
abo_alzobaer@hotmail.com
اقتباسالناتج هذا ابغي اخزنه بالداتا بيز اكسس كجدول باسم repTableعلشان اقدر اطلع منه الريبورت !
يـــــاه طيب وليه اللفه الكبيره دي ... ماتطلع الـ Report من الـ SQL Server على طول وخلاص.
عموما لو انت مصمم على نقل الـ Data من SQL الى Access .. ده مثال أنا كتبتهولك بنائا على جملة الـ Select التي قمت أنت بكتابتها في الأعلى :
بافتراض أن الجدول في Access اسمه repTable موجود في ملف اسمه accessDataBase.mdb ويحتوي بالترتيب من اليسار على هذه الأعمده ::
id , name , sdate
وبافتراض أن الجدول الموجود في SQL اسمه mySQLTable موجود في قاعدة بيانات اسمها MyDataBase وأيضا صمم بنفس تصميم جدول الأكسيس id , name , sdate.
اكتب الكود مع تغيير ما يلزم ::
SqlConnection mySQLConnection;
SqlCommand mySQLCommand;
SqlDataReader mySQLReader;
OleDbConnection myAccessConnection;
OleDbCommand myAccessCommand;
// بنظبط الاتصال بتاع السيكول وبعدين نفتحه
mySQLConnection = new SqlConnection("data source=localhost; initial catalog=MyDataBase; Integrated Security=true;");
mySQLConnection.Open();
// بنظبط الاتصال بتاع الأكسيس ونفتحه
myAccessConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=accessDataBase.mdb");
myAccessConnection.Open();
// بنحط الكويري وننفذ الكوماند
mySQLCommand = new SqlCommand("Select id,name,sdate from mySQLTable",mySQLConnection);
mySQLReader = mySQLCommand.ExecuteReader();
// بنحضر كوماند الأكسيس , وجملة الاضافه تحتوي على علامات استفهام لأننا سنستخدم الباراميترز
myAccessCommand = new OleDbCommand(@"insert into repTable values(?,?,?)",myAccessConnection);
// نضيف الباراميترز للكوماند ويجب أن يكونوا بنفس الترتيب الذي اتبعناه في تصميم الجدول.
myAccessCommand.Parameters.Add("age",OleDbType.Integer);
myAccessCommand.Parameters.Add("name",OleDbType.LongVarChar);
myAccessCommand.Parameters.Add("sdate",OleDbType.Date);
// نقرأ من السيكول
while(mySQLReader.Read())
{
// نسند البيانات إلى البراميترز الخاصه بالكوماند الخاص بالأكسيس على أساس البيانات القادمه من الجدول الموجود في السيكول
myAccessCommand.Parameters[0].Value = mySQLReader[0];
myAccessCommand.Parameters[1].Value = mySQLReader[1];
myAccessCommand.Parameters[2].Value = mySQLReader[2];
// ننفذ الكوماند الخاص بالأكسيس ليضيف البيانات
myAccessCommand.ExecuteNonQuery();
// ProgressBar ابأه ظبط كدا حاجه تصبر المستخدم .. مثلا
}
// :( بنقفل الحاجات بأه خلاص
mySQLReader.Close();
mySQLConnection.Close();
myAccessConnection.Close();اشكرك جدا يا اعز الناس !
انا ابغيها لاداة الاستناذ محمد بدوي SmartReport لانها لا تأخذ الا من الاكسس
انا حليتها بطريقة ثانيه وهي عمل اللوب على كل كولوم وفيلد
طريقة سهله وجميله
سارفق الكود قريبا باذن الله
abo_alzobaer@hotmail.com
هذا الموضوع مغلق.