الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نتائج الاسعلام

مغلق
بدأه ريم السعودية في 7 أكتوبر 2007 · 7 رد · 1,217 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل يمكن عرض نتائج الاستعلام بستخدام

DataGrid

S.rar

#2

هل يمكن تطبيق ذلك

#3

نعم يمكن وسنقوم بعمل ذلك عن طريق الكود في خطوات كما يلي

جعل الشبكة من اليمين إلى اليسار بالكود التالي

	Grid1.ColAlignment(0) = 3
	Grid1.ColAlignment(1) = 3
	Grid1.ColAlignment(2) = 1
	Grid1.ColAlignment(3) = 1

توسيط عناوين الأعمدة بالكود التالي

	Grid1.FixedAlignment(0) = 4
	Grid1.FixedAlignment(1) = 4
	Grid1.FixedAlignment(2) = 4
	Grid1.FixedAlignment(3) = 4

ضبط عرض الأعمدة بالكود التالي

	Grid1.ColWidth(0) = 1000
	Grid1.ColWidth(1) = 800
	Grid1.ColWidth(2) = 1000
	Grid1.ColWidth(3) = 3000

تلوين الحقل أو الصف أو الحمود المحدد بالسطر التالي

	Grid1.FocusRect = flexFocusHeavy = True

جعل عناوين للأعمدة بالكود التالي

   Grid1.Col = 0
	Grid1.Row = 0
	Grid1.Text = "A"
	Grid1.Col = 1
	Grid1.Row = 0
	Grid1.Text = "B"
	Grid1.Col = 2
	Grid1.Row = 0
	Grid1.Text = "C"
	Grid1.Col = 3
	Grid1.Row = 0
	Grid1.Text = "D"

إنشاء وحدة نمطية على مستوى النموذج تقوم بملىء الشبكة بالبيانات كما يلي

Private Sub byanat()
	Dim MyDatabase As Database
	Dim MyTable As Recordset
	Dim MySQL As String
	Set MyDatabase = CurrentDb
	 Dim x As Integer

		MySQL = "Select * from QR1"


	Set MyTable = MyDatabase.OpenRecordset(MySQL, DB_OPEN_DYNASET)
				If MyTable.RecordCount > 0 Then
			MyTable.MoveLast
			MyTable.MoveFirst
			x = Val(MyTable.RecordCount)
			Grid1.Rows = x + 2 'لتحديد عدد الصفوف في الشبكة
			Grid1.Clear
			FillGrid
		Do While Not MyTable.EOF() 'اشتغل طالما لم يصل المؤشر الى نهايةالسجلات
			For I = 1 To x
			Grid1.TextMatrix(I, 0) = MyTable.Fields("A").Value
			Grid1.TextMatrix(I, 1) = MyTable.Fields("B").Value
			Grid1.TextMatrix(I, 2) = MyTable.Fields("C").Value
			Grid1.TextMatrix(I, 3) = MyTable.Fields("D").Value
				MyTable.MoveNext
			Next I
		Loop
	End If



End Sub

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

Grid1.Clear
Call TRf
Call FillGrid
FillGrid
Grid1.Rows = 1
Call byanat

وهذه الأكواد كاملة

Private Sub TRf()

	Grid1.ColAlignment(0) = 3
	Grid1.ColAlignment(1) = 3
	Grid1.ColAlignment(2) = 1
	Grid1.ColAlignment(3) = 1



	Grid1.FixedAlignment(0) = 4
	Grid1.FixedAlignment(1) = 4
	Grid1.FixedAlignment(2) = 4
	Grid1.FixedAlignment(3) = 4



	Grid1.ColWidth(0) = 1000
	Grid1.ColWidth(1) = 800
	Grid1.ColWidth(2) = 1000
	Grid1.ColWidth(3) = 3000

	Grid1.FocusRect = flexFocusHeavy = True
End Sub
Private Sub FillGrid()


	Grid1.Col = 0
	Grid1.Row = 0
	Grid1.Text = "A"
	Grid1.Col = 1
	Grid1.Row = 0
	Grid1.Text = "B"
	Grid1.Col = 2
	Grid1.Row = 0
	Grid1.Text = "C"
	Grid1.Col = 3
	Grid1.Row = 0
	Grid1.Text = "D"
End Sub

