PDA

View Full Version : سوال: تفاضل مقدار فیلد جاری از مقدار فیلد رکورد قبلی



navi2002
شنبه 09 شهریور 1387, 08:26 صبح
ببخشید که دوباره می پرسم ( البته این سوال با قبلی متفاوته )
من یک جدول با تعدادی رکورد دارم ک شامل سه 3 فیلد ردیف - فیلد a و فیلد b با مقادیر عددی تعریف شده اند برای این جدول فرمی ساختم حالا سوالم اینه
چطور میتونم مقدار فیلد a مربوط به ردیف شماره 2 رو از مقدار فیلد a مربوط به ردیف 1 کم کنم و نتیجه رو در فیلد b رکورد جاری یعنی 2 قرار بدم و این عمل تا پایان رکورد ها ادامه داشته باشه یعنی مقدار فیلد a رکورد ردیف 3 از مقدار فیلد a رکورد ردیف 2 کم بشه و در فیلد b رکورد 3 بنشینه و .....
خواهش می کنم با توجه به اهمیتی که جواب این سوال برام داره بهم جواب بدید .

من خیلی سرچ کردم چیزهای زیادی هم یاد گرفتم اما جوابم تو موارد ثبت شده نبود

davood-ahmadi
یک شنبه 10 شهریور 1387, 01:00 صبح
قبلاً تقریبا همین نمونه انجام شده است تازه پیچیده تر از این موضوع بود . اگر می گشتی حتماً پیدا می کردی و حالا ...

این هم کدش ( کد را در لود فرم قرار بده)

Dim rst As Recordset
Dim i As Long
Dim MablaghGhabli As Long
Set rst = Me.Recordset
rst.MoveFirst
For i = 1 To rst.RecordCount
MablaghGhabli = rst.Fields(1).Value
rst.Edit
If i <> 1 Then rst.Fields(2) = MablaghGhabli - rst.Fields(1)
rst.Update
If i < rst.RecordCount Then rst.MoveNext
Next
rst.MoveFirst

navi2002
دوشنبه 11 شهریور 1387, 22:36 عصر
آقای احمدی عزیز از لطفتون که جواب گذاشتید ممنونم نمی خواستم دوباره مزاحم بشم منتها کد شما رو تو loadform گذاشتم اما جوابی نگرفتم گرچه به نظر کاملا منطقیه شاید من دارم اشتباهی انجام میدم حتی یه مقداری جسارتا دست کاریش کردم بازم جواب نداد اگه لطف کنید فایل ضمیمه رو برام اصلاح کنید و بذارید یک دنیا ممنونتون میشم
من میخوام

B1=A1
B2= A2-A1
B3=A3-A2
B4=A4-A3
و به همین ترتیب تا آخر از محبتی که خواهید داشت ممنونم



قبلاً تقریبا همین نمونه انجام شده است تازه پیچیده تر از این موضوع بود . اگر می گشتی حتماً پیدا می کردی و حالا ...

این هم کدش ( کد را در لود فرم قرار بده)

Dim rst As Recordset
Dim i As Long
Dim MablaghGhabli As Long
Set rst = Me.Recordset
rst.MoveFirst
For i = 1 To rst.RecordCount
MablaghGhabli = rst.Fields(1).Value
rst.Edit
If i <> 1 Then rst.Fields(2) = MablaghGhabli - rst.Fields(1)
rst.Update
If i < rst.RecordCount Then rst.MoveNext
Next
rst.MoveFirst

navi2002
جمعه 15 شهریور 1387, 11:22 صبح
ببخشید که مجبور شدم تاپیک چدید بزنم اما من بیش از یک هفته است که این مشکل رو دارم و هنوز حل نشده
من فایلم رو ضمیمه کردم تو رخداد load form کدی هست که مقدار a هر رکورد رو از مقدار a رکورد قبلی همون رکورد کم می کنه و تو فیلد b رکورد مربوطه می نویسه کد کاملا درست جواب می ده ( البته یه خطا میده اما دکمه end رو که میزنم همه چیز درسته ) اما خواهش می کنم اگه کسی میتونه
1- کمک کنه و این کد رو اصلاح کنه تا خطا نده یعنی الان عملیات درست انجام میشه اما error هم میده
2-اگه کسی بتونه کد رو طوری اصلاح کنه که ا مقدار فیلد b رکورد اول برابر با مقدار فیلد a رکورد اول بشه ( فقط برای رکورد اول می خوام این اتفاق بیفته ) ممنونتون میشم
قسمت اول سوال برام مهمتره
خواهش می کنم در صورت امکان فایل ضمیمه رو اصلاح کنید چون من زیاد وارد نیستم
باز هم ممنون و شرمنده از اینکه دوباره تاپیک زدم خیلی منتظر شدم اما تاپیک قبلیم رو جواب نگرفتم

مهدی قربانی
جمعه 15 شهریور 1387, 16:23 عصر
سلام
نقداً رفع اشكال ، خطاي Current Record‌ در كدنويسي به شكل زير حل ميشه :
Private Sub Form_Load()
With Me.Recordset
If .RecordCount = 0 Then
Exit Sub
Else
Dim x As Double

.MoveFirst
Do Until .RecordCount

x = .Fields("a").Value

.MoveNext



.Edit
.Fields("b").Value = x - .Fields("a").Value


.Update
x = 0


Loop


End If
End With
End Sub