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

مين يساعدني في توضيح بعض الاجزاء في هذا الكود

مغلق
بدأه k.f.u في 12 مارس 2007 · 6 رد · 790 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ...

ممكن توضيح لبعض الجمل في هذا الكود طبعا بتلاحظون ان الكود طويل !

للان كود نموذجين لكنهم يعملون على شاشة واحدة وليس المطلوب هو شرح الكود بالكامل وإنما اجزاء منه ,,

وقبل الاطلاع على هذا الكود اود أن اوضح نقطة مهمه وهي ان هذا الكود عبارة عن كود نموذج متصل بقاعدة بيانات أكسيس ,,,

الشيء الاخر هو أنا أريد الاجابة على بعض الاسئلة وليس شرح الكود بالكامل .......... بعض الاجزاء فقط

والاسئلة هي كالتالي

Private Sub Command3_Click()
If RS.State = 1 Then RS.Close
				   RS.Open "select * from ven_Raw where No_inv = '" & Trim(Text1.Text) & "'", CN, adOpenStatic, adLockOptimistic
				   If RS.RecordCount > 0 Then
					 msg = MsgBox("يوجد خدمات ملحقة لهذا الحجز , هل انت متأكد من الحذف", vbYesNo)
						If msg = vbYes Then
							CN.Execute "Delete * from ven_Raw where No_inv = '" & Text1.Text & "'"
							CN.Execute "Delete * from Det_ven_Raw where No_inv = '" & Text1.Text & "'"

لية نكتب Rs.state ماذا نعني بـ state

ولماذا نضعها = 1 ماذا يعني 1

وأيضا الجملة adOpenStatic, adLockOptimistic هل هذه ترمز للانواع سجلات وماذا تعني

وماذا نعني بالجملة CN.Execute

أما الفقرة المبهمة جدا بالنسبة لي هي

Public Sub SetComboData(FildID As String, FildName As String, Tbl As String, Obj As DataCombo)
	Dim RS As ADODB.Recordset
	Dim StrSQL As String
	'---------------------------
	Set RS = New ADODB.Recordset
	StrSQL = "Select [" & FildID & "]," & "[" & FildName & "]" & " from " & Tbl & ""


	RS.Open StrSQL, CN, adOpenStatic, adLockOptimistic
	Set Obj.RowSource = RS
	Obj.ListField = FildName
	Obj.BoundColumn = FildID
	If ResBT > 0 Then Obj.BoundText = ResBT

End Sub

واليكم الكود بالكامل

Private Sub Command1_Click()
If Text1.Text = "" Then Exit Sub
RS.AddNew
	 RS!No_inv = Text1.Text
	 RS!No_ven = DataCombo1.BoundText
	 RS!Date_ven = Text3.Text
	RS.Update
MsgBox "تم اضافة الفاتورة", vbInformation, "إضافة "
End Sub

Private Sub Command2_Click()
	 RS!No_inv = Text1.Text
	 RS!No_ven = DataCombo1.BoundText
	 RS!Date_ven = Text3.Text
	RS.Update
MsgBox "تم تعديل بيانات الفاتورة", vbInformation, "تعديل"
End Sub

Private Sub Command3_Click()
If RS.State = 1 Then RS.Close
				   RS.Open "select * from ven_Raw where No_inv = '" & Trim(Text1.Text) & "'", CN, adOpenStatic, adLockOptimistic
				   If RS.RecordCount > 0 Then
					 msg = MsgBox("يوجد خدمات ملحقة لهذا الحجز , هل انت متأكد من الحذف", vbYesNo)
						If msg = vbYes Then
							CN.Execute "Delete * from ven_Raw where No_inv = '" & Text1.Text & "'"
							CN.Execute "Delete * from Det_ven_Raw where No_inv = '" & Text1.Text & "'"
							MsgBox "تم الحذف بنجاح", vbInformation, "حذف"
							Text1_KeyPress (13)
						End If
						End If
End Sub

Private Sub Command4_Click()
If Text1.Text = "" Then
	MsgBox "أختاري رقم الفاتورة من فضلك", vbInformation, "Reservation"
		Else
	Res_No = Text1.Text
Form2.Show
End If
End Sub

Private Sub Command5_Click()
Unload Me
End Sub


Private Sub Form_Load()
Set RS = New ADODB.Recordset
Set Rs1 = New ADODB.Recordset
Set Rs2 = New ADODB.Recordset
SetComboData "No_ven", "Ename_ven", "vendors", DataCombo1
If RS.State = 1 Then RS.Close
	  If RS.State = 1 Then RS.Close
		RS.Open "select * from ven_Raw where No_inv = '" & Trim(Text1.Text) & "'", CN, adOpenStatic, adLockOptimistic
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
			GetRecord
				Else
					   Text1.Locked = False
					   Text3.Locked = False
					 '  Text1.Text = ""
						Text3.Text = ""
						End If
