View Full Version : سوال: جمع مقادیر یک فیلد
mahdi.fa
پنج شنبه 20 مهر 1391, 14:47 عصر
Option Explicit
Private Sub Form_Load()
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1.mdb;Persist Security Info=False"
.RecordSource = "Select * From Table1"
.Refresh
End With
End Sub
Private Sub Command1_Click()
Dim CN As New Connection
Dim RS As New Recordset
CN.CursorLocation = adUseClient
CN.Open Adodc1.ConnectionString
RS.Open "SELECT SUM(cl1) AS SUM_RESULT FROM Table1", CN
MsgBox "Sum of cl1 field: " & RS.Fields("SUM_RESULT").Value
End Sub
سلام خسته نباشد بابت پاسختون ممنون من کدتون را بررسی کردم ولی جواب نداد(هم آدرس دیتا را تصحیح کردم وهم نام تیبل را) به Dim CN As New Connection گیر میدهد ممنونم می شوم مشکلش را بهم بگید.
فقط یک نکته که مهم است اینکه من به واسطه ی دستور فیلتر بخشی را فیلتر میکنم و می خواهم که جمع مقادیر همن قسمت فیلتر شده را محاسبه کند.
SlowCode
پنج شنبه 20 مهر 1391, 16:02 عصر
اینطور بنویس ببین درست میشه؟
Dim CN As Connection
محسن واژدی
پنج شنبه 20 مهر 1391, 16:11 عصر
سلام خسته نباشد بابت پاسختون ممنون من کدتون را بررسی کردم ولی جواب نداد(هم آدرس دیتا را تصحیح کردم وهم نام تیبل را) به Dim CN As New Connection گیر میدهد ممنونم می شوم مشکلش را بهم بگید.
فقط یک نکته که مهم است اینکه من به واسطه ی دستور فیلتر بخشی را فیلتر میکنم و می خواهم که جمع مقادیر همن قسمت فیلتر شده را محاسبه کند.
سلام علیکم
این بخاطر نبود کلاس Connection و Recordset است، از فرم Components کنترل Microsoft-ADO-Data-Control را به برنامه اضافه کنید مشکل برطرف میشود
یا کد اصلاح شده زیر را بررسی کنید:
Private Sub Command1_Click()
Dim CN, RS
Set CN = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
CN.CursorLocation = adUseClient
CN.Open Adodc1.ConnectionString
RS.Open "SELECT SUM(cl1) AS SUM_RESULT FROM Table1", CN
MsgBox "Sum of cl1 field: " & RS.Fields("SUM_RESULT").Value
CN.Close
Set CN = Nothing
Set RS = Nothing
End Sub
موفق باشید
mahdi.fa
پنج شنبه 20 مهر 1391, 18:54 عصر
سلام آقا محسن ممنون از کدتون واقعا زحمت کشیدید جواب داد فقط یک مشکل من با این کد این است که من مثلا 100 تا رکورد اطلاعات داخل دیتا بیس دارم و توسط دیتا گرید و با adodc تعداد 50 تا از اون را فیلتر میکنم یعنی 50 تا دیگه مربوط به شخص دیگری است من میخواهم فقط 50 تایی که با نام خاصی فیلتر کرده ام محاسبه شود مابقی در محاسبه حساب نشوند با تشکر .
محسن واژدی
پنج شنبه 20 مهر 1391, 20:44 عصر
سلام آقا محسن ممنون از کدتون واقعا زحمت کشیدید جواب داد فقط یک مشکل من با این کد این است که من مثلا 100 تا رکورد اطلاعات داخل دیتا بیس دارم و توسط دیتا گرید و با adodc تعداد 50 تا از اون را فیلتر میکنم یعنی 50 تا دیگه مربوط به شخص دیگری است من میخواهم فقط 50 تایی که با نام خاصی فیلتر کرده ام محاسبه شود مابقی در محاسبه حساب نشوند با تشکر .
سلام علیکم،
میتوانیم شرط فیلتر را در انتهای query در Where اضافه کنیم، به عنوان مثال:
"SELECT SUM(cl1) AS SUM_RESULT FROM Table1 WHERE FName='Hassan' AND LName='kazemi'"
یا
"SELECT SUM(cl1) AS SUM_RESULT FROM Table1 WHERE NationalCode='3501112451'"
موفق باشید
mahdi.fa
جمعه 21 مهر 1391, 13:08 عصر
سلام یک مشکل دیگه پیش اومد:
کد قبلی:
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih", CN
کد اصلاح شده ی شما : توجه : اینکه من مقدار که با فیلتر می کنم متغیر است text28.text
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih ,cn WHERE name= text28.text "
محسن واژدی
جمعه 21 مهر 1391, 13:47 عصر
سلام یک مشکل دیگه پیش اومد:
کد قبلی:
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih", CN
کد اصلاح شده ی شما : توجه : اینکه من مقدار که با فیلتر می کنم متغیر است text28.text
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih ,cn WHERE name= text28.text "
سلام علیکم
اگه مقدار name متغیر است میتوانیم بصورت زیر بنویسیم:
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih WHERE name='" & Text28.Text & "'", CN
mahdi.fa
جمعه 21 مهر 1391, 18:22 عصر
سلام شرمنده مثل اینکه باز هم یک جاییش گیردار زمانی که کد شما را وارد کردم پس از اجرا این پیغام را میده:
93895
کد رو اینجوریش هم کردم این پیغام را میدهد:
RS.Open "SELECT SUM(tedad) AS SUM_RESULT FROM tuzih", CN & "WHERE name='" & Text28.Text & "'"
93896
نمیدونم باید چیکار کنم لطفا راهنماییم کنید.
محسن واژدی
جمعه 21 مهر 1391, 19:09 عصر
سلام علیکم
پوزش میخواهم، متوجه Connection در دستورات نبودم، مجددا کد پست 7 را بررسی کنید انشاءا... درسته
موفق باشید
mahdi.fa
جمعه 21 مهر 1391, 21:13 عصر
درست شد همون چیزی بود که میخواستم دستتون درد نکنه واقعا زحمت کشیدید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.