توابعی که در اکسس وجود دارد مثل sum avrage اگر حرف D د اشته باشد چه فرقی می کند
DCount را توضیح دهید
توابعی که در اکسس وجود دارد مثل sum avrage اگر حرف D د اشته باشد چه فرقی می کند
DCount را توضیح دهید
DCount:فیلد شامل عدد رادر ستون اطلاعات ثبت شده در پایگاه اطلاعاتی میشماردنوشته شده توسط bani_hashemi
سلام
تابع DCount در اصل عمل شمارش رو متناظر با مقدار ورودي انجام ميده به عبارتي در اين تابع شما آرگومانهاي نام فيلد ، نام جدول يا كوئري و شرط رو داريد كه حاصل كار شمارش مثلاً تعداد ركوردهايي كه متناظر با شرط لحاظ شده استخراج شدن هست مثال:
DCount("CityName","Tb_City","CityName='Tehran'")
CityName نام فيلد Tb_City نام جدول "CityName='Tehran'" شرط
سینتکس فرمان بصورت زیر است :
DCount(expr, domain [, criteria] )
expr :نام فیلد مورد نظر
domain : نام جدول
criteria : شرط مورد شمارش
مثال :
intX = DCount("*", "Orders")
فرمان بالا تعداد کل رکوردهای جدول Orders را شمارش و مقدار آن را در متغیر intX ذخیره می کند.
سایر نمونه ها :
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
مثال کامل :
Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
با سلام من اگر بخواهم تعداد فیلدهای یک جدول که حاوی "*" میباشد بشمارم و دز یک فیلد ثبت کنم از چه تابعی و چگونه استفاده کنم ؟
سلام
اگر ممكنه فرق آن با را نيز توضيح دهيدcount
دوست نازک دل من قصد بی ادبی نداشتم به مزاحم گفتم و لوگ خنده برای همین بوده ، برحال اگر چنین برمیاید معذرت مییخواهم ، ولی شما ،باید بپیذیرید که سوالتان مسیر را تغییر میدهد، درمورد تابعی که میخواهید چندین تاپیک وجوددارد سرچ کنید حتما پیدا میکنید،
تعداد فیلدهای یک جدول که حاوی "*" میباشد
RecCount=Dcount("MyField","MyTable","MyField LIKE '*[*]*'")
بله بنده كمي ناراحت شدم نه به خاطر جواب شما. اگه بنده سوال بيجايي كرده بودم اصلا ناراحت نميشدم حتي اگر جدي تر برخورد ميشد. اگه اولين سوال تاپيك را به دقت مطالعه بفرماييد "توابعی که در اکسس وجود دارد مثل sum avrage اگر حرف D د اشته باشد چه فرقی می کند
DCount را توضیح دهید " دوستي كه اين تاپيك را زده خواسته فرق بين توابع مثل SUM,AVERAGE با حالتي كه در اول آنها D مي آيد بداند و من هم به همين دليل اين تاپيك را دنبال ميكردم ولي از فرق آنها چيزي نديدم.
در هر صورت بنده هم معذرت ميخوام شايد زياده روي كردم
توابعي چون Dcount , Dsum , DAvg , DMin , Dmax و اونايي داراي حرف D در اولشون مي باشند هم ميشه در داخل فرم و بدون استفاده از محيط ويژوال براي کنترل هايي مثل تکست باکس استفاده کرد (اس کيو الي) و هم در محيط ويژوال با اين تفاوت که جدا کننده هاي تابع در فرم از ; استفاده مي کند و در محيط ويژوال از , استفاده مي کند . ولي زماني که از Sum يا Max يا Count مي خواهيم استفاده نماييم در محيط ويژوال بدون حرف D جواب نخواهيم گرفت و با ارور مواجه مي شيم ... و براي يک فرم يا گزارش داخل کنترل تکست باکس ميشه از Sum يا Count بدون حرف D بهره گرفت ... مانند مثال زير :
در محيط ويژوال :
X = DCount("[Field1]", "Tbl1", "[Field2]=" & Me.Txt2 & "And [Field2]=" & Me.Txt3)
درون يک تکست باکس يا کيوئري (خارج از محيط وژوال) :
نوع 1 :(در صورت نياز به ضوابط ) در صورتي که ما مي خواهيم جوابمون بر اساس شرط و شروطي که تعريف مي کنيم بدست بياد :
فيلد تکست باکس := DCount("[Field1]"; "Tbl1"; "[Field2]=" & Me.Txt2 & "And [Field2]=" & Me.Txt3)
فيلد کيوئري :Expr1: DCount("Field1";"Tbl1";"[Field2]=" & [Txt2] & "And [Field2]=" & [Txt3])
نوع 2 (بدون استفاده از D) جواب ما فقط از مجموعه کل حاصل خواهد شد (بدون شرط و شروط)
=Count([Field1])
با عرض پوزش اين پست رو به زبان خيلي ساده نوشتم تا دوستان مبتدي هم بتونن ازش استفاده ببرن ....
فایلتان اصلاح شد
جناب آقای عباسی بسیار متشکرم از زحمتی که محتمل شدید.
فقط در مورد احمدحسینی که دونوع مرخصی دریک ماه استفاده کرده اشکال داره امکان داره راهنمای و یااصلاح کنید ؟ممنون
بنده اشراف کامل به برنامه شما نداشتم . در سابفرم کد زیر را جایگزین کنید:
Public Function DayClicked(nth As Integer)
If IsNull(Me(CStr(nth))) Then
Me(CStr(nth)) = "*"
Else
Me(CStr(nth)) = Null
End If
Me.Refresh
Me.FldCount = DayCount(Me.codm, Nz(Me.mhc), Nz(Me.cds))
End Function
ودر ماژول 1 هم کد زیر را جایگزین کنید:
Function DayCount(codm As String, mhc As Integer, cds As Integer) As Integer
Dim k As Integer, rs As Recordset
Dim cnt As Integer, FldName As String
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Sheet10 WHERE codm='" & codm & "' AND mhc=" & mhc & " AND cds=" & cds)
For k = 1 To 31
If Not IsNull(rs.Fields(k + 2)) Then cnt = cnt + 1
Next
Set rs = Nothing
DayCount = cnt
End Function
جناب امیری باس÷اس فراوان ازشما و تشکر از وقتی که گذاشتید
، نمیدانم ادامه سوالم را در تای÷ک دیگری دنبال کنم یا اینکه چون مرتبط است ادامه دهم امیدوارم راهنمایی ادامه یابد - میخواهم مانده مرخصی استعلاجی و استحقاقی که در سابفرم سمت راست است به تفکیک در مرخصی استحقاقی و مرخصی استعلاجی ذخیره کنم . ممنون میشم راهنمایی کنید
اگر درست متوجه شده باشم می خواهید درجدول ذخیره کنید . درحالیکه فیلدهای محاسباتی درجداول توصیه نمی شوند. وبراحتی باکوئری به آنها دسترسی هست . فیلدهایی مانند مانده مرخصی های جاری ومشابه آنها نیازی به ثبت درجداول ندارند
باتشكر از آقاي اميري كه محبت كردند