View Full Version : جستجو در ado
  
vbiman
سه شنبه 18 بهمن 1384, 21:08 عصر
با عرض سلام
من برنامه ای نوشته ام که با استفاده از ado عملیات جستجو صورت بگیرد، ولی زمانی که برنامه را اجرا میکنم به خط روبرو اشکال میگرد و کلمه FIND را مشخص می کند.
x = ado.Recordset.Find(s, , adSearchForward, 1 )
خطای کامپایلر==>“ Expected function or variable”
				با تشکر...
sohrab o
پنج شنبه 20 بهمن 1384, 11:48 صبح
اگه سورست مهم نیست اینجا بذار تا برات کاملش کنم
vbiman
پنج شنبه 20 بهمن 1384, 23:05 عصر
این هم سورس برنامه ام که گفته بودید و اگر مشکل مرا حل کنید ممنون می شوم.
								با تشکر...
Public i As Byte, c As Integer
Private Sub cmd_Click(Index As Integer)
    Select Case Index
        Case 0 'update new user
            ado.Recordset.Update
            For i = 0 To 5
                txt(i).Text = ""
            Next
            txt(0).SetFocus
        Case 1 'NEW BOOK
            If cmd(1).Caption = "new book" Then
                ad.Recordset.AddNew
                txt(14).SetFocus
                 Randomize
                c = (Rnd(1) * 999)
                txt(13).Text = c
                 cmd(1).Caption = "save"
            Else
               ad.Recordset.Update
               For i = 13 To 16
                txt(i).Text = ""
               Next
               txt(14).SetFocus
               cmd(1).Caption = "new book"
            End If
        Case 2 'DEL USER
             If Len(txt(17)) > 0 Then
                Dim s As String, x As String
                 s = txt(17).Text
                 x = ado.Recordset.Find(s, , adSearchForward, 1)
                 If ado.Recordset.EOF = True Then
                    MsgBox ("not found")
                Else
                    MsgBox ("find record")
                End If
            End If
    End Select
    
End Sub
Private Sub cmd3_Click()
    a = MsgBox("are you sure?", vbYesNo + vbQuestion, "EXIT")
    If a = vbYes Then End
End Sub
Private Sub Form_Activate()
 frm.Left = (Screen.Width - frm.Width) / 2
 frm.Top = (Screen.Height - frm.Height) / 2
 ado.Recordset.AddNew
 Randomize
 c = (Rnd(1) * 999)
 txt(3).Text = c
End Sub
Negin_Gostaran
دوشنبه 24 بهمن 1384, 04:52 صبح
دوست عزیز سلام
شما در متد Find برای اولین پارامتر باید شرط جستجو را مشخص کنید، که در شرط باید همیشه نام فیلد مورد جستجو در نظر گرفته شود.
شما محتوای تکس باکس را در رشته S قرار داده اید و باید ارتباط آن با فیلد هم مشخص شود، مثلا اگر در فیلد Name می خواهید جستجو کنید
S = "Name = " & S
اگر فیلد شما از نوع String می باشد باید مقدار مورد جستجو داخل دو کاراکتر ' قرار داده شود.
در ضمن فکر می کنم این متد دارای مقدار بازگشتی نباشد و در صورت پیدا کردن رکورد مورد نظر کرسر به آن رکورد منتقل می شود و در غیر اینصورت به انتهای رکوردست منتقل می شود و با چک کردن مقدار Eof آن را متوجه می شویم.
موفق باشی
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.