لغات البرمجة لغة الفيجوال دوت نت (VB.NET)






  • رقم العضوية
    15049
  • المشاركات
    61
عضو فعال
تاريخ التسجيل: Oct 2004
مستوى التقييم: 3
layan2000
# :1
سؤال في الـ MSHFlexGrid

السلام عليكم

اعزائي الكرام في هذا المنتدى الغالي

لدي سؤالين وأريد الأجابة عاجلاً ... ولكن (كرماً لا أمراً) ليس بوضع روابط لشروحات لاتدعم ولا تجيب على سؤالي بالكامل
وإنما تخدم جزء من السؤال وتترك الجزء الأخر
لذلك لا أستطيع الأستفادة من هذه الروابط ولا أجد الحل الكامل والجواب الشافي لأستفساراتي وأسئلتي

وللعلم مشروعي برنامج مربوط بقاعدة بيانات بدأت به من تاريخ 9/5/1427 هـ وإلى الأن لم انتهي منه وليس لكبر حجمه أويتطلب وقتاً طويلاً ولكن لعدم معرفتي بالفيجوال بيسك
وأبشركم أنني أستفدت فائده كبيرة من هذا المنتدى الغالي وبعض شروحات الأعضاء المتميزين
جعل الله جميع أعمالهم في موازين حسناتهم وغفر لهم ولوالديهم ومن يرد على أسئلتي وأستفساراتي


طلبي الأول :

1- عندي فورم ويوجد عليه أزرار وتكست بوكسز و MSHFlexGrid وكل شئ يعمل بشكل جيد
المطلوب كالتالي :
. أريد عندما يكتب المستخدم في الـ Text17 جزء أو كامل الأسم ويضغط على زر تقرير يظهر في التقرير الأسم الذي بحث عنه المستخدم وليس الأسم الأول أو السجل الأول في القاعدة .

. أريد عندما يكتب المستخدم في الـ Text17 جزء أو كامل الأسم ويضغط على زر طباعة يطبع الأسم الذي بحث عنه المستخدم وليس الأسم الأول أو السجل الأول في القاعدة .
هذا طلبي أو سؤالي الأول


طلبي الثاني :
أريد كود نقل جدول أسمه tb1 من القاعدة db1 إلى القاعدة db2 وبنفس الأسم tb1 وأستبدال الجدول الموجود tb1

هذا كل ما أريد منكم ولكم جزيل الشكر والعرفان

اعذروني على الأطالة




لدعم قناة وسام الحمد على اليوتيوب

  • رقم العضوية
    25230
  • الإقامة
    Palestine
  • المشاركات
    1,478
عضوية الشرف
تاريخ التسجيل: Sep 2005
مستوى التقييم: 50
Azharo تم تعطيل التقييم
# :2
وعليكم السلام



سامحني لتأخري في الرد على اسئلتك لعدم تمكني دخول الانترنت

بالنسبة لسؤالك الاول لم توضح ما هو نوع التقرير او هل تعني انه سيتم عرض نتيجة البحث في نفس MSHFlexGrid الموجود على الفورم

على العموم اليك هذا المثال العملي لكيفية عمل بحث متطور لاكثر من TextBox في نفس الوقت وعرض النتيجة في Grid

كود:
Private Sub CmdSearch_Click() Call SQL_Query End Sub
------------------------------------

كود:
Sub SQL_Query() Call NewGrid -- بحث باستخدام حقل الاسم والعمر والعنوان (احد الحقول او جميعها )
sql_1 = " select * from TableName where true" If Trim(txtName.Text) <> "" Then sql_1 = sql_1 & " AND [Name] like '" & Trim(txtName.Text) & "*' " End If If Trim(TxtAge.Text) <> "" Then sql_1 = sql_1 & " AND [Age] like '" & Trim(TxtAge.Text) & "*' " End If If Trim(TxtAddress.Text) <> "" Then sql_1 = sql_1 & " AND [Address] like '" & Trim(TxtAddress.Text) & "*' " End If sql_1 = sql_1 & " ORDER BY [Name] " Set My_Set = My_DB.OpenRecordset(sql_1) If Not My_Set.EOF Then Do While Not My_Set.EOF
aa = "" aa = My_Set!name Grid1.AddItem aa, Grid1.Rows - 1
My_Set.MoveNext Loop End If Grid1.Visible = True Grid1.Col = 0 Grid1.SetFocus End Sub
------------------------------------------

-- تهيئة Grid قبل عرض البيانات به

كود:
Sub NewGrid() Grid1.Cols = 2 Grid1.Rows = 2 Grid1.FixedRows = 1 Grid1.FixedCols = 0 Grid1.Row = 0 Grid1.Col = 0: Grid1.ColWidth(1) = 2200: Grid1.Text = "الرقم" Grid1.Col = 1: Grid1.ColWidth(0) = 700: Grid1.Text = "الاســم" Grid1.Row = 1 Grid1.Col = 0: Grid1.ColWidth(1) = 2200: Grid1.Text = "" Grid1.Col = 1: Grid1.ColWidth(0) = 700: Grid1.Text = "" Grid1.FontSize = 9 Grid1.Left = 50 Grid1.Top = 1785 Grid1.Height = 6600 Grid1.Width = 3060 End Sub
--------------------------

وهذه طريقة اخرى للبحث ولكن باستخدام
Data Control بالاضافة الى DBGrid


كود:
 If Not Data1.Recordset.EOF Then Data1.Recordset.MoveLast
كود:
 
 
Data1.RecordSource = "select * From TableName Where FieldName ='" & Trim(Text17.Text) & "' order by FieldName "
Data1.Refresh



===

وبالنسبة للجزء الثاني من السؤال انا سافترض ان التقرير مصمم باستخدام Crystal Report


كود:
CrystalReport1.SelectionFormula = "{TableName.Name} ='" & Trim(TxtName.Text) & "'"
كود:
 
 
CrystalReport1.Action = 1

==
هذا تعريف المتغيرات المستخدمة يمكنك وضعه في General / Declarations على مسنوى نفس الفورم


او في Module على مسنوى المشروع كله


كود:
Global My_DB As Database
Global My_Set As Recordset Global sql_2 As String Dim myset As Dynaset



=

بالنسبة لطلبك الثاني يمكنك استخدام الفكرة التالية


حذف جميع البيانات الموجودة في الجدول tb1 من القاعدة db2 ومن ثم اضافة البيانات الموجودة في tb1 من القاعدة db1 اليه كالتالي


كود:
DB2.Execute " delete * from tb1 where true"
sql = " INSERT INTO db2.tb1 " sql = sql & " SELECT * " sql = sql & " FROM db1.tb1 where TRUE "



والله المستعان