کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی
کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

Group by در اکسس



تجمیع شدن رکوردها بر اساس لیست فیلدها انجام میشود اگر تمام داده های فیلدها در رکوردها یکی باشند در کوئری یک رکورد (قدیمی ترین رکورد ثبت شده ) از مجموع رکوردها نمایش داده میشود. 




GROUP BY در Access رکوردها را با مقادیر یکسان در لیست فیلد مشخص شده در یک رکورد واحد ترکیب می کند. اگر یک تابع یکپارچه سازی SQL مانند Sum یا Count را در دستور SELECT وارد کنید، یک مقدار خلاصه برای هر رکورد ایجاد می‌شود.


Syntax

SELECT fieldlist
FROM table
WHERE criteria
[GROUP BY groupfieldlist]


مقادیر Null در فیلدهای Group By   دسته بندی می شوند و حذف نمیگردند . اگر چه مقادیر Null در هیچ تابع یکپارچه سازی Sql ای ارزیابی نمی شوند.



رکوردهایی که در تمام فیلدها مقادیر یکسانی دارند در صورتی که در نمای طراحی کوئری در نوار بالا علامت زیگما زده شود در یک رکورد نمایش داده می شود.



با استفاده از نوعی از تابع که aggregate function نامیده می شوند می توان جمع ستونی از اعداد در یک کوئری را بدست آورد. این توابع محاسباتی را روی یک ستون داده اجرا می کنند و یک مقدار واحد را باز می گردانند. اکسس توابع  aggregate گوناگونی را فراهم نموده است ، که شامل Avg ، Sum ، Count ( برای محاسبه میانگین ها ) ، Min و Max است . با استفاده از تابع Sum در کوئری می توانید جمع برنید یا با تابع Count تعداد داده را بدست آورید.





اطلاعات id و name یکسان هستند . اگر شما Price هم در Group by اضافه کنید تمام رکوردها نمایش داده میشوند.



در تصویر زیر Group By یا تجمیع طبق لیستی از فیلدهای id ، name ، dt انجام شده چون فیلد آخر تاریخ مقادیر یکسانی ندارند تمام رکوردها از هر  id نمایش داده شده .







یک رکورد در id 123 با تاریخ یکسان به جدول اضافه شد زمان گروه بندی اگر از فیلد dt استفاده کنیم ملاحظه می کنید رکورد آخری که اضافه کردیم نمایش داده نمیشود






چنانچه گروه بندی با دو فیلد id و name انجام شود رکوردها را تجمیع میکند و فقط رکوردهایی از آنها که در ابتدا ثبت شده اند لیست میشود.







رکورد با قیمت ۴۵۰۰۰ حذف شد و رکورد جدیدی با همین قیمت اضافه شد در  گروه بندی کردن این قیمت لیست نمیشود











عبارت Name در تغییر نام فایل یا انتقال آن






عبارت Name نام یک فایل را تغییر می دهد و آنرا به دایرکتوری یا پوشه متفاوت منتقل میکند ، در صورت لزوم Name. می تواند یک فایل را در بین درایوها جابجا کند. اما تنها زمانی می تواند یک دایرکتوری یا فولدر را تغییر نام دهد که نام مسیر جدید و قدیمی در یک درایو قرار داشته باشند Name. نمی تواند یک فایل ، دایرکتوری ( فهرست )  یا پوشه ( فولدر ) جدید ایجاد کند.


استفاده از Name در یک فایل باز خطا ایجاد میکند . باید قبل از تغییر نام ،  آنرا بست . آرگومان های Name. نمی توانند شامل کاراکترهای چندگانه (*) و تک کاراکتری (؟) باشند.



Syntax

Name oldpathname As newpathname


Oldpathname : این آرگومان اجباریست و نمی تواند خالی رها شود . یک عبارت رشته ای که نام فایل موجود و موقعیت را تعیین می کند ، می تواند شامل دایرکتوری یا فولدر و درایو باشد.

newpathname : این آرگومان نیز اجباریست . یک عبارت رشته ای مثل توضیحات بالا  فقط نام فایل مشخص شده توسط این آرگومان نمی تواند قبلاً وجود داشته باشد.


زمانی می تواند یک دایرکتوری یا فولدر را تغییر نام دهد که نام مسیر جدید و قدیمی در یک درایو قرار داشته باشند

old = "C:\MYDIR\OLDFILE": new= "C:\YOURDIR\NEWFILE"

 ' Move and rename file