End Sub
Function GetRecord()
		If RS.State = 1 Then RS.Close
		If Rs1.State = 1 Then Rs1.Close

		RS.Open "select * from ven_Raw where No_inv = '" & Trim(Text1.Text) & "'", CN, adOpenStatic, adLockOptimistic
				If RS.RecordCount > 0 Then
						DataCombo1.BoundText = RS!No_ven
						Text3.Text = RS.Fields(2)
												Rs1.Open "Select Det_ven_Raw.No_raw as[رقم الخامة] ,Rawmatireals.Ename_raw as[أسم الخامة],Qu_ven as[الكمية المستوردة],Price_Raw as[سعر التوريد] from Det_ven_Raw left join Rawmatireals on  Det_ven_Raw.No_raw =Rawmatireals.No_raw where No_inv = '" & Trim(Text1.Text) & "'", CN
									Set DataGrid1.DataSource = Rs1
										 Else
									MsgBox "لا يوجد بيانات", vbInformation, "خطأ"

								End If


End Function

Public Sub SetComboData(FildID As String, FildName As String, Tbl As String, Obj As DataCombo)
	Dim RS As ADODB.Recordset
	Dim StrSQL As String
	'---------------------------
	Set RS = New ADODB.Recordset
	StrSQL = "Select [" & FildID & "]," & "[" & FildName & "]" & " from " & Tbl & ""


	RS.Open StrSQL, CN, adOpenStatic, adLockOptimistic
	Set Obj.RowSource = RS
	Obj.ListField = FildName
	Obj.BoundColumn = FildID
	If ResBT > 0 Then Obj.BoundText = ResBT

End Sub

بقية الكود 

[code]Public Sub SetComboData(FildID As String, FildName As String, Tbl As String, Obj As DataCombo)
	Dim RS As ADODB.Recordset
	Dim StrSQL As String
	'---------------------------
	Set RS = New ADODB.Recordset
	StrSQL = "Select [" & FildID & "]," & "[" & FildName & "]" & " from " & Tbl & ""


	RS.Open StrSQL, CN, adOpenStatic, adLockOptimistic
	Set Obj.RowSource = RS
	Obj.ListField = FildName
	Obj.BoundColumn = FildID
	If ResBT > 0 Then Obj.BoundText = ResBT

End Sub
Private Sub Command1_Click()
If Rs2.State = 1 Then Rs2.Close
   Rs2.Open "select * from Det_ven_Raw ", CN, adOpenStatic, adLockOptimistic
		Rs2.AddNew
				Rs2!No_raw = DataCombo1.BoundText
				Rs2!No_inv = Res_No
				Rs2!Qu_ven = Text1.Text
				Rs2!Price_Raw = Text2.Text
		Rs2.Update
		CN.Execute "Update rawmatireals set qw_available = val(qw_available) +   " & Val(Text1.Text) & " where No_raw = '" & DataCombo1.BoundText & "' "
		MsgBox "تمت العملية بنجاح", vbInformation, "حفظ"
Exit Sub
errorS:
MsgBox err.Description
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()
  SetComboData "No_raw", "Ename_raw", "Rawmatireals", DataCombo1
End Sub


Private Sub Form_Unload(Cancel As Integer)
Form17.GetRecord
End Sub

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#2

السلام عليكم ورحمة الله وبركاته .

اجابة على اسالتك::::: واسف على الاختصار وهو لاني عنيي شغل بكرة بدري :wacko:

اقتباس
لية نكتب Rs.state ماذا نعني بـ state

تعني حالة Object وهو هنا الـ RS

حيث انه معرف من نوع Recordset والذي يستخدم في احضار البيانات.

و بما انه معرف على المستوى العام ( في وحدة برمجية بـ Public او في Genral في الفورم)

اذاً صلاحية تنتهي بانتهاء البرنامج لو كان في وحدة برمجية او اغلاق النموزج لو كان في الفورم فلا يمكن استخدام الخاصية Open مع Object من نوع Recordset مادام تم استخدامها سابقا الا بعد غلقة من خلال الخاصية Close والا سيحدث خطا .

وردا على سؤالك

اقتباس
ولماذا نضعها = 1 ماذا يعني 1
هناك قيمتين ترجعهما الخاصية state وهما اما { 0 } او { 1 }

0 >>>> اذاحالة الـ Object = Open اي تم استخدامة من قبل ويحمل بيانات ولا يمكن استخدامة الا بعد غلقة .

1 >>>> اذاحالة الـ Object = Close اي انه يمكن استخدمة وانه لا يحتوي على اي بيانات.

اقتباس
وأيضا الجملة adOpenStatic, adLockOptimistic هل هذه ترمز للانواع سجلات وماذا تعني

هذه طرق استرجاع السجلات وطرق استخدامها اي انك ممكن استخدامها للقراءه فقط او للقرائة والكتابة ..... الخ .

اقتباس
وماذا نعني بالجملة CN.Execute

CN هذا Object من نوع ADODB.Connection او ADODB.Command حيث انه اسرع طريقة لتنفيذ جملة SQL ولكن هذه الخاصية Execute لها ميزة جامده جدا انها ترجع بعدد السجلات التي تاثرت بجملة الـ SQL ففي مثالك جملة الـ SQL تقوم بحذف سجل او اكثر فتعود خاصية Execute بعدد السجلات التي تاثرت بعملية الحذف ...

