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

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

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

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

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

فیلتر در اکسس با استفاده از Select Query



قبل از کار با زبان SQL مخصوص اکسس و استفاده از Select Query برای فیلتر یک ستون و بیشتر طبق شرط ها باید با عملگرهای منطقی آشنا شوید تا به نوشتن سِلِکت کوئری و استفاده صحیح از آنها مسلط شوید ( این نحوه از Sql نویسی برای فیلتر پیشرفته [ استفاده از کوئری و نه کدنویسی ویژوال ] در اکسس بارها با شکل و توضیح عملگرها مکرراً بیان شده است مثل تصویر زیر ).


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

شرح اشکال تصویر به ترتیب : 

- جدول دارای ۱۱ رکورد است.

- ID مساوی و بزرگتر از ۲۷ فیلترشده.

- ID بین ۲۷ و ۳۳ در جدول لیست شده.

- ID کوچکتر مساوی ۳۳ نمایش داده شده.

- طبق داده های ستون Educa فیلتر شده یعنی رکوردهایی که شامل A یا B است.

- رکوردهایی که ID آنها بزرگتر مساوی ۲۷ و داده فیلد Educa آنها شامل A یا B باشد نمایش داده شده.

- در شکل آخر نیز تمام رکوردهای جدول نمایش داده شده  یا بعبارتی از فیلتر خارج شده .


برای Sort کردن بصورت صعودی یا نزولی میتوان از Order By که Optional است در عبارت SQL استفاده نُمود . مثل Order By ID ASC

Asc : [ A-Z],[0-9]

Desc : [Z-A],[9-0]


SELECT fieldlist
FROM table
WHERE selectcriteria
[ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]


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














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







فرق پراپرتی text و value در textbox : 


text : متحویات فعلی کنترل است ، این پراپرتی تا زمانیکه کنترل فوکِس دارد در جریان است و به محض فوکس کردن میشود value ،  امتحان کنید.

value : مقدار ذخیره شده کنترل تکست باکس است



برای بررسی Null بودن تکست باکس یا تکست باکس کمبوباکس کافیست از تابع IsNull استفاده کنید برای فیلتر یا خارج شدن از فیلتر استفااده میشود 


IsNull(text0)> Null > True

IsNull(text0) >Not Null >False


IsNull returns True if expression is Null; otherwise, IsNull returns False. If expression consists of more than one variable, Null in any constituent variable causes True to be returned for the entire expression.

مقدار Null نشاندهنده یک دیتا تایپ از نوع Variant ( داده شامل text یا number و ... باشد ) بدون داده معتبر است ، مشابه Empty ( خالی یا پوچ )  و نمایانگر رشته با طول صفر ( "") نیز نیست.


NULL = داده نامعتبر


The Null value indicates that the Variant contains no valid dataNull is not the same as Empty, which indicates that a variable has not yet been initialized. It is also not the same as a zero-length string (""), which is sometimes referred to as a null string.


Important:  Use the IsNull function to determine whether an expression contains a Null value. Expressions that you might expect to evaluate to True under some circumstances, such as If Var = Null and If Var <> Null, are always False. This is because any expression containing a Null is itself Null and, therefore, False.



نکته : هر عبارتی حاوی یا شامل داده نامعتبر به تنهایی NULL است و بنابراین FALSE 




بی انصافیه واقعاً با این همه توضیحات و رفرنس دوستان امتیاز خیلی کم به وبلاگ بدهند.





۴۹ دقیقه پیش · مجید عشقی، رئیس سازمان بورس و اوراق بهادار با ارسال نامه‌ای به طور رسمی از سمت خود استعفا داد. استعفای او سه روز پس از افشای وام‌های کم‌بهره



۲ روز پیش · مجید عشقی و اعضای هیئت مدیره سازمان بورس از منابع این سازمان وام‌های میلیاردی با سود چهار درصد برداشت کرده‌اند. به گزارش تجارت نیوز،






۱۵ شهریور ۱۴۰۳



در مشهد کمی آن سوتر از هتل های ۵ ستاره، وحشتناکترین شهر از نظر فقر، فساد و فاصله طبقاتی وجود دارد. سروصدای عزاداری و پیاده روی ما هم دنیا را فرا گرفته، اما امام رضا کجای زندگی و جامعه ماست؟

 جماران: آیت‌الله سروش محلاتی در سخنرانی شب شهادت امام رضا(ع) در کانون توحید تهران، میراث فرهنگی و مواضع امام رضا(ع) را شبیه امام علی(ع) دانست و در بیان علت این شباهت گفت: در میان امامان، امام علی خلافت ظاهری داشت و امام رضا هم در ولایتعهدی شبه خلافت داشت و بقیه امامان کناره گیری یا معارضه با حکومت داشتند.













زبان Sql در فیلتر کردن رکوردها ( کوئری )


اشعار تشییع جنازه اسماعیل هنیه در دانشگاه تهران  مرداد ۱۴۰۳


مرگ بر سه ابلیس    آمریکا اسرائیل و انگلیس



مروری بر نوشته های قدیمی !!!


برای درک نوشتاری کد SQL باید کارکرد عملگرهای منطقی را بدانید . با جستجوی ساده می توانید این کار را انجام دهید .



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