Name oldName As newName

.




آشنایی با تابع Switch : 

exp1,value1,exp2,value2

اگر عبارت ۱ وجود داشته باشد تابع مقدار عبارت یک را بر میگرداند . اگر عبارت ۱ نباشد ( False ) اما عبارت ۲ باشد تابع value عبارت۲ را برمی گرداند و به همین ترتیب.


if expr-1 is True, Switch returns value-1. If expr-1 is False,but expr-2 is True, Switch returns value-2, and so on.


در موارد زیر مثل False بودن عبارات یا Null بودن مقدار عبارت اول در صورت بودن  ، این تابع Null را برمی گرداند.


Switch returns a Null value if:
-None of the expressions is True.
-The first True expression has a corresponding value that is Null.


SELECT ProductSales.ProductID, Switch([ProductID]="PRO_XYZ1","First",[ProductID]="PRO_XYZ2","Two",[ProductID]="PRO_XYZ1","Ten") AS testSwitch FROM ProductSales;









پراپرتی Controls.Item

دانشجوی زن این دانشگاه به وسیله آمبولانس اورژانس اجتماعی به مرکزی برای اقدامات درمانی منتقل شده است: «وزیر علوم این موضوع را از رئیس دانشگاه آزاد پیگیری کرده و او از کلانتری با اورژانس اجتماعی مستقیماً به مراکزی برای درمان منتقل شده‌ است.» لباس شخصی سپاه و امنیت نبوده!!!

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




پراپرتی Item عضو خاصی از یک مجموعه را با استفاده از Position یا Index برمی گرداند


expression.Item(index)



ایندکس : 

عبارتیکه موقعیت عضو مجموعه اشاره شده به آنرا توسط آرگومان expression تعیین میکند. اگر عبارت عددی باشد آرگومان ایندکس باید شماره ای از 0 تا مقدار پراپرتی Count مجموعه منهای یک باشد. اگر عبارت رشته ای باشد ، آزگومان ایندکس باید نام عضو مجموعه باشد



Frame3.Controls.item(Frame3.Value - 1 ).caption

rs.Fields.Item(Countfields).Name



آبان ۱۴۰۳


۲ روز پیش · پزشکیان: اگر اسرائیل آتش بس را بپذیرد ممکن است نوع و شدت پاسخ ما تغییر کند · پزشکیان : موشک های ما برای حمله به کسی نیست / جنگ امروز جنگ اقتصادی



۲ روز پیش · جانشین فرمانده‌کل سپاه درباره زمان عملیات وعده صادق ۳ گفت: درباره جزئیات آن نمی‌توان اظهارنظر کرد اما حتماً انجام خواهد شد



۳ روز پیش · اگر ترامپ طرفدار لبنان و غزه بود پس چرا اسرائیلیها از او دفاع می کنند و منتظر نشستن او هستند مگر نه اینکه دامادش کوشنر یک یهودی تبار و خودش 



پهپاد هاروپ از fa.wikipedia.org
هاروپ (انگلیسی: IAI Harop) یک پهپاد انتحاری ساخت شرکت صنایع هوافضای اسرائیل موسوم به آی‌ای‌آی است، که در زمره مهمات پرواز کننده قرار دارد



پایگاه خبری "نیوزویک"  با استناد به تصاویر ماهواره‌ای گزارش داد، شش فروند از بمب افکن‌های آمریکایی در حال حاضر در پایگاه هوایی العُدید قطر قابل مشاهده‌اند.
فاصله این پایگاه تا تهران حدود ۱۲۰۰ کیلومتر است. برخی ناظران می‌گویند استقرار این هواپیماها در خلیج فارس، علاوه بر افزایش سطح بازدارندگی، "پیام هشدار" به ایران است.






Do While Not rs.EOF

' Display current record information. Add 1 to

' AbsolutePosition value because it is zero-based.

strMessage = "Employee: " & !LastName & vbCr & _ "(record " & (.AbsolutePosition + 1) & _ " of " & .RecordCount & ")"
If MsgBox(strMessage, vbOKCancel) = vbCancel Then
Exit Do
rs.MoveNext
Loop 





انتخاب چند رکورد در دیتاشیت فرم



۲۳ ساعت پیش · این دختر دانشجو در دانشگاه آزاد واحد علوم و تحقیقات تهران در اقدامی اعتراضی به برخورد ماموران حراست و تلاش آنان برای تحمیل حجاب اجباری، تقریبا



