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

مشكلة في كود البحث

مغلق
بدأه OOOMMM في 19 أغسطس 2006 · 2 رد · 513 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يسعد الله ايامكم اخواني الاعزاء

طبعا انا اقوم باعداد برنامج خاص بالمدرسة

وقمت بنسخ مجموعة من الكودات من بعض برامج الاخوة

وبصورة خاصة نسخت خاصية او عملية البحث

لكن عند احول اجراء عملية البحث تظهر لي هذا المشكلة الموجودة في الصورة

ويشير الفحص على هذا الكود

فما هي المشكلة

Private Sub cmbFind_Click()

	If Len(Trim(txtFindText.Text)) = 0 Then
		MsgBox "الرجاء إدخال نص البحث", vbInformation, "البحث"
		txtFindText.SetFocus
		Exit Sub
	End If

	Call Full
	Call SelectField

	If fRs.State = adStateOpen Then fRs.Close
	Select Case sFull
		Case "Full"
			fRs.Open "Select * From Details Where  " & sField & " = '" & Trim(txtFindText.Text) & "'", CN, adOpenStatic, adLockPessimistic
		Case "StartWith"
			fRs.Open "Select * From Details Where " & sField & " Like '" & Trim(txtFindText.Text) & "%'", CN, adOpenStatic, adLockPessimistic
		Case "Contain"
			fRs.Open "Select * From Details Where  " & sField & " Like '%" & Trim(txtFindText.Text) & "%'", CN, adOpenStatic, adLockPessimistic
		Case "EndWith"
			fRs.Open "Select * From Details Where  " & sField & " Like '%" & Trim(txtFindText.Text) & "'", CN, adOpenStatic, adLockPessimistic
	End Select

	Set flxFind.DataSource = fRs

	With flxFind
		.TextArray(0) = "الرقم"
		.TextArray(1) = "الإسم"
		.TextArray(2) = "الرقم المدني"
		.TextArray(3) = "الصف"
		.TextArray(4) = "الشعبة"
		.TextArray(5) = "رقم هاتف ولي الامر"
	End With

	Call AutoResize
	lblFindRes.Caption = "عدد نتائج البحث هي : " & fRs.RecordCount & "نتائج / نتيجة"

	If fRs.RecordCount = 0 Then
		MsgBox "لا يوجد نتائج للبحث", vbInformation, "البحث"
	End If
End Sub

post-74260-1156006566_thumb.jpg

تم تعديل هذه المشاركة بواسطة OOOMMM في 19 أغسطس 2006 في 19:56

#2

هل انت متأكد من اسم الجدول

460.gif

#3

اعتقد الجدول صح

المهم هذا الكود بالكامل الموجود في فروم البحث من تعريف للقاعدة وامر البحث وغيره

Dim fRs As New ADODB.Recordset

Dim sField As String
Dim sFull As String

Private Sub SelectField()
	Select Case cmbFieldName.ListIndex
		Case 0
			sField = "ID"
		Case 1
			sField = "Name"

	End Select
End Sub
Private Sub Full()
	Select Case cmbFull.ListIndex
		Case 0
			sFull = "Full"
		Case 1
			sFull = "StartWith"
		Case 2
			sFull = "Contain"
		Case 3
			sFull = "EndWith"
	End Select
End Sub

Private Sub cmbFind_Click()

	If Len(Trim(txtFindText.Text)) = 0 Then
		MsgBox "الرجاء إدخال نص البحث", vbInformation, "البحث"
		txtFindText.SetFocus
		Exit Sub
	End If

	Call Full
	Call SelectField

	If fRs.State = adStateOpen Then fRs.Close
	Select Case sFull
		Case "Full"
			fRs.Open "Select * From Details Where  " & sField & " = '" & Trim(txtFindText.Text) & "'", CN, adOpenStatic, adLockPessimistic
		Case "StartWith"
			fRs.Open "Select * From Details Where " & sField & " Like '" & Trim(txtFindText.Text) & "%'", CN, adOpenStatic, adLockPessimistic
		Case "Contain"
			fRs.Open "Select * From Details Where  " & sField & " Like '%" & Trim(txtFindText.Text) & "%'", CN, adOpenStatic, adLockPessimistic
		Case "EndWith"
			fRs.Open "Select * From Details Where  " & sField & " Like '%" & Trim(txtFindText.Text) & "'", CN, adOpenStatic, adLockPessimistic
	End Select

	Set flxFind.DataSource = fRs

	With flxFind
		.TextArray(0) = "الرقم"
		.TextArray(1) = "الإسم"
		.TextArray(2) = "الرقم المدني"
		.TextArray(3) = "الصف"
		.TextArray(4) = "الشعبة"
		.TextArray(5) = "رقم هاتف ولي الامر"
	End With

	Call AutoResize
	lblFindRes.Caption = "عدد نتائج البحث هي : " & fRs.RecordCount & "نتائج / نتيجة"

	If fRs.RecordCount = 0 Then
		MsgBox "لا يوجد نتائج للبحث", vbInformation, "البحث"
	End If
End Sub

Private Sub cmdClose_Click()
	Unload Me
End Sub

Private Sub cmdMoveto_Click()

	With flxFind
		If flxFind.TextMatrix(.Row, 1) = "" Then Exit Sub
		dRS.Find "Name ='" & flxFind.TextMatrix(.Row, 1) & "'"
	End With

	ViewRecord
	ViewLen

	Unload Me

End Sub


Private Sub flxFind_DblClick()
	cmdMoveto_Click
End Sub

Private Sub Form_Load()
	cmbFieldName.ListIndex = 0
	cmbFull.ListIndex = 1

	Me.Show
	txtFindText.SetFocus
	mdiMain.Enabled = True
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
	frmEmployeesDetails.Enabled = True
	frmEmployeesDetails.SetFocus
End Sub

Private Sub txtFindText_GotFocus()
	With txtFindText
		.SelStart = 0
		.SelLength = Len(txtFindText.Text)
	End With
End Sub
Sub AutoResize()
	With flxFind
		Dim Tw As Double

		For C = 0 To .Cols - 1
			Tw = 0

			For R = 0 To .Rows - 1
				If TextWidth(.TextMatrix(R, C)) > Tw Then Tw = TextWidth(.TextMatrix(R, C))
			Next R

			.ColWidth(C) = Tw + 150
		Next C
	End With

End Sub

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

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