اقتباس
أما الفقرة المبهمة جدا بالنسبة لي هي

اولا انه اجراء او PROCEDURE

Public Sub SetComboData(FildID As String, FildName As String, Tbl As String, Obj As DataCombo)

يتم تعريف الـ PROCEDURE على انه عام اي انه ممكن المناده علية من اي مكان على مستوى البرنامج عن طريق الكلمة المحجوزة Public مع الملاحظة انه يجب وضعة في ودة برمجية حتى تستطيع فعل ذلك ثم تسمية الـ PROCEDURE بـ {SetComboData}ثم تعرف ثلاثة متغيرات من نوع String

1 - FildID وهو على ما اعتقد يحمل قيمة الحقلى الذي يسمى ID

2 - FildName وهو على ما اعتقد يحمل قيمة الحقلى الذي يسمى Name

3 - Tbl وهو على ما اعتقد يحمل اسم الجدول الذي يسمى

4 - opj وهو متغير ايضا من نوع DataCombo)

Dim RS As ADODB.Recordset

تعريف Object من نوع ADODB.Recordset

Dim StrSQL As String

تعريف Object من نوع String لوضع الشكل النائي لجملة الـ SQL التي ستنفذ فية

Set RS = New ADODB.Recordset

تعريف متغيرجديد من هذا الكائن السابق تعريفة لاحضار البيانات فية

StrSQL = "Select [" & FildID & "]," & "[" & FildName & "]" & " from " & Tbl & ""

بناء جملة الـ SQL والتي توضح انها عبارة عن استعلام لااحضار الـعمود الذي يسمى ... و .... من .... والنقط يملى مكانها قيمة كل متغير من الثلاثة متغيرات السابق شرحها .

RS.Open StrSQL, CN, adOpenStatic, adLockOptimistic

تنفيذ جملة الـ SQL وذالك من خلال الخاصية Open للمتغير RS واعطاءه قيمة المتغير StrSQL الذي يحتوي على جملة الـ SQL ثم الكونكشن الذي يتم من خلالة تنفيذ الجملة ثم طريقة قتح او قراءة او احضار هذه السجلات.

Set Obj.RowSource = RS

اعطاء السجلات الذي يحملها الكائن او المتغير rs لل المتغير او الكائن Obj

Obj.ListField = FildName

جعل الخاصية ListField وهي التي تعرض او الجزء المرئي لل DataCombo الذي يتعامل معة المستخدم وهذه الخاصيه مثل Items الموجوده في الكمبو بوكس .

Obj.BoundColumn = FildID

جعل الخاصية BoundColumn وهي الجزء الغير مرئي للـ DataCombo حيث ان اذا قام المستخدم بعمل اختيار من DataCombo لاي Item مثل رقم 3 وقمت باحضار القيمة الحالية الذي يحملها ال BoundColumn تاتي بقيمة بقيمة Record رقم 3 ايضا في العمود الثاني الذي تحمله الخاصية وفي مثالنا سياتي لك بقيمة Record للعامود FildID الذي تم مساواته له .

ولتوضيح اكثر للـ Object من نوع DataCombo ان القيمه التي ترجعها BoundColumn تتغير بتغير اختيار المستخدم للـ Item الموجوده في DataCombo.

If ResBT > 0 Then Obj.BoundText = ResBT

الصراحة لا اعرف ما هذا المتغير او ابجيكت ايه ده .....

تحياتي A7med_prof ,,,,,

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#3

ماشاء الله تبارك الله ........ الله يجزيك خير ويدفع عنك البلاء

الله يجعله بموازين أعمالك يارب

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#4

الله ااااااااااااااامين يارب

يكفين دعوتك هذا ...

وارجو ان اكون وصلت لما تريديه

تحياتي ,,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#5

الله يجزيك كل خير أخي

كيف استطعت النظر الى هذا الكود وتفسيره انت مغامر

أنا اذا نظرت اليه بصير معاي دوار

لذلك بنصح الجميع يجنبوا النظر إلى الأكواد المشابهة لهذا الكود وخلوها للمختصين مثلك أخي A7med_prof

#6

احمد بروف كويس انك بصيت وجاوبت على الكود لانى كنت هجاوب باختصار لانى معنديش وقت + انى بتخنق من شغل الداتا بيس

بارك الله فيك

تم تعديل هذه المشاركة بواسطة حريف برمجة في 13 مارس 2007 في 23:01

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#7
اقتباس
الله يجزيك كل خير أخي

كيف استطعت النظر الى هذا الكود وتفسيره انت مغامر

أنا اذا نظرت اليه بصير معاي دوار

لذلك بنصح الجميع يجنبوا النظر إلى الأكواد المشابهة لهذا الكود وخلوها للمختصين مثلك أخي A7med_prof

هههههههههههههههههه

شكرا لك يا جووووووون

اقتباس
احمد بروف كويس انك بصيت وجاوبت على الكود لانى كنت هجاوب باختصار لانى معنديش وقت + انى بتخنق من شغل الداتا بيس

بارك الله فيك

ههههههههههههه

شكرا يا باشا وتتعوض المرة الجاية

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…