View Full Version : سوال: عملیات جمع بر روی لیست باکس.
behzad5952
سه شنبه 14 خرداد 1392, 23:17 عصر
سلام
با استفاده از چه کدی میتونم در یک لیست باکس جمع مبالغ یک ستون را در ردیفهای انتخاب شده کاربر و یا جمع کل مبالغ یک ستون را بدست آورد...؟
gholami146
سه شنبه 14 خرداد 1392, 23:52 عصر
با استفاده از یک شمارنده که درون اون مقادیر رو از ابتدا تا انتها جمع کنه
Abbas Amiri
سه شنبه 14 خرداد 1392, 23:55 عصر
سلام
با استفاده از چه کدی میتونم در یک لیست باکس جمع مبالغ یک ستون را در ردیفهای انتخاب شده کاربر و یا جمع کل مبالغ یک ستون را بدست آورد...؟
از تابع زیر که آن را در یک ماژول کپی خواهیدکرد استفاده کنید :
Function SumListBoxColumn(lst As ListBox, ColumnIdx As String) As Currency
Dim Item As Variant, SumX As Currency
For Each Item In lst.ItemsSelected
SumX = SumX + lst.Column(ColumnIdx, Item)
Next
SumListBoxColumn = SumX
End Function
این تابع را به یک متغیر یا کنترل منتسب کنید . آرگومانهای آن لیست باکس موردنظر و شماره ستونی از لیست باکس که مقادیر آن بایستی جمع شوند.(شماره ستون از صفر شروع می شود)
مثال:
MyTextBox = SumListBoxColumn(Me.MyListBox, 3)
جمع مقادیر فیلد چهارم در کنترل MyTextBox قرار می گیرد
خصوصیت Multi Select لیست باکس هم بایستی غیر از None باشد
behzad5952
چهارشنبه 15 خرداد 1392, 10:07 صبح
سلام
من نتونستم از کدها استفاده کنم نمونه رو ضمیمه کردم لطفا بررسی بفرمایید
105137
Abbas Amiri
چهارشنبه 15 خرداد 1392, 10:41 صبح
سلام
من نتونستم از کدها استفاده کنم نمونه رو ضمیمه کردم لطفا بررسی بفرمایید
105137
متاسفانه امتحان نکرده بودم ، کدهای پست فوق اصلاح شد.
behzad5952
چهارشنبه 15 خرداد 1392, 12:42 عصر
باز هم یه مشکل جدید , نمونه رو برای بررسی پیوست کردم لطفا بررسی بفرمایید.
Abbas Amiri
چهارشنبه 15 خرداد 1392, 12:56 عصر
باز هم یه مشکل جدید , نمونه رو برای بررسی پیوست کردم لطفا بررسی بفرمایید.
درست هست . عدد 600 رو نمایش می ده .
behzad5952
چهارشنبه 15 خرداد 1392, 12:58 عصر
جناب امیری لطفا نمونه جدید رو بررسی بفرمایید یه تغییر کوچیک ایجاد کردم.
Abbas Amiri
چهارشنبه 15 خرداد 1392, 13:02 عصر
جناب امیری لطفا نمونه جدید رو بررسی بفرمایید یه تغییر کوچیک ایجاد کردم.
نمونه پست 6 رو امتحان کردم درست بود . و جمع ستون دوم (به همان ترتیبی که در Row Source لیست باکس آمده) همان 600 است .
behzad5952
چهارشنبه 15 خرداد 1392, 13:06 عصر
استاد امیری لطفا شما اول از کلید انتخاب کلی استفاده کنید و بعدش کلید محاسبه اونوقت پیغام خطا خواهید داشت.
مطلب بعدی هم اینه که حتما باید ردیفی انتخاب بشه تا جمع انجام بشه.
Abbas Amiri
چهارشنبه 15 خرداد 1392, 13:33 عصر
استاد امیری لطفا شما اول از کلید انتخاب کلی استفاده کنید و بعدش کلید محاسبه اونوقت پیغام خطا خواهید داشت.
مطلب بعدی هم اینه که حتما باید ردیفی انتخاب بشه تا جمع انجام بشه.
خطایی دیده نشد .
در مورد انتخاب ردیف هم در سوالتان قید کرده بودید :
با استفاده از چه کدی میتونم در یک لیست باکس جمع مبالغ یک ستون را در ردیفهای انتخاب شده کاربر و یا جمع کل مبالغ یک ستون را بدست آورد...؟
behzad5952
چهارشنبه 15 خرداد 1392, 13:54 عصر
حق با شماست ولی لطفا قسمت دوم سئوال من رو در تاپیک 10 رو هم جواب بدید
ممنون:تشویق:
Abbas Amiri
چهارشنبه 15 خرداد 1392, 14:03 عصر
حق با شماست ولی لطفا قسمت دوم سئوال من رو در تاپیک 10 رو هم جواب بدید
ممنون:تشویق:
تغییرات زیر مشکل رو مرتفع می کنه .
Function SumListBoxColumn(lst As ListBox, ColumnIdx As String) As Currency
Dim Item As Variant, SumX As Currency
If lst.ItemsSelected.Count = 0 Then
Exit Function
End If
For Each Item In lst.ItemsSelected
SumX = SumX + lst.Column(ColumnIdx, Item)
Next
SumListBoxColumn = SumX
End Function
behzad5952
چهارشنبه 15 خرداد 1392, 14:13 عصر
در عمل جواب نداد جناب امیری لطفا بررسی بفرمایید:ناراحت:
behzad5952
پنج شنبه 16 خرداد 1392, 11:09 صبح
سلام:
من دیشب تا نزدیک صبح تلاش کردم ولی نتونستم کدهای تاپیک 13 رو اجرایی کنم لطفا زحمت بکشید , منت بگذارید نمونه پیوستی تاپیک 6 رو با کدهای جدید آپدیت کنید.
:گریه:
Abbas Amiri
پنج شنبه 16 خرداد 1392, 15:58 عصر
سلام:
من دیشب تا نزدیک صبح تلاش کردم ولی نتونستم کدهای تاپیک 13 رو اجرایی کنم لطفا زحمت بکشید , منت بگذارید نمونه پیوستی تاپیک 6 رو با کدهای جدید آپدیت کنید.
:گریه:
نمونه فایل مورد نظر و همچنین تاپیک قبلی رو در اینجا قرار دادم
behzad5952
پنج شنبه 16 خرداد 1392, 20:26 عصر
تغییرات زیر مشکل رو مرتفع می کنه .
Function SumListBoxColumn(lst As ListBox, ColumnIdx As String) As Currency
Dim Item As Variant, SumX As Currency
If lst.ItemsSelected.Count = 0 Then
Exit Function
End If
For Each Item In lst.ItemsSelected
SumX = SumX + lst.Column(ColumnIdx, Item)
Next
SumListBoxColumn = SumX
End Function
سلام جناب امیری
دو تا فیلی که ضمیمه کردید اصلاحات نشده بودند .
فکر میکنم من منظورم رو بد عنوان کرده بودم.
من می خواستم این امکان وجود داشته باشه که بدون انتخاب ردیف هم مجموع ردیفها رو بتونم بدست بیارم.
لطفا بذل نظری هم در مورد تاپیک " ایجاد جمع ضربدری حسابداری (http://barnamenevis.org/showthread.php?401514-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AC%D9%85%D8%B9-%D8%B6%D8%B1%D8%A8%D8%AF%D8%B1%DB%8C-%D8%AD%D8%B3%D8%A7%D8%A8%D8%AF%D8%A7%D8%B1%DB%8C) " بفرمایید.
با تشکر.
behzad5952
جمعه 17 خرداد 1392, 14:25 عصر
اساتید محترم اکسس لطفا کمک کنند.
emami.sie
جمعه 08 شهریور 1392, 09:10 صبح
سلام جناب امیری
دو تا فیلی که ضمیمه کردید اصلاحات نشده بودند .
فکر میکنم من منظورم رو بد عنوان کرده بودم.
من می خواستم این امکان وجود داشته باشه که بدون انتخاب ردیف هم مجموع ردیفها رو بتونم بدست بیارم.
لطفا بذل نظری هم در مورد تاپیک " ایجاد جمع ضربدری حسابداری (http://barnamenevis.org/showthread.php?401514-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AC%D9%85%D8%B9-%D8%B6%D8%B1%D8%A8%D8%AF%D8%B1%DB%8C-%D8%AD%D8%B3%D8%A7%D8%A8%D8%AF%D8%A7%D8%B1%DB%8C) " بفرمایید.
با تشکر.
با سلام
برای دوستانی که بعدا با این مشکل مواجه بشن پاسخ ذیل رو درج کردم
(من می خواستم این امکان وجود داشته باشه که بدون انتخاب ردیف هم مجموع ردیفها رو بتونم بدست بیارم.)
تابع رو به صورت زیر اصلاح بفرمایید:
Function SumListBoxColumn(lst As ListBox, ColumnIdx As String) As Double
Dim listsum As Double, x As Integer
With lst
.Requery
For x = 1 To lst.ListCount - 1
listsum = listsum + Nz(.Column(ColumnIdx, x), 0)
Next
End With
SumListBoxColumn = listsum
End Function
موفق باشید
یا علی
hadirafe
چهارشنبه 14 خرداد 1393, 21:35 عصر
عملیات جمع - ویرایش و انتقال از لیست باکس به لیست باکس دیگر با انتخاب ردیف های لیست باکس
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.