در تصویر زیر جدول Orders فیلد OrderID آن از شماره 10248 تا 10443 پر شده

از Val به این علت استفاده شده چون دیتا تایپ فیلد OrderID عددی است ( int )


Dim MyValue
MyValue = Val("2457") ' Returns 2457.
MyValue = Val(" 2 45 7") ' Returns 2457.
MyValue = Val("24 and 57") ' Returns 24.











فرض کنید دو  تکست باکس دارید که میخواهید فقط اعدادی بین اینها لیست شوند ، در صورت وجود نداشتن یا Null شدن از فیلتر در بیاید و کل رکوردها نمایش داده شوند یا اگر تکست باکس اول پر شده بود اعداد بالاتر و خودش یا اگر  تکست باکس دوم فقط پر شده بود اعداد پائین تر از خودش فهرست شوند.



عبارت Sql زیر  رکوردهایی از جدول Orders را با تعیین شرطی نمایش می دهد.


w3schools


عبارت زیر را در لینک بالا باکس Sql Statement جایگزین کرده و امتحان نمائید.

Select * from Orders Where (orderID>=Val(10440) or False) And (OrderID<=Val('') or True)


لینک مورد نظر برای کسانیکه به سیستم دسترسی ندارند مناسب است  شما می توانید Sql نویسی را یاد بگیرید .



عبارت Sql زیر را نیز در باکسِ لینک W3Shool قرار دهید . رکوردهایی که دارای OrderID بزرگتر از  10280 بوده و شرط دیگر اینکه CustomerID آن بین 70 و 72 است را لیست میکند


Select * from Orders Where ((orderID>=Val(10280) or False) And (OrderID<=Val('') or True)) And ((CustomerID>=Val(70) Or False) And (CustomerID<=Val(72) Or False))


طبق تصویر زیر 8 رکورد یافت و فهرست شد.





Select * from Orders Where ((orderID>=Val('') or True) And (OrderID<=Val('') or True)) And ((CustomerID>=Val(88) Or False) And (CustomerID<=Val('') Or True))



عبارت بالا نیز تنها رکوردهایی از جدول Orders را نمایش میدهد که دارای CustomerID بالاتر از و خود 80 باشد.






اگر چندین باکس برای فیلتر داشته باشید ارزش این همه عبارت نویسی را ندارد مخصوصا اگر چندین فرم مجبور باشید در پایگاه داده بسازید در این مواقع باید از یک ماژول استفاده کنید که بتوانید در هر  فرمی آن را فراخوانی کنید.




در مورد True یا False هایی که در عبارات ذکر شده باید گفت که منظور از آنها در اصطلاح عامیانه خالی بودن یا نبودن تکست باکس ها در فرم است . اگر تکست باکس Null باشد نتیجه تابع ایزنال True و اگر تکست باکس درونش پرشده باشد False است.



با Between نمی توان اینچنین مانورهایی را داشت در نتیجه از عملگر کوچکتر و بزرگتر استفاده کردیم !!!




اگر بخواهید در Query Builder انجام دهید و با Between برای جستجوی بین دو تاریخ : 


فرمی تهیه شده که دارای  دو TextBox برای ورودی تاریخ است  بعد از زدن باتن Show Orders کوئری نمایش داده خواهد شد 




در کوئری ورودی زیر در ردیف criteria برای فیلد OrderDate ذکر می شود : 


آدرس دهی کرده که تکست باکس ها با نام RptStart و RptEnd در فرم frmRepirt_DateRange وجود دارد. عبارت زیر در قسمت Criteria فیلد OrderDate قرار داده شده است.

Between [Forms]![frmReport_DateRange].[RptStart] And [Forms]![frmReport_DateRange].[RptEnd]


کوئری همچنین خالی بودن باکس ها را بررسی میکند ( IsNull ) ، حتی با خالی بودن یک باکس کوئری تمام رکوردها را نمایش می دهد. یا از فیلتر تاریخ در می آید.

همانطور که در تصویر می بینید  آدرس دهی تکست باکس در فرم مربوطه ( فرم باز ) در سر ستون قرار داده شده و در قسمت Or ( پائین Criteria ) و زیر همان ستون تابع IsNull نوشته شده است.




در همین قسمت Query Design می توانید به Sql آن هم دسترسی داشته باشید که متوجه شوید ساختار نوشتاری را اکسس چه داده که یاد بگیرید. ولی عملگرهای منطقی را حتما یاد بگیرید هم And هم Or و هم Null



اگر شرطی را زیر هم بنویسید ( در یک Row نباشد )  به معنای  Or است  و اگر در یک ردیف بنویسید در زبان Sql به معنای And در نظر گرفته می شود و اگر حتی یک کدام True یا موجود باشد کوئری خالی نمایش داده می شود.چون نتیجه False خواهد بود در عملگر And 



Form.Requery Method

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












( Select Query ( Access برای مشاهده محتویات نیازمند واریز مبلغ مورد نظر است

این مطلب توسط نویسنده‌اش رمزگذاری شده است و برای مشاهده‌ی آن احتیاج به وارد کردن رمز عبور دارید.