ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
Offset 2A
Database Without Password
90 FF 85 9A 31 C5
79 BA ED 30 BC DF
CC 9D 63 D9 E4 C3
9F 46 FB 8A BC 4E
F4 51 EC 37 2F EE
9C FA B4 F4 28 E6
61 1C 8A 60
Database With Password 1234 ( Low
(Security
90 FF 85 9A 31 C5
79 BA ED 30 BC DF
CC 9D 63 D9 E4 C3
9F 46 FB 8A BC 4E
C5 51 DE 37 1C EE
A8 FA B4 F4 28 E6
61 1C 8A 60
الگوریتم XOR
F4 XOR 31=C5
EC XOR 32=DE
2F XOR 33=1C
9C XOR 34=A8
Xor binaryhttp://xor.pw/#
مثال در سیستم دیگر و با تاریخ تولید متفاوت :
طبق تصویر قبل ؛ از آفست 3E تا 41 برای کد کردن پیج هست و پسورد از آفست 42 ببعد هست . مربوط به ۲۰۰۷ و ببعد نمی باشد.
فرض کنید کنترل چک باکسی در فرم ساخته اید به نام Check2 که در فرم اصلی با نام Form3 قرار گرفته میخواهید آن چک باکس را به رکوردسورس فرم وصل کنید به این منظور که هر زمان باتنی با نام فیلتر را فشردید بر حسب تگ آن چک باکس فیلتر در دیتیل اعمال گردد.
در تگ چک باکس مقدار را وارد کنید ( فرض می کنیم میخواهیم فیلد تحصیلات در دیتیل با مقدار چک باکس فیلترشود پس مقدار تگ را دیپلم قرار می دهیم ) سپس به دیزاین فرم رفته و در رکورد سورس به کوئری بیلدر می رویم ( با زدن سه نقطه کنار باکس رکوردسورس) .
در قسمت Criteria فیلد Education تایپ میکنیم
Forms!Form3!Check2.Tag
حتما در رویداد باتن فیلتر منبع فرم را ریکوئری کنید
Me.Requery
زمانیکه فرم باز شود دیتیل فرم طبق مقداری که در پراپرتی تگ ( Tag ) چک باکس گذاشتید فیلتر میشود و امکان حذف فیلتر را ندارید. (مگر ساخت باتن دیگر و نوشتن Me.FilterOn=False )
اگر بخواهید زمان بازشدن فرم کل رکوردها نمایش داده شود و زمانیکه بر روی باتن فیلتر فشردیدآنوقت فیلترانجام شودباید دریک ستون دیگرفیلدEducation را انتخاب و توتالزرا Where کنید و سپس در کریتریای آن بنویسید
(iif(Forms!Form3!Check2=True,Forms!Form3!Check2.Tag,False
موردبالا بعد از برداشتن تیک دیتیل را خالی نمایش میدهد که برای اینکار از Is Null آن چک باکس و false در iff ذکرشده استفاده می کنیم.
فیلتر کردن تاریخ :
- دو تکست باکس به نام های Text12 و Text14در فرم دارید و می خواهید رکوردهای بین دو تاریخ درج شده در دو تکست باکس فیلترشود در همان کوئری بیلدر در شرط فیلد تاریخ می نویسید
Between Forms!Form3!Text12 And
Forms!Form3!Text14
*** Null معادل هیچ مقداری نیست جمع مقادیر با Null همان Null میشود پس برای فیلد رکوردی که Null است یا کنترلی که Null است باید صفر در نظرگرفته شود تا جواب جمع Null نشود و ارور دریافت نکنید !!!
اگر یکی از تکست باکس ها یا جفت خالی باشند چه اتفاقی خواهد افتاد به رفتار عملگرها مراجعه کنید ) ؟!!!
طبق داکیومنت اکسس بولین مقدار ندارد ولی برای فالز صفر و برای ترو هر عددی غیر از ترو می تواند باشد
Between True And Null=Null
Between Null And True=Null
Between Null And Null=Null
( یکسری از دوستان فقط بلدن کپی کنن !!! در عبارت بالا فاصله
رعایت شود )
نکته !!! اگر در تکست باکسها الگوی ورودی یا Input Mask استفاده کردید برای تاریخ حتما باید مثل Input Mask فیلد تاریخ باشد یعنی اگر در فیلد تاریخ جدول از 0 ;0000/00/00 استفادا کردید که اسلش ها هم درنظر گرفته میشود اگر Inpust Mask تکست باکس ها را فقط 0000/00/00 در نظر بگیرید چون مچ نمی شود خالی نمایش میدهد و یا اگر اینپوت ماسک شما در جدول بصورت 0000/00/00 ( که اسلش ها در نظر گرفته نمی شود ) باشد و در تکست باکس از اینپوت ماسک استفاده نکرده باشید و خودتان تاریخ را با اسلش تایپ کنید باز هم مچ نمیشود چون در جدول فرضا 13980120 ثبت شده ولی شما در تکست باکس 1398/01/20 وارد کرده اید . ( پس خالی بودن دیتیل فرم بدین معنیست که مچ نشده چه تاریخ مورد نظر در مقدار فیلد جدول نباشد یا اینکه الگوی شما با تکست باکس نخواند )
پس اول چک کنید که الگوها یکی باشند !!! بعد از تطبیق دادن اگر شما یکی از تکست باکس ها را خالی رها کنید زمانیکه باتن فیلتر را کلیک می کنید باز هم دیتیل را خالی نمایش می دهد برای اینکه اگر یکی از آنها خالی بود از حالت فیلتر خارج شود کافیست با آن آدرس تکست باکس عبارت Is Null را بکار ببرید ( بافاصله !!! ). اشتباه نکنید در محیط وی بی تابع IsNull وجود دارد.
Between (Forms!Form3!Text12 Or Forms!Form3!Text12 is Null) And
(Forms!Form3!Text14 Or Forms!Form3!Text14 is Null)
برای درک عبارت بالا بهتر است حتما عملکرد عملگرها را بدانیم
Boolean Operation
not
NULL
= NULL
NULL
or false
= NULL
NULL
or true
= true
NULL
or NULL
= NULL
NULL
and false
= false
NULL
and true
= NULL
NULL
and NULL
= NULL
The Microsoft Access IsNull function returns TRUE if the expression is a null value. Otherwise, it returns FALSE.
فرضا در Text12 هیچ مقداری وجود ندارد ( Null ) یعنی Null است و is Null برابر True ( چون در اینجا تکست 12 Null است پس True را بر می گرداند ) پس طبق بالا داریم
Null Or True=True
A | β | AND(&&) | OR(| |) | NOT(exclA) |
---|---|---|---|---|
FALSE | FALSE | FALSE | FALSE | TRUE |
FALSE | TRUE | FALSE | TRUE | TRUE |
TRUE | FALSE | FALSE | TRUE | FALSE |
TRUE | TRUE | TRUE | TRUE | FALSE |
When Visual Basic converts numeric data type values to Boolean
, 0 becomes False
and all other values become True
. When Visual Basic converts Boolean
values to numeric types, False
becomes 0 and True
becomes -1.
در مورد Between...And :
If expr, value1, or value2 is Null, Between...Andreturns a Null value.
برای شرط تاریخ میتوان با Iif شرطی نوشت که اگر تکست باکس شروع خالی بودبرای عملگر بزرگتر ( برای تکست باکس شروع ) First یا Min ( بهتر است استفاده شود ) فیلد تاریخ اعمال شود و برای عملگر کوچکتر ( برای تکست باکس خاتمه ) اگر تکست باکس خاتمه خالی بود Last یا Max فیلد تاریخ ( که بهتر است )
استفاده از توابع ویندوز API
در اکسس تابعی برای این موضوع در نظر گرفته نشده ولی میشود با این توابع و هندل کردن ویندو پنجره ای را بست کامند باتن هایی که در Title Bar هست را برداشت مثل خاصیت MinMax Button =No در پراپرتی شیت فرم اکسس ، یا تغییر پوزیشن نمایش Msgbox سیستمی و یا Icon را در Title Bar فرم انداخت ویا پوزیشن پنجره را تغییر داد و خیلی کارهای دیگر یا حتی گرفتن تکست در Title Bar که همان Caption هست و یا تغییر
Declare Function ShowWindow Lib "User32" ( Byval Hwnd As Long , Byval ncmdShow As Long ) As Long
نحوه ی نگارش تابع در ( Win64 و Win32 ) فرق میکند و باید در Win64 قبل از فانکشن Ptrsafe را قرار داد و کل دیتا تایپ Long در تابع به LongPtr تبدیل شوند اگر باید در هر دو 32 بیت و 64 کار کند باید از if Win64 Then # و Else .. End If استفاده کرد که قبل از Else با PtrSafe و LongPtr طبق روش بالا و برای بعد از Else همان تابع بدون PtrSafe و Long قرار می گیرد
Hwnd نام کنترل مثلا فرم یا اپلیکیشن اکسس ؛ مثلا در اکسس
نکته : قبل از گذاشتن تابع زیر جهت مخفی شدن پنجره ی اصلی اکسس حواستان باشد در رویداد کلوز فرم حتما دستور خروج از اپلیکیشن که Quit هست با Docmd را بدهید وگرنه برای بستن باید از Task Manager ویندوز استفاده کنید چون برنامه ی شما هنوز باز است و ویندوز تنها با دریافت مسیج حاصل از زدن دکمه ی کلوز پنجره ی اصلی اپلیکیشن اکسس را خواهد بست !!!
ShowWindow Application.hWndaccessApp , 0
Hide 0
Normal 1
Minimized 2
Maximized 3