View Full Version : رفتن به رکورد قبلی با شرایط خاص
G.hemati
چهارشنبه 16 مهر 1393, 22:50 عصر
با سلام
من در یه فرمم نیاز دارم جهت رفتن به رکورد بعدی و قبلی شرطی را تعریف کنم
به اینصورت که رکوردی رو پیدا کنه که مقدار فیلد A کوچکتر از خودش باشه
مثلا مقدار فیلد A در رکورد شماره 1 و 2 و 3 برابر با 10 است و در رکورد شماره 4 برابر با 9
پس وقتی از رکورد شماره 1 میخواهیم به رکورد بعدی بریم ، رکورد شماره 4 رو برامون بیاره چون رکورد 2 و 3 مقدارش برابر با خود فیلد است
ممنون میشم راهنمایی بفرمایین
G.hemati
جمعه 18 مهر 1393, 18:06 عصر
دوستان برای روشن شدن بیشتر موضوع نمونه ای آماده کردم لطفا ملاحظه بفرمایین
alirezabahrami
شنبه 19 مهر 1393, 19:01 عصر
با سلام
من در یه فرمم نیاز دارم جهت رفتن به رکورد بعدی و قبلی شرطی را تعریف کنم
به اینصورت که رکوردی رو پیدا کنه که مقدار فیلد A کوچکتر از خودش باشه
مثلا مقدار فیلد A در رکورد شماره 1 و 2 و 3 برابر با 10 است و در رکورد شماره 4 برابر با 9
پس وقتی از رکورد شماره 1 میخواهیم به رکورد بعدی بریم ، رکورد شماره 4 رو برامون بیاره چون رکورد 2 و 3 مقدارش برابر با خود فیلد است
ممنون میشم راهنمایی بفرمایین
سلام !
کدهای زیر را تست کن !
Private Sub Command1_Click()
On Error GoTo Err_Num
Dim IntA As Integer
IntA = DFirst("a", "Tbl1", "[A]> " & A & "")
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[A] = " & Str(Nz(IntA, 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Err_Num:
Select Case Err.Number
Case Is = 94
Exit Sub
Case Else
End Select
End Sub
Private Sub Command2_Click()
On Error GoTo Err_Num
Dim IntA As Integer
IntA = DLast("A", "Tbl1", "[A]< " & A & "")
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[A] = " & Str(Nz(IntA, 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
Err_Num:
Select Case Err.Number
Case Is = 94
Exit Sub
Case Else
End Select
End Sub
یا علی
m.elmi
یک شنبه 20 مهر 1393, 12:49 عصر
سلام، اين كدها رو هم تست كن:
Private Sub Command1_Click()
With Me.RecordsetClone
.Bookmark = Me.Bookmark
.FindFirst "A> " & Me.A.Value
If .NoMatch Then
MsgBox "No Greater Values Were Found!"
Exit Sub
End If
Me.Bookmark = .Bookmark
End With
End Sub
Private Sub Command2_Click()
With Me.RecordsetClone
.Bookmark = Me.Bookmark
.FindPrevious "A< " & Me.A.Value
If .NoMatch Then
MsgBox "No Smaller Values Were Found!"
Exit Sub
End If
Me.Bookmark = .Bookmark
End With
End Sub
G.hemati
دوشنبه 21 مهر 1393, 13:58 عصر
با سلام
ممنون از زحماتی که اساتید گرامی کشیدن واقعاً عالی بود
من در فرمم از کد زیر استفاده کردم
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
End Sub
که باعث میشه وقتی میخوای به رکورد های قبلی برگردی خطای رکورد جاری رو بگیره .
این مشکل رو چه باید کرد
ممنون
m.elmi
دوشنبه 21 مهر 1393, 20:24 عصر
سلام - برای رفع مشکل یه قسمت در ابتدا اضافه شده:
Private Sub Command1_Click()
If Me.NewRecord Then
MsgBox "You are on a new record!"
Exit Sub
End If
With Me.RecordsetClone
.Bookmark = Me.Bookmark
.FindFirst "A> " & Me.A.Value
If .NoMatch Then
MsgBox "No Greater Values Were Found!"
Exit Sub
End If
Me.Bookmark = .Bookmark
End With
End Sub
Private Sub Command2_Click()
If Me.NewRecord Then
DoCmd.GoToRecord , , acPrevious
Exit Sub
End If
With Me.RecordsetClone
.Bookmark = Me.Bookmark
.FindPrevious "A< " & Me.A.Value
If .NoMatch Then
MsgBox "No Smaller Values Were Found!"
Exit Sub
End If
Me.Bookmark = .Bookmark
End With
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.