نوشته شده توسط
sadegh1944
باسلام
بله میشه از این فرمول استفاده کرد، ولی پردازش داده ها با استفاده از فرمانهایی نظیر Dsum و ِDlookup بویژه در کوئری هایی که حجم اطلاعات در حال پردازش زیاد بوده و دارای عملیات محاسباتی جمع و تفریق و ازین قبیل می باشد دارای محدودیت بوده و بسیار با تاخیر و به کندی انجام میشود. نظر من بجای Dsum استفاده تابع sum است که البته نیاز به کد نویسی دارد. به همین خاطر اگر کد نمونه بالا برای کوئری اصلاح شود خیلی بهتر خواهد بود.
سلام
اگه میخوای ستون مانده رو بدون استفاده از Sum و DSum بدست بیاری و در جدول هم ذخیره بشه از فانکشن زیر استفاده کن:
Function RunMandeh(TableName As String, FieldName1 As String, FieldName2 As String, Fieldid As Long) As Double
On Error Resume Next
Dim rst As Recordset
Dim VarMande As Double
Set rst = CurrentDb.OpenRecordset("SELECT * FROM " & TableName & " WHERE id<=" & Fieldid)
rst.MoveLast
rst.MoveFirst
VarMande = 0
For I = 0 To rst.RecordCount - 1
VarMande = VarMande + (rst.Fields(FieldName1) - rst.Fields(FieldName2))
rst.Edit
RunMandeh = VarMande
rst.Fields("mande") = VarMande
rst.Update
rst.MoveNext
Next I
rst.Close
Set rst = Nothing
End Function