Private Sub byanat()
	Dim MyDatabase As Database
	Dim MyTable As Recordset
	Dim MySQL As String
	Set MyDatabase = CurrentDb
	 Dim x As Integer

		MySQL = "Select * from QR1"


	Set MyTable = MyDatabase.OpenRecordset(MySQL, DB_OPEN_DYNASET)
				If MyTable.RecordCount > 0 Then
			MyTable.MoveLast
			MyTable.MoveFirst
			x = Val(MyTable.RecordCount)
			Grid1.Rows = x + 2
			Grid1.Clear
			FillGrid
		Do While Not MyTable.EOF()
			For I = 1 To x
			Grid1.TextMatrix(I, 0) = MyTable.Fields("A").Value
			Grid1.TextMatrix(I, 1) = MyTable.Fields("B").Value
			Grid1.TextMatrix(I, 2) = MyTable.Fields("C").Value
			Grid1.TextMatrix(I, 3) = MyTable.Fields("D").Value
				MyTable.MoveNext
			Next I
		Loop
	End If



End Sub


Private Sub Form_Load()
Grid1.Clear
Call TRf
Call FillGrid
FillGrid
Grid1.Rows = 1
Call byanat

End Sub

وهذا مثالك بعد عمل المطلوب

S.rar

#4

مشكور اخي كفيت وماقصرت لكن كيف يمكن وضع معيار من خلال تكست في النموذج مثل من تاريخ الى تاريخ او اي معيارمثل معايير الاستعلام حيث تظهر نتيجة المعير في الداتا جرد

حاولت لكن لم تنجح معى

#5

السلام عليكم

الأخ الكريم مصلح الحريصي .. بارك الله فيك

رائع والله ماسطرته أناملك .. الله يعطيك العافية ياغالي

الأخت ريم السعودية في الملف المرفق تعديل على البرنامج السابق

حيث أصبح يعمل بمعيارين

الاول - اظهار النتيجة في الداتاغريد ( بين تاريحين )

الثاني - اظهار النتيجة في الداتاغريد ( بتاريخ محدد )

أتمنى لك التوفبق

EKSEER

Ek_Datagrid.rar

#6

بارك الله فيك أخي اكسير

هناك طريقة تغنيك عن إنشاء جدول وكود الإلحاق ثم عرض البيانات من ذلك الجدول كلما عليك فعله هو إسناد جملة شرط Where إلى جملة Selectالتالي:

استبدل السطر التالي

MySQL = "Select * from sdq"

بالسطر التالي

MySQL = "Select * from tab Where [Date]Between #" & Me.SearchDate & "# And #" & Me.SearchDate2 & "#"

ثم في حدث زر عرض ضع الكود التالي

 Grid1.Clear
 FillGrid
 TRf
 Grid1.Rows = 1
 Call byanat

وإذا رغبت في مزيد من خيارات البحث مثلاً تاريخ معين _فترة بين تاريخين _ بالاسم _ كلما عليك فعله هو وضع خيارات وإنشاء متغير تخزن فيه الشرط بناء على اختيار المستخدم وتسند قيمة المتغير كشرط في جملة select

#7

أخي مصلح .. وفقك الله

طريقتك رائعة ويعلم الله انني سبق ووضعت الاستعلام المذكور

في المتغير MySQL لكن عندما فكرت في معيار البحث الثاني رأيت

أن طريقة إنشاء جدول مساعد تأتي بذات النتيجة .. وعلى العموم تعددت الحلول

والنتيجة واحدة .. ولو أن طريقتك برمجيا أسهل وأوضح .. وكل يوم نتعلم منك وفقك الله

تحياتي لك أبا سارة

أخوكم / إكسير الحياة

تم تعديل هذه المشاركة بواسطة ekseer في 2 نوفمبر 2007 في 23:20

#8

أخي أكسير

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

والنتيجة واحدة

نعم صحيح وطريتك صحيحة 100/100 وتؤدي الغرض بكل اقتدار وما أوردته هو من باب الأختصار فقط ولم أتي بجديد

اقتباس
وكل يوم نتعلم منك وفقك الله

العلم أخذ وعطاء فكم استفدت منك ومن كل الأعضاء في هذا المنتدى

وفق الله الجميع لفعل الخير وكسب الأجر والمثوبة

تم تعديل هذه المشاركة بواسطة مصلح الحريصي في 2 نوفمبر 2007 في 23:03

هذا الموضوع مغلق.

مواضيع مشابهة