کتایون ریاحی، بازیگر شناخته‌شده که در دوران اعتراضات ۱۴۰۱ حجاب اجباری را کنار گذاشته بود، با انتشار پستی در اینستاگرام از این دانشجو حمایت کرد و نوشت: «یک‌دیگر را تنها نمی‌گذاریم.»





پراپرتی SelHeight فرم


برای تعیین یا مشخص کردن  تعداد ردیف های انتخابی ( رکورد ) در  مستطیل انتخاب جاری در رکوردهای جدول یا کوئری یا دیتاشیت فرم یا تعداد رکوردهای انتخاب شده در یک فرم continuous .



پراپرتی SelHeight یک مقدار Long Integer بین صفر و تعداد رکوردها در دیتاشیت فرم  یا فرم continuous را باز میگرداند.  اگر هیچ انتخابی نباشد مقدار بازگشتی این ویژگی صفر خواهد بود. تنظیم این پراپرتی به صفر انتخاب از دیتاشیت یا فرم را برمی دارد. اگر ستون های بیشتری در یک دیتاشیت  انتخاب شود نمی توان تنظیم پراپرتی SelHeight را تغییر داد ( مگر اینکه با تنظیم به صفر از حالت انتخاب درآید). این پراپرتی را با پراپرتی های SelTop و SelLeft برای تعیین یا مشخص کردن موقعیت واقعی مستطیل انتخابی در دیتا شیت استفاده کنید. اگر هیچ انتخابی نباشد این دو پراپرتی شماره ردیف و ستونی که فوکس کردید را بازمی گرداند. پراپرتی های SelHeight و SelWidth حاوی موقعیت گوشه راستی پائین در مستطیل انتخابی است و SelTop و SelLeft گوشه چپ بالایی مستطیل انتخابی است.


پراپرتی SelTop فرم

این پراپرتی مقداری بین 1 و تعداد رکوردها در دیتاشیت یا فرم کانتینیوس بازمی گرداند. اگر هیچ انتخابی نباشد مقدار بازگشتی توسط این ویژگی ردیف و ستونی است که فوکس دارد.


پراپرتی SelLeft فرم 

از این پراپرتی برای تعیین یا مشخص کردن اینکه کدام ستون ( فیلد )  در چپ ترین مستطیل انتخابی است استفاده می شود. مقدار بازگشتی آن بین 2 و تعداد فیلدها ( ستون ها ) در دیتاشیت + 1 است ( اکسس شمارش را از 0 شروع میکند ) . دو ستون اول همیشه record selector ستون و  علامت باز و بسته شدن ستون ( expand / collapse ) برای یک subdatasheet است.  اگرهیچ  انتخابی صورت نگیرد مقدار برگشتی ردیف و ستون سلولی است که فوکس گرفته. نمی توان تنظیم این پراپرتی را تغییر داد. 




از این پراپرتی ها با پراپرتی های SelHeight و SelWidth برای تعیین یا مشخص کردن اندازه واقعی مستطیل انتخابی استفاده کنید.

پراپرتی های SelTop و SelLeft موقعیت گوشه چپ بالایی انتخاب شده در مستطیل را تعیین میکنند

پراپرتی SelHeight و SelWidth گوشه راست پائینی در مستطیل انتخابی را مشخص می کنند.




خلاصه : 


تعداد ردیف های انتخاب شده : SelHeight و مقدار بازگشتی بین صفر تا تعداد رکوردها در دیتاشیت

تعداد ستون های انتخاب شده : SelWidth

بالاترین  ردیف انتخاب شده : SelTop و مقدار بازگشتی بین 1 تا تعداد رکوردها

چپ ترین ستون انتخابی : SelLeft و اکسس شمارش را از صفر شروع میشود فقط 2 ستون اول برای انتخابگر رکورد و علامت برای نمایش زیر شاخه هاست ،  ولی مقدار بازگشتی برای subdatasheet از 2 تا فیلد+ 1 است.


عریان شدن زن علوم و تحقیقات ۳۰ ساله و مطلقه دارای دو فرزند دانشجوی زبان فرانسه دانشگاه مازاد نه آزاد 

اخبار کسب شده از سوی خبرنگار ایسنا حکایت از این دارد که اخبار منتشر شده درباره مسائل مرتبط با تذکر حجاب کاملا دروغ بوده و دانشجوی خاطی به دلیل مشکلات روحی ناشی از طلاق و جدایی از فرزندانش مرتکب این عمل در محیط دانشگاه شده است.


طبق توصیف حضرات یعنی زن علوم و تحقیقات یک روانی بیش نیست !!! احتمالاً خواندن زبان فرانسه برای پیوستن به فرانسه بوده یا قصد تابعیت اجنوی ها در سرش می پرورانده .




شئ رکوردست برای حذف یا اضافه کردن رکورد یا حتی ویرایش




در رکوردست میتوان به دستکاری داده ها دست یافت مثل حذف ، اضافه یا ویرایش رکورد



رکوردست نوع snapshot حاوی فیلدهای یک یا چند جدول می تواند باشد اما قادر به Update شدن را ندارند.



در نوع ForwrdOnly فقط می توانید در رکوردها پیماش ( scroll )  کنید. بهبود اجرا در کوئری pass through 


This improves performance in situations where you only need to make a single pass through a result set.


To run a query on a database server, use a pass-through query which is a Transact SQL (TSQL) statement that connects to SQL Server by using an ODBC connection string




Type of recordset to open



dbOpenDynamic
Opens a dynaset-type Recordset

dbOpenDynaset
Opens a dynaset-type Recordset

dbOpenForwardOnly
Opens a forward-only type Recordset

dbOpenSnapshot
Opens a snapshot-type Recordset

dbOpenTable
Opens a table-type Recordset



برای نسبت دادن متغیر به رکوردست و استفاده از شئ رکوردست از Set استفاده میکنیم


Set Rs=CurrentDb.OpenRecordset(  نوع باز شدن رکوردست ، نام جدول)


آرگومان اول می تواند نام جدول باشد  یا عبارت Sql ( مثلاً فقط چند فیلد از جدول داخل رکوردست واکشی شود یا طبق شرط خاصی و یکسری از رکوردها فهرست شود). هر کدام را استفاده کنید  باید بین دو دابل کوتیشن قرار گیرند.



بردن کرسر به رکورد آخر

Rs.MoveLast

انتقال کرسر به رکورد اول

Rs.MoveFirst

شمارش تعداد کل رکوردهای باز شده در رکوردست

Rs.RecordCount

انتقال کِرسر به رکورد بعدی

Rs.MovNext

انتقال موقعیت رکورد جاری در شیء رکوردست

Rs.Move (Rows,StartBookmark)


The number of rows the position will move. If rows is greater than 0, the position is moved forward (toward the end of the file). If rows is less than 0, the position is moved backward (toward the beginning of the file).


اولین رکورد در شیء رکوردست نوع dynaset یا snapshot قرار میگیرد

Rs.FindFirst ( Criteria )




This code moves the cursor to the last record.
DoCmd.RunCommand acCmdRecordsGoToLast






Nested loops in recordset





استفاده از لوپ تو در تو برای استخراج نام فیلدها و مقادیرش ،  رکورد به رکورد.



While (Not rs.EOF ) 'Loop 1
For Each field In rs.Fields 'Loop no 2
rowText = rowText & field.Name & "=" & rs.Fields(field.Name) & ", "
Next
Debug.Print rowText
rowText = ""
rs.MoveNext
Wend



The Fields collections of the IndexQueryDefRelation, and TableDef objects contain the specifications for the fields those objects represent. The Fields collection of a Recordset object represents the Field objects in a row of data, or in a record. You use the Field objects in a Recordset object to read and to set values for the fields in the current record of the Recordset object.

To refer to a Field object in a collection by its ordinal number or by its Name property setting, use any of the following syntax forms:

Fields(0)

Fields("name")

Fields![name]




Index is ZeroBased


For i =0 To rs.Fields.Count-1

rs.Fields(i).Name

Next












استخراج نام سابفرم های تو در تو



دختر لخت علوم و تحقیقات آبان ۱۴۰۳





چگونه می توان نام سابفرم های تو در تو در یک سابفرم  را استخراج کرد ؟



مثال : MainForm با نام frmMain ، سابفرم با نام Sub1 ، درون Sub1 یک سابفرم با نام Sub2 ، درون Sub2 یک سابفرم با نام Sub3 ایجاد کنید.


کد مربوطه را در نظرات بنویسید



از پراپرتی controlType در Vba میشود استفاده کرد ؟


You can use the ControlType property in Visual Basic to determine the type of a control on a form or report. Read/write Byte.



Parent Property Returns the parent object for the specified object. Read-only.





















۹ ساعت پیش · عملیات وعده صادق 3 در صورت وقوع ابعاد غیر قابل تصور خواهد داشت ... رژیم اسرائیل و امریکا پس از عملیات وعده صادق 2، با حملات شدید به لبنان، غزه، سوریه و یمن و 



۲۸ دقیقه پیش · اعزام این بمب‌افکن‌ها به منطقه هشدار به ایران محسوب می‌شود که بنا به برخی از گزارش‌ها برای واکنش به حمله اخیر اسرائیل به مراکز نظامی خود آماده


۱ مهر ۱۴۰۲ · بسیاری بر این باورند که ایران رمز محرمانه جنگنده های F-35 را رهگیری کرده است و اکنون، می تواند پروازهای این نوع هواپیماها را کنترل کند


آبان ۱۴۰۳ دانشگاه آزاد




دختر علوم تحقیقات با نام احتمالی آهو دریایی[۲] دانشجوی دختر دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران است. موضوع دخالت مأموران حراست دانشگاه در نحوه‌ی پوشش فردیِ وی و اعتراضِ وی به این موضوع، موجب واکنش مردم به این رخداد و موضوع حجاب اجباری در سطح جامعه شد. در تاریخ ۱۲ آبان ۱۴۰۳ در دانشگاه آزاد اسلامی واحد علوم و تحقیقات تهران مأموران حراست و بسیج دانشگاه با زور قصد داشتند این دختر دانشجو را به بهانه حجاب و نداشتن مقنعه به داخل اتاقک حراست ببرند اما با مقاومت و اعتراض او، لباسش (هودی مانند) از تنش کنده شد و زیر هودی چیزی جز لباس زیر بر تن او نبود؛ به همین علت مأموران حراست شوکه شده و رهایش کردند[۳]. پس از این ماجرا و نیمه برهنه شدنِ بالاتنه‌اش در طی درگیری، دختر از فرط عصبانیت شلوارش را هم درآورد و به سمت مأموران پرتاب کرد و نیمه برهنه شد و همین موضوع باعث دستگیری خشونت‌آمیز وی شد.[۴][۵][۶][۷][۸][۹] در جریان دستگیری، این دانشجو مورد ضرب‌وشتم و خون‌ریزی قرار گرفت و به مکانی نامعلوم منتقل شد.[۸][۱۰] مسئولان دانشگاه با تکذیب برخورد فیزیکی با این دانشجو، مدعی اختلال روانی وی شدند.[۱۱]




KeyUp
If Len(txtNameFilter.Text) > 0 Then 
filterText = txtNameFilter.Text
Me.Form.Filter = "[Contacts]![first_name] LIKE '*" & filterText & "*' OR [Contacts]![last_name] LIKE '*" & filterText & "*'"
Me.FilterOn = True
txtNameFilter.Text = filterText txtNameFilter.SelStart=Len(txtNameFilter.Text)
Else
Me.Filter = ""
Me.FilterOn = False
txtNameFilter.SetFocus
End If









فرمول رفرنس به پراپرتی کنترل در فرم اصلی و سابفرم ( زیر فرم )




به نوشتارهای زیر دقت کنید تا فرمول ارجاعات به کنترل ها یا پراپرتی کنترل ها  در هر جایی از فرم و سابفرم های تو در تو  که قرار دارید را متوجه شوید.




اگر در MainForm یا فرم اصلی هستید : 


اشاره به پراپرتی Enabled کنترل در فرم اصلی 


Me!ControlName.Enabled


اشاره یا ارجاع به پراپرتی کنترل در سابفرم ۱


Me!Subform1.Form!ControlName.Enabled


اشاره به پراپرتی کنترل سابفرم ۲ که مجموعه سابفرم ۱ است


Me!Subform1.Form!Subform2.Form!ControlName.Enabled




اگر در سابفرم ۱ هستید :



ارجاع به پراپرتی کنترل در فرم مادر یا فرم اصلی


Me.Parent!ControlName.Enabled

ارجاع به پراپرتی کنترل سابفرم ۱ در خود سابفرم

Me!ControlName.Enabled

ارجاع به پراپرتی کنترل سابفرم ۲ 

Me!Subform2.Form!ControlName.Enabled




مثال زیر با استفاده از ویژگی Form  به کنترلی در زیرفرم اشاره می کند


The following example uses the Form property to refer to a control on a subform.


Dim curTotalAmount As Currency
curTotalAmount = Forms!Orders!OrderDetails.Form!TotalAmount 


اشاره به کنترلی در زیرفرم

فرم اصلی : Orders

زیر فرم : OrderDetails

کنترل در زیرفرم : TotalAmount







از فیلد RecordId سابفرم با نام SubChildForm f استفاده شده تا در یکسری توابع در فرم  استفاده شود






چگونگی اشاره به یک کنترل در سابفرم درون فرم اصلی : 



Forms!mainform!subform.Form.controlname.property
Me!subform.Form.controlname.property




ارجاع به پراپرتی Visibe و  Locked کنترل ctlStateTax در سابفرم با نام subfrmOrders داخل فرم اصلی frmCustomer


Forms("frmCustomer").subfrmOrders.Form.ctlStateTax.Visible = False

Forms("frmCustomer").subfrmOrders.Form.ctlStateTax.Locked





Nested Subform


اشاره به کنترل cboType در  سابفرم تو در تو


[Forms]![IncidentDetails]![CtrlLogDetail].[Form]![ctrlType].[Form].[cboType]


فرم اصلی : IncidentDetails

سابفرم درون فرم اصلی : CtrlLogDetail

سابفرم درون سابفرم اول : ctrlType

کنترل داخل سابفرم دوم : cboType




اشاره به پراپرتی AllowEdits سابفرم ۳ و تنظیم به False که اجازه  ویرایش نمی دهد.


Forms!frmMain!sub1.Form!sub2.Form!sub3.Form.AllowEdits = False


فرم اصلی : frmMain

سابفرم ۱ : Sub1

سابفرم ۲ داخل ساب ۱ : Sub2

سابفرم ۳ داخل ساب ۲ : Su 3






























Public WithEvents txt1 As Access.TextBox
Private frm2 As Access.Form
Public Property Get sFrm() As Access.Form
Set sFrm = frm2
End Property
Public Property
Set sFrm(ByRef frmValue As Access.Form)
Set frm2 = frmValue
End Property
Private Sub txt1_AfterUpdate()


----------------------------------------------



Function Animate() Dim frmSplash as Form Dim i as Integer DoCmd.OpenForm "Splash" Set frmSplash = Forms("Splash") For i = 1 To 20 frmSplash(i).Visible = True frmSplash(i-1).Visible = False DoCmd.RepaintObject Next End Function




---------------------------------------------



Public Function LockEmAll(bLock As Boolean)
Dim frm As Form

For each frm in Forms
Call LockEm(frm, bLock)
Next

Set frm = Nothing
End Function

Private Function LockEm(frm As Form, bLock As Boolean)
Dim ctl As Control

With frm
If .Dirty Then
.Dirty = False
End If
.AllowEdits = bLock
.AllowDeletions = bLock
.AllowAddtions = bLock

For each ctl In .Controls
If ctl.ControlType = acSubForm Then
Call LockEm(ctl.Form, bLock)
End If
Next
End With
End Sub








ویژگی Filter در فرم





Form.Filter Property




Use the Filter property to specify a subset of records to be displayed when a filter is applied to a form, report, query, or table. Read/write String.



از ویژگی Filter برای ذخیره یک فیلتر و بکار بردن آن در زمان دیگری استفاده کنید . فیلترها با اشیاء در جایی که ساخته شده اند ذخیره می شوند  . آنها بصورت خودکار زمانیکه شئ مثل فرم باز می شود بارگذاری می شود اما بصورت خودکار اعمال نمی شوند.



عبارتی که می دهد بدون Where است می توانید سابفرم را فیلتر کنید و عبارت پراپرتی فیلتر آنرا در متغیری ذخیره کنید و  نمایش آنرا در قالب Msgbox یا در TextBox ببینید



Me.Filter="Country='USA'"

Me.FilterOn=True



Dim Form As Form

Set Form = Forms("fmClientLogDtls2")

Form.Filter = "logDtlsID = " & Me!logDtlsID.Value & ""
Form.FilterOn = True



Subform.Form Property



Use the Form property to refer to a form or to refer to the form associated with a subformcontrol. Read-only Form.



برای رجوع به فرم یا فرم مرتبط با کنترل سابفرم از ویژگی Form استفاده کنید.



پس طبق گفته بالا برای استفاده ازکنترل سابفرم باید به پراپرتی فرم اشاره کرد و بعد نام کنترل 



مثال :  رجوع به مقدار ذخیره شده ( پراپرتی Value بعد از رفتن فوکوس به جای دیگر مقدار میگیرد ) کنترل MyTextBox در ( کنترل ) سابفرم با نام SubformControl4  که در سابفرم ۳  قرار گرفته  و ۳ در ۲ و ۲ در MySubformControlName ... خلاصه سابفرم در سابفرم است بشتابید  !!!


Forms(“MainFormName”). Controls(“MySubformControlName“). Form.Controls(“SubformControl2”). Form.Controls(“SubformControl3”). Form.Controls(“SubformControl4”). Form.Controls("MyTextBox").Value




Controls.Count Property


Use the Count property to determine the number of items in a specified collection. Read-only Long.



Forms("Form1").Controls.Count 



شماره ایندکس از صفر شروع میشود پس باید Count-1 شود.

ایندکس می تواند تغییر کند ( مثلا در حذف جدول و دوباره ایجاد کردن با همان نام )  پس بهتر است نام فرم ذکرشود










استفاده از اکشن های SysCmd در اکسس مخصوصاً جهت نوار پیشرفت




acSysCmdAccessDir : 9

Returns the name of the directory where Msaccess.exe is located.

acSysCmdAccessVer : 7

Returns the version number of Microsoft Access.

acSysCmdClearHelpTopic : 11

acSysCmdClearStatus5Provides information on the state of a database object.

acSysCmdGetObjectState : 10

Returns the state of the specified database object. You must specify argument1 and argument2 when you use this action value.

acSysCmdGetWorkgroupFile : 13

Returns the path to the workgroup file (System.mdw).

acSysCmdIniFile : 8

Returns the name of the .ini file associated with Microsoft Access.

acSysCmdProfile :12

Returns the /profile setting specified by the user when starting Microsoft Access from the command line.

acSysCmdRuntime : 6 

Returns True (1) if a run-time version of Microsoft Access is running.

acSysCmdInitMeter : 1

Initializes the progress meter. You must specify the argument1 and argument2 arguments when you use this action.

acSysCmdUpdateMeter : 2 

Updates the progress meter with the specified value. You must specify the text argument when you use this action.

acSysCmdRemoveMeter :3 

Removes the progress meter.

acSysCmdSetStatus : 4 

Sets the status bar text to the text argument.



SysCmd(acSysCmdGetObjectState, acTable, obj.Name)



expression.SysCmd(Action,Arg2,Arg3)


Argument2  Optional Variant. A string expression identifying the text to be displayed left-aligned in the status bar. This argument is required when the action argument is acSysCmdInitMeteracSysCmdUpdateMeter, or acSysCmdSetStatus; this argument isn't valid for other action argument values.


You can't set the status bar text to a zero-length string (" "). If you want to remove the existing text from the status bar, set the text argument to a single space.  The text argument can contain approximately 80 characters. 





Note : When the action argument is acSysCmdUpdateMeter, the SysCmd method uses the value argument to calculate the percentage displayed by the meter. For example, if you set the maximum value to 200 and then update the meter with a value of 100, the progress meter will be half-filled.


MyTable.MoveLast
Count = MyTable.RecordCount
MyTable.MoveFirst
SysCmd acSysCmdInitMeter, "Reading Data...", Count
For Progress_Amount = 1 To Count
SysCmd acSysCmdUpdateMeter, Progress_Amount
MyTable.MoveNext
Next
SysCmd acSysCmdRemoveMeter












البته این سایت سایت تولیدی نیست پس اسرائیل رکب خورد















Search in Access

۷ آبانماه ۱۴۰۳










در کوئری  در قسمت شرط یا criteria  فیلد مورد نظر عبارت زیر تایپ می شود 


Like "*" & [Forms]![Form1]![txtSearch] & "*"




متد و پراپرتی های مورد نیاز در رویداد Change تکست باکس : 


*Form.Requry


The Requery method updates the data underlying a specified form by requerying the source of data for the form.


*Form.Refresh


The Refresh method immediately updates the records in the underlying record source for a specified form or datasheet to reflect changes made to the data by you and other users in a multiuser environment.


*Text ( Searchtxt.Text )


While the control has the focus, the Text property contains the text data currently in the control; the Value property contains the last saved data for the control. When you move the focus to another control, the control's data is updated, and the Value property is set to this new value.



فرق ویژگی Text و Value : اولی حاوی داده جاری و دومی داده ذخیره شده البته بعد از ترک فوکس از تکست باکس.



*SelStart


The SelStart property uses an Integer in the range 0 to the total number of characters in the text box portion of a combo box.

To set or return this property for a control, the control must have the focus. To move the focus to a control, use the SetFocus method.

Changing the SelStart property cancels the selection, places an insertion point in the text, and sets the SelLength property to 0.



SelText 

If no text is selected, the SelText property contains a Null value.

The SelText property uses a string expression that contains the text selected in the control. If the control contains selected text when this property is set, the selected text is replaced by the new SelText setting.

To set or return this property for a control, the control must have the focus. To move the focus to a control, use the SetFocus method.


Event : OnKeyPress


The KeyPress event occurs when a user presses a key while a form or control has the focus. This event also occurs if you send a keystroke to a form or control by using the SendKeys action in a macro or the SendKeys statement in Visual Basic.




تعیین متغیر از نوع Boolean در استاندارد ماژول ، در صورتیکه در رویداد key press کلید space با کد اسکی 32 فشرده شد ، False شود








جمهوری اسلامی دیگر حریف بدحجابی ها نخواهد شد مخصوصاً در متروها ، میادین اصلی و دانشگاه های معتبر و رتبه برتر.



-صبح روز دوشنبه ۷ آبان ماه ۱۴۰۳، حدود ۲۰۰ دانشجو به دلیل عدم رعایت مقررات پوشش، توسط حراست دانشگاه امیرکبیر از ورود به محوطه دانشگاه منع شدند.
-بر اساس گزارش‌ها، این اقدام در سه ورودی دانشگاه از خیابان‌های حافظ، ولیعصر و رشت صورت گرفت و دانشجویان مذکور موفق به حضور در کلاس‌های خود نشدند.
-خبرنامه امیرکبیر همچنین اعلام کرده است که تعدادی از دانشجویانی که نسبت به این اقدام اعتراض داشتند، به اتاقک‌های حراست دانشگاه منتقل شده و مورد بازجویی قرار گرفتند./ امتداد
@khabarfarda_ir














لینک کردن رکوردها در فرم به زیر فرم




SubForm.LinkMasterFields property (Access)



از ویژگی LinkMaterFields همراه با ویژگی LinkChildFields برای تعیین اینکه چگونه مایکروساقت اکسس  رکوردها در فرم یا گزارش را به رکوردها در یک زیرفرم یا زیر گزا ش یا شئ embedded مثل Chart لینک میکند استفاده میشود. اگر این ویژگیها تنظیم شوند ،  زمان تغییر به رکورد جدید در فرم اصلی اکسس رکورد مرتبط در زیرفرم را به روز رسانی می کند.




این ویژگی ها می توانند فقط در نمای Design یا در هنگام Open کردن فرم یا گزارش انجام شود.


فیلدها یا کنترل هایی که شما برای تنظیم این ویژگیها استفاده می کنید نیازی نیست که نام های یکسان داشته باشند. اما آنها باید از نظر داده ای یکسان باشند یا دیتاتایپ و فیلدسایز سازگاری داشته باشند ( پس به data type هم توجه شود !!! ) . بعنوان مثال فیلد AutoNumber با فیلد Number چنانچه ویژگی FieldSize برای فیلد Number به Long Integer تنظیم شده باشد ، سازگار است.


نام کنترل ( شامل نام کنترل calculated )  را برای تنظیم ویژگی LinkMasterFields بکار ببرید ، اما نمی توانید نام کنترل را برای تنظیم این ویژگی استفاده کنید. اگر می خوهید مقدار محاسبه شده ( calculated value )  را بعنوان لینک برای یک زیرفرم ، زیر گزارش یا شئ embedded استفاده کنید ، یک فیلد calculated در کوئری تحت شئ child تعیین کنید و ویژگی LinkChildFields را به فیلد تخصیص دهید.


زمانیکه بیش از یک نام فیلد یا کنترل برای تنظیم این ویژگیها تنظیم می کنید باید تعداد مشابهی از فیلدها یا کنترل ها را برای تنظیم هر ویژگی مشخص کنید و نام ها را با یک semicolon از هم جدا کنید ( یعنی بین اسامی درج شده از ؛ استفاده کنید).