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

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

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

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

رویداد چرخش غلطک ماوس در یک کنترل مثل TextBox




Public Const WM_VSCROLL = &H115 Public Const WM_HSCROLL = &H114 Public Const SB_LINEUP = 0
Public Const SB_LINEDOWN = 1
Public Declare Function SendMessageA Lib "User32" (ByVal hwnd As Long, ByVal wMsg As Long,ByVal wParam As Long, lParam As Any) As Long
Public Declare Function GetFocus Lib "User32" () As Long


Public Function Wnd(Ctl As Control) As Long
On Error Resume Next
Ctl.SetFocus
If Err Then
Wnd=0
Else
Wnd=GetFocus
End If
On Error Goto 0
End Function

OnMouseWheel : 

HandleWindow=Wnd(Screen.ActiveControl)

Count<0
iCount From1 To -1 * Count
hWnd,WM_VSCROLL,SB_LINEUP,0
Count Not Zero
iCount From 1 To Count
hWnd,WM_VSCROLL,SB_LINEDOWN,0






به گزارش سایت خبری تحلیلی ساعدنیوز به نقل از روزیاتو، آنی شارلوت ۲۳ ساله، اهل شهرستان ساری انگلیس، وقتی در ۱۶ سالگی برای معاینه پیش پزشک زنان رفته بود معلوم شد به دو رحمی (Uterus Didelphys) دچار است.

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


۱۸ دیماه ۱۴۰۱ :

روزنامه آرمان امروز از رونق بازار اجاره کارت ملی برای معامله خودرو در بورس کالا گزارش دارد. به نوشته این روزنامه کارت های ملی تا ۱۰۰ میلیون تومان اجاره داده می‌شوند! .... دلالان همه جا هستند ، سکه دلار بورس کالا 






















ویژگی ListRows و Selected در کمبو باکس


اواخر آذر ۱۴۰۱:


بانوان مطالبه‌گر حوزه عفاف و حجاب اعلام کردند؛
بانوان مطالبه‌گر حوزه عفاف و حجاب که از حدود سه هفته پیش در برخی از بقاع متبرکه بست نشسته‌اند و خواستار اجرای مطالبات امامین انقلاب و قانون عفاف و حجاب هستند، اعلام کردند: تا زمانی که حداقل ۵ هزار پیامک تذکر حجاب ارسال نشود به این بست‌نشینی ادامه می‌دهیم.


Selected : 

انتخاب مورد از لیست باکس کمبو

Combo1.Selected(3)=True

ایندکس ردیف ها در لیست باکس ZeroBase هست یعنی ردیف ۱ ایندکس صفر دارد پس طبق خاصیت یا ویژگی مثال زده شده 3 می شود ردیف چهارم


The item in the combo box. The first item is represented by a zero (0), the second by a one (1), and so on.


ListRows : 

حداکثر ردیف هایی که نمایش داده می شود


SelStart : 

برای تعیین نقطه شروع در متن یا نقطه درج.

این ویژگی از دیتا تایپ integer در محدوده صفر تا تعداد کل کاراکترها در قسمت تکست باکس یک کمبو باکس بهره می برد.

.SelStart=0

باعث می شود که از حالت انتخاب خارج شود


SelLength هم طول کاراکتر را مشخص میکند فرضا با SelStart نقطه شروع در متن رو انتخاب می کنید و با ویژگی گفته شده ، می توان برای جستجو در متن و های لایت کردن یافته بهره برد.


ScrollBarAlign : 


جهت نوارپیمایش عمودی یا Vertical از صفر تا ۲ ... 

۱ Scroll Bar در سمت راست کنترل قرار می گیرد .

۲ Scroll Bar در سمت چپ کنترل قرار می گیرد.


TabStop :


کاملا مشخصه یعنی مانع از استفاده Tab برای بردن فوکس به کنترل خواهد شد به False و True تنظیم میشود البته مراقب کلیدهای ترکیبی باشید.


LimitToList : 


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




نماینده ولی فقیه در استان لرستان در صحبت های جنجالی اخیر خود گفت: مسئله بر سر حجاب نیست بحث بر سر سوق دادن به سمت همجنسگرایی و ازدواج با حیوانات است.







سیاستمدار سیاس

او پس از واقعه کودتای سوم اسفند ۱۲۹۹ به دست رضا خانِ میرپنج برای فرار از دست غضب شاه، بست‌نشین مرقد حضرت معصومه (س) شد و از تبریز به قم مهاجرت کرد.

یک روز بعد از این مهاجرت احضاریه‌ای مربوط به املاک لشته‌نشاء به دست فخرالدوله رسید. احضاریه را عبدالکریم خان اکبر معروف به میرزا کریم‌خان رشتی و برادرش عبدالحسین خان اکبر معروف به معزالسلطان و سردار محیی برایش فرستادند. فخرالدوله نیز با وجود مخالفت همسرش میرزا محسن خان، برای اعاده دادرسی به دادگستری تهران رفت و با سردار سپه ملاقات کرد و موفق شد نظر مساعد شاه را برای حفظ املاک پدریش جلب کند.

رضاخان با دیدن فخرالدوله و شهامتش، او را این گونه توصیف کرد: «قاجاریه یک مرد و نیم داشت، مردش فخرالدوله و نیم مردش آغا محمدخان بود.»  البته قاجاریه و فخرالدوله مثل ... از رضاخان ترس داشتند چون اگر دست از پا درازتر می کردند در دم کشته می شدند.


















روش تشریحی تبدیل اعداد به حروف فارسی در اکسس




همیشه یاد بگیریم که کپی بردار نباشیم انجام کار بالا به راحتی تنها با نوشتن دو تابع امکانپذیر است . ( البته خطوط زیادی باید برای تعریف دهگان و صدگان و هزارگان در توابع نوشته شود ، حتی هزار و میلیون یا میلیارد ، ولی در کل مهّم ترین بخش ، روش جدا کردن سه رقم ارقام و ارسال به یک تابع ترجمه گر ( توسط خودتان نوشته شده با کدهای خیلی ساده ) است . )




۱-جدا کردن سه تایی ارقام و ارسال به تابعی جهت ترجمه این سه رقم به حروف فارسی یا انگلیسی ... ( جدا کردن سه رقمی در اعداد می تواند از سمت چپ انجام شود ) 

۲-نوشتن تابعی جهت ترجمه ارقام سه تایی ارسالی و بازگشت مقدار تابع ( برای حروف فارسی حتما از تابع Chrw استفاده کنید. )



به همین راحتی ...


در توضیح مرحله اول میشه از توابع Len و iif و تقسیم ( / ) یا علامت خارج تقسیم ( \ ) استفاده کرد برای خروجی تعداد سه رقم سه رقم در یک رقم مثل خروجی شکل زیر :




فرضا عدد ۱۲۳۴ در تابع Len ، خروجی آن دارای طولی با ۴ کاراکتر است و اگر از توابع و علامت های بالا استفاده شود می شود شامل دو بخش که باید به تابع Translate ارسال شود یکی ۲۳۴ و دیگری ۱ 


یا با نوشتن : 


Function PartNo(x) as Double

 L=Len(x)

If L/3=Int(L/3) Then

PartNo=Int(L/3)

Else

PartNo=Int(L/3)+1

End If

End Function


L(12345)=5

5/3=5\3

1.67=1  False

Int(L/3)+1

Int(5/3)=1+1=2

?PartNo(12345)

2


طبق تصویر زیر با توابع int و abs هم می توان به نتیجه رسید ... یک واحد به عدد صحیح اضافه میکند در صورتیکه عدد اعشاری بدست آید




با تابع Mid می توان کاراکتر های مورد نظر از یک متن را استخراج کرد . سه آرگومان دارد اولی متن ، دومی از کجای متن شروع کند ( اجباری هستند ) ، آخری اختیاریست و تعداد کاراکترها  ( به انتخاب شما اگر این آرگومان خالی رها شود تا انتهای متن ) را در خروجی نمایش میدهد.

Mid ( text, start_position, [number_of_characters] )

ALT+F11 Then Ctrl+E

?Mid("1234567",3)

34567

?Mid("1234567",3,2)

34


این تابع Vba ذکر شده در نهایت در استخراج ۳ رقم ۳ رقم به کمک ما می آید 


یه روش سریعتر بعد از توابع Abs و int منفی در Vba استفاده از دو تابع زیر است که فرضا عدد ۱۲۳۴۵۶۷ به شکل ۹ رقم دربیاد که در لوپ جداسازی ۳ رقم آسانتر باشد و نیازی به فکر کردن زیاد نباشد



Dim c%

c=1

For i=1 To 3

sText="001234567"

Debug.Print Mid(sText,c,3)

c=c+3

Next

c=1

Mid("001234567",1,3)=001

c=4

Mid("001234567",4,3)=234

c=7

Mid("001234567",7,3)=567



برای ترجمه : 

تعریف یک آرایه با بازه مشخص 

"234"

F(0)="صفر"

F(4)="چهار"

F(30)="سی"

F(200)="دویست"

S=F(val(Mid("234",1,1))×100)

D=F(val(Mid("234",2,1))×10)

Y=F(val(Mid("234",3,1))×1)

Ret=S & iif(s=0,"","و" ) & D & iif(D=0,"","و" ) & Y


















معلومه اگه دست روی دست بذاریم
دستی میادو میوه این باغو میچینه
آبادی این خونه به دست خودمونه
کِی دیدی غریبه واسه ما دل بسوزونه





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

طبق نظر و گفته ی ایشون برخورد با شخص البته نه فیزیکی ، در داخل رستوران با خیابان متفاوت است ( احتمال جریمه یا محرومیت از بعضی خدمات اجتماعی )  و چون تذکر شفاهی هم حذف میشه پس شخص عادی نمی تونه نهی از منکر بکنه ،  هوشمند هم اینه که تصویر شخص رو دوربین میگیره حالا در مترو ، پشت فرمان ، تقاطع ها یا ممکنه حتی فروشگاه های بزرگ ، در بانک اطلاعاتی جستجوش میکنه دختر  یا زن بدحجاب رو ( چشمانی همیشه در رصدهستن البته فکر کنم خانم رصد کنه ) تا براش تذکر بفرسته و بعد هم جریمه در صورت عدم رعایت.



شهید حکمت پور : 


  • دوستان من، انقلاب ما خون می ‏خواهد تا استوار و پیروز گردد. همچون انقلاب سرور شهیدان حسین‏بن‏على(ع) که هنوز خون آن شهیدان در حال جوشش است و الان همان تکرار شده. دین و مکتب در خطر نابودى قرار گرفته، باید با دادن خون آن را یارى و در دنیا پرچمش را به اهتزاز در آوریم. براى یارى دین و مکتب و امام عزیز، رهبر انقلاب اسلامى ایران باید قاطع‏تر و جدى‏ تر تصمیم بگیریم. من شما را دوست دارم و مى‏ خواهم در قبال این دوستى ادامه دهنده راهم و راه تمام شهیدان باشید.


پذیرش فرجام‌خواهی سامان صیدی در دیوان‌عالی کشور

فرجام‌خواهی سامان صیدی (یاسین) از متهمان اغتشاشات اخیر از سوی دیوان‌عالی کشور پذیرفته شد و با عنایت به نواقص تحقیقاتی و مستنداً به بند 2 شق ب ماده 469 قانون آیین دادرسی کیفری پرونده نامبرده جهت رسیدگی مجدد به همان دادگاه ارجاع شده است.


روابط عمومی دیوان‌عالی کشور اعلام کرد: خبر پذیرش فرجام‌خواهی محمد قبادلو یکی از متهمان اغتشاشات اخیر بدین وسیله اصلاح می‌‌شود؛ دیوان‌عالی کشور ضمن رد فرجام‌خواهی به‌عمل‌آمده در پرونده محمد قبادلو، دادنامه نامبرده را مستنداً به شق الف ماده 469 قانون آیین دادرسی کیفری ابرام کرد.


۵ دی ۱۴۰۱ : 

به گزارش همشهری آنلاین از مرکز رسانه قوه قضاییه، در پی ممانعت نسبت به خروج همسر و دختر علی دایی از کشور، پیگیری‌ها حاکی از آن است در پی اقدامات اخیر خانواده علی دایی «صاحب یک گالری بزرگ طلا و جواهر» در همراهی با گروه‌های ضد انقلاب و اغتشاشگران و دعوت به اعتصاب، همسر علی دایی متعهد شده بود قبل از قصد خروج از کشور نهادهای ذیربط را از تصمیم خود مطلع کند.

بر همین اساس، پس از اطلاع نهادهای مربوطه از پرواز حامل همسر علی دایی، با هماهنگی صورت گرفته پرواز یادشده در فرودگاه کیش فرود آمده و همسر و دختر علی دایی از هواپیما خارج شده‌اند



۶ دی ۱۴۰۱ : 


دستور ویژه برای رسیدگی به پرونده فوت دختر بستکی | علت تیراندازی در ایست بازرسی چه بود؟


گفته می شود مأموران پس از تعقیب و مراقبت‌های لازم به یک دستگاه پژو پارس با شیشه دودی غلیظ مشکوک شده و دستور توقف دادند که راننده بدون توجه به دستور پلیس و علائم هشدار دهنده با افزایش سرعت اقدام به فرار کرد. در این تعقیب و گریز یک دختر خودرو هدف اصابت گلوله قرار گرفت و بلافاصله به بیمارستان منتقل شد اما متاسفانه جان باخت.


به گزارش فارس، احمد جباری نماینده مردم غرب هرمزگان ظهر امروز در بندرعباس اظهار کرد: حادثه روز گذشته برای یک خانواده اهل بستک در جاده بستک - لاور میستان و فوت یک دختر ۱۲ ساله در جریان تیراندازی پلیس به خودروی حامل یک خانواده در این محور مایه ناراحتی و اندوه فراوان مردم این شهرستان شده است.

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


روز گذشته (دوشنبه، 5 دی ماه) از سوی مسئولان نیروی انتظامی استان هرمزگان چنین اعلام شد که حوالی ساعت 16:30 روز یکشنبه، 4 دی ماه نیروی انتظامی شهرستان بستک ( البته بعدها گفته شد لباس شخصی ها ) مطلع می شود که یک محموله مواد مخدر به واسطه یک پژو پارس در حال حمل است به همین دلیل در مسیر تردد این خودرو قرار گرفته و برای مهار آن تلاش می کنند اما سرنشینان خودرو به فرمان توقف پلیس توجه نکرده و با سرعت بیشتر به حرکت خود ادامه می دهند. این در حالی بوده که شیشه های این خودرو نیز دودی بوده و داخل آن قابل رویت نبوده است.


همچنین به گزارش خبرگزاری فارس، عبدالرحمن اعتباری پدر مرحومه سهی اعتباری ظهر امروز اظهار کرد: اتفاقی که دیشب برای دخترم افتاده هیچ ربطی به اغتشاشات و ناآرامی‌های در شهرستان ندارد ( >> اینجا پدر مرحومه به مواد مخدر اشاره نکرده << ) و از مراجع قانونی می‌خواهم که پیگیری این موضوع را انجام دهند.




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





لوکادیا که به تازگی به کشورش برگشته و قرار داد با پرسپولیس را یک طرفه فسخ کرد در مورد برگشتش گفت : اینکه من از اروپا به جایی آمدم که انگار ۱۰۰سال از دنیا عقب است .









هرچند بسیاری از افراد با استفاده از Platiner، درمان و رفع درد را به طور کامل گزارش کرده‌اند. اما استفاده از پلاتینر، جایگزین مراجعه به پزشک نیست.


دیماه ۱۴۰۱

رغد


۸ دی ۱۴۰۱

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


۸ دی ۱۴۰۱ 

رئیس‌کل جدید بانک مرکزی ( فرزین ) گفت: حتما نرخ نیما را روی قیمت ۲۸۵۰۰ تومان تثبیت خواهیم کرد و واردات تمام کالاهای اساسی و مواد اولیه و ماشین‌آلات را با این نرخ تامین خواهیم کرد.



«نورا» شهروند سعودی در پاسخ به این سوال که چرا می خواهد خدمتکار اوگاندایی خود را بفروشد، گفت: او نظافتچی و آشپز خوبی است اما نمی تواند از کودکم به خوبی نگهداری کند. مادرم هم مریض است و من فورا به پول نیاز دارم و برای همین هم می خواهم خدمتکارم را بفروشم.


۱۱ دی ماه ۱۴۰۱

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



سامان رشنو در صفحه توییتر خود نوشته است: «حکم خواهرم ‎سپیده رشنو پس از رفع اتهام «فراهم آوردن موجبات فساد و فحشاء» با سه عنوان اتهامی دیگر؛ «اجتماع و تبانی علیه امنیت کشور» و «فعالیت تبلیغی علیه نظام» و «بی‌حجابی در معابر» صادر شده است.»

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


برای گفته بالا کاش میرفتید تو مترو رو هم میدید یا خیابان های میرداماد و سئول و حتی بیمارستانهای جنوب شهر رو جمهودی اسلامی فقط به بزن و بهادرش پابرجاست فقط کسانیکه بُلد می شوند و دم دستش هست رو مجازات می کنه !!!



علی خانمحمدی سخنگوی ستاد امر به معروف و نهی از منکر گفت: مسأله فقط یک روسری نیست و مسائل جدی‌تری دارد مطرح می شود؛ در همین فضا یک سری افراد بحث همجنس‌گرایی، نیمه‌برهنگی و هم‌آغوشی در ملأ عام را دارند مطرح می‌کنند، باید واقع‌نگر باشیم.



دیماه ۱۴۰۱ : بالاخره ترانه هم با وثیقه از زندان آزاد شد






دهه دوم دیماه ۱۴۰۱ : برخورد جدی با بی حجابی در متروی تهران ! / بازرسی شهرداری تهران تاکید کرد !



۱۴ دیماه ۱۴۰۱ - همشهری آنلاین : قاسم فتح‌اللهی پاسدار سپاه محمّد رسول‌الله(ص) تهران بزرگ دریک اقدام تروریستی به شهادت رسید.


به گفته یکی از شاهدان عینی، حادثه این اتفاق حدود ساعت ۱۹ و ۴۵ دقیقه رخ داده است.

این شاهد عینی می‌گوید: هنگام عبور از مقابل خانه شهید متوجه حضور یک نفر در بن‌بست می‌شود و لحظاتی بعد صدای شلیک گلوله را می‌شنود.

تیراندازی سه مرتبه انجام شده و هر بار حدود سه یا چهار تیر شلیک شده است.






محمد مرندی، مشاور تیم مذاکره‌ ایران در مذاکرات وین:

  • من نه پاسپورت آمریکایی و نه سوگند وفاداری برای آمریکا خورده‌ام.

  • من فقط متولد آمریکا هستم؛ زیرا پدرم در سال ۴۲ به زندان رفتند و پس از این ماجرای برای خواندن درس به آمریکا مهاجرت کردند.

  • بعد از انقلاب به کشور برگشتم و دوباره برای ادامه تحصیل در دانشگاه به خارج از کشور مهاجرت کردم.















































خطا cannot add records join key of table not in recordset




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


از بودن فیلد در اون مجموعه ای که جوین می کنید حتما آگاه شوید ممکن است فیلدی Missing شده باشد ( بعلت تغییرات در فرم باند شده یا محدود شده به جدول )  از طریق پراپرتی شیتز یا برگه ویژگیهای فرم مربوطه و در Query Builder ، آن را اضافه کنید.









محدودیت یا Constraint در جدول اکسس



Constraint بسیار شبیه Index است و محدودیت هایی را در جدول و مقادیر فیلد اعمال می نُماید.برای مثال ، زمانیکه یک فیلد را بعنوان Primary key نشان می دهید ، هیچ دو رکوردی نمی توانند در فیلد مقدار یکسانی داشته باشند.همچنین می توان اگر لازم با شد با دو یا چند فیلد از آن برای رسیدن به یک مقدار منحصر بفرد و یونیک استفاده کرد.



Single-field constraint

CONSTRAINT name {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES foreigntable [(foreignfield1, foreignfield2)] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL]}













ساخت کوئری از دو جدول در اکسس


نوشتن ساب کوئری



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











در تصویر بالا جدولی به نام U1 با یک فیلد Unit ساخته شده ( که نتیجه و داده ای ندارد ) باید کوئری نوشته شود که در صورت خالی بودن آن تمام داده های جدول تصویر اول یعنی U ( شامل دو فیلد Unit,Dia ) نمایش داده شود.( مثل تصویرزیر )




در داخل جدول U1 متن یا متن هایی زیر هم ، یا وارد میشه یا در جائی ( فرمی ) توسط دستور  insert into به این جدول موقت یا Temporary اضافه می شود.حال می خواهیم بر اساس این جدول ، جدول U که شامل دو فیلد Unit و Dia است فیلتر شود....  از Select استفاده کردیم در Where دو شرط با عملگر Or نوشتیم یکی داده های فیلد Unit مساوی داده های آن فیلد در جدول U1 باشد و دیگری کانت یا رکوردهای جدول U1 برابر 0 باشد .


عملگرهای منطقی را با دقت مطالعه کنید : 


False Or False=False

True Or False=True

True Or True=True

True Or Null=Null


توضیح بیشتر :

حالت اول -  فرض کنیم جدول U1 خالی باشد (یعنی داخل فیلد Unit داده ای Export نشده باشد ) جوابِ اشتراک U و U1 فالز ( False است ) و جواب شمارش ( کانت ) جدول U1 نیز که صفر است True میشود در نتیجه طبق گفته بالا Fasle Or True  تمام داده های جدول U ( البته طبق فیلدهایی که در Select Query ) نوشتید نمایش داده خواهد شد 


حالت دوم - فرض می کنیم در فیلد Unit از جدول U داده هایی تایپ یا Export شده ، بنابراین اگر خوش بین باشیم که یک یا چند داده در دو جدول مشترک باشند جواب True خواهد بود و در شرط بعدی جوابِ کانت جدول U1 دیگر صفر نیست و False می شود ( چرا False می  شود ؟؟؟؟!!!! چون در شرط بعد از Or گفتیم که کانت جدول در صورتی True در نظر گرفته شود که نتیجه اش صفر را برگرداند) لذا با توجه به گفته عملگرها True Or False در نتیجه مشترک ها ( داده های فیلد Unit از جدول U که در U1 وجود  دارد ) نمایش داده خواهد شد فرضا اگر در جدول U1 داده 120A وارد شده باشد جدول U طبق همین داده فیلتر خواهد شد یعنی یک ردیف در جواب کوئری خواهید دید.


حالت سوم - کوئری نتیجه ای ندارد ، شرط قبل از Or >>> اگر جدول U و U1 در داده ی فیلد Unit اشتراکی نداشته باشند ( یعنی داده یا داده هایی در جدول U1 و فیلد Unit وارد شده باشد که اصلا در فیلد مربوطه در U موجود نباشد )  جواب False است ،  جوابِ شرط بعد از Or هم چون قرار است صفر بودن کانت جدول صحت کار باشد ولی عدد غیر صفر را در این حالت ( جدوا U1 خالی نیست ) نشان میدهد پس نتیجه این شرط هم False است .... False Or False باعث میشود که کوئری Result نداشته باشد چون اشتراکی در جداول در فیلد Unit ندارند.


شهریور ۱۴۰۱ :


دختر ۲۲ ساله کردستانی که همراه خانواده اش به تهران سفر کرده بود، توسط گشت ارشاد، جلب و ساعاتی بعد با عارضه قلبی و در حالی که هوشیاری نداشته به بیمارستان برده می شود و در لحظه نگارش این متن، وضعیت مساعدی ندارد.


دایی ‎مهسا امینی دختری که پس از بازداشت در اداره پلیس به کما رفت در مصاحبه با روزنامه اینترنتی فراز گفت:

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

فرمانده پلیس آمد، قول دادند تصویر دوربین‌های مداربسته را نشان‌مان دهند.

امروز نوبت دختر ما بود، فردا نوبت دختری دیگر است


چنانچه آنطور که ضدانقلاب می‌گوید و این فرد در اثر شکنجه به کما رفته حتما باید با متخلفین و خاطیان برخورد شود و پلیس باید در این زمینه پاسخگو باشد. مجازات برخورد با بی‌حجابی ضرب و شتم نیست و در سابقه پلیس نیز تاکنون گزارشی از برخورد فیزیکی با بدحجابان گزارش‌ نشده است.


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



انا للّله و انا الیه الراجعون و شوربختانه خانم مهسا امینی این دختر ۲۲ ساله و میهمان  پایتخت در تاریخ ۲۵ شهریور ۱۴۰۱ یا با کفایت پلیس یا بد شانسی خودش وفات نمود تسلیت به خانواده ایشان.



ای کاش آقای سید علی خامنه ای در مراسم پیاده روی اربعین و راهپیمائی روز ۲۲ بهمن دستور دستگیری بدحجابان یا باصطلاح بدپوششان را صادر کند و به مصلحت نظام خویش نیاندیشد که هیچ حکومتی جز حکومت مهدی پابرجا نیست حتی اگر در مسیر آن باشد.













متد Currentdb.Execute برای اجرای دستورات Sql در اکسس



اجرای action query مثل Update و Delete  یا عبارت Sql روی شئ مشخص شده


نوشتاری آن یه شرح ذیل است : 


Syntax

expression .Execute(QueryOptions)


آرگومان دوم که انتخابی است ( Options ) شامل : 


dbDenyWrite

اجازه نوشتن ( Write permission ) برای سایر کاربران را رد می کند ، تمام این انتخاب ها فقط در فضاهای کاری اکسس ( Workspaces ) 


dbFailOnError

 به روز رسانی ها ( Updates ) را  اگر خطاهایی رخ بدهد دوباره اجرا می کند ( به عقب بر می گردد ) 

dbSeeChanges

 یک خطا حین اجرا تولید می کند چنانچه کاربر دیگری در حال تغییر داده ای باشد که در حال ویرایشش هستید.


ویژگی RecordsAffected را برای تعیین تعداد رکوردهای متاثر از اجرای متد بالا بکار ببرید.برای مثال این ویژگی حاوی تعداد رکوردهای حذف شده ( Delete ) ، به روز رسانی شده ( Update ) یا اضافه شده ( Insert into ) هنگام اجرای action query هستند.زمان استفاده از متد Execute برای اجرای یک کوئری ویژگی RecordAffected از شئ QueryDef به تعداد رکوردهای  متاثر ( رکوردهایی که دستکاری داده اعمال شده ) تنظیم می شود


 










متُد Application.currentdb برای دسترسی (به) یا دستکاری ( اعمال تغییرات ) شئ در دیتابیس


برای دستکاری ساختار دیتابیس و داده هایش از Visual Basic بایستی از مدل DAO استفاده نمائید.

متُد CurrentDb راهی را برای دسترسی دیتابیس جاری از طریق Visual Basic بدون داشتن اطلاعات نام دیتابیس فراهم می سازد.بعد از تعیین و اشاره یک متغیر به دیتابیس جاری یا فعال می توان به سایر اشیاء و مجموعه ها در سلسله مراتب DAO هم دسترسی پیدا کرد و هم آنها را دستکاری نمود. ( سلسله مراتب DAO در زیر بیان شده و طریقه دسترسی به اشیاء مثل فرم و جدول و کوئری و غیره) 






Dim db As Dao.DataBase

Set db=CurrentDb


طریقه دسترسی چیست ؟؟؟؟ در بالا تعریف متغیر به Database و Set کردن آن .... فرض کنید یک کلاس ماژول نوشتید تنها راه دسترسی به آن استفاده از Set است... بعدها با مطالعه بیشتر خواهید فهمید.


فرضا می خواهید به رکوردست دسترسی پیدا کنید و جداول یا کوئری را در آن باز کرده و ویرایش کنید ، می بینید که Recordset در زیرمجموعه یا سلسله مرتبه پائینتری از DataBase قرار دارد ( تصویر بالا )  لذا باید اول به دیتابیس ارتباط بزنیم و بعد رکوردست ، So نمی توان مستقیم بدون تعریف متغیر به database و بدون این Dao که به Access اتَچ است ارتباط بگیریم 


Dim db As Dao.Database

Dim rs As Dao.Recordset

Set db=CurrentDb

Set rs=db.OpenRecordset("Select * From ZeroTbl")

Rs.Close

'Set Rs=Nothing



پس تعریف متغیر و نسبت دادن به اشیاء و Set نقش مهمی را ایفا می کنند.در بالا جدول ZeroTbl در یک شئ رکوردست که اجازه اَپند یا ویرایش یا حذف را می دهد باز شده و چون در حافظه موقت ، فضایی را  اشغال می کند حتما بعد از دستکاری داده ها باید آن فضا را خالی نمود.... از Add ، Edit و Delete و سپس Rs.Update استفاده می نمایند برای اضافه ، ویرایش و یا حذف رکورد یا ردیف مورد نظر یا ردیف ها !!! در جریان باشید اگر No Current Record برایتان Raise یا شلیک شد دوست من مُصِّر نباش قرار نیست معجزه ای صورت بگیره مشکل از شماست نه اینکه دستتون اَتَک نداره ... نه !!! بلکه شما در حال ویرایش رکوردستی هستی که اصلا رکوردی نداره جانَم   ) 


اگر برای شما مطلب مفید بود خواهشا در نظر سنجی شرکت نُمائید با تشکر و در پناه حق 







تیر ۱۴۰۱ ... فقط دلجوئی و اظهار تاسف  : 


سیدمحمد شاهچراغی استاندار و  جمعی از مسئولان استان قم با حضور در شهرک دامشهر، ضمن بررسی موضوع حمله سگ‌های ولگرد به اهالی این شهرک، با خانواده‌های دو کودک جان‌باخته بر اثر حمله این سگ‌ها در هفته اخیر دیدار و از آنان دلجویی کرد.


تیر ۱۴۰۱ : 


به گزارش فارس کمپین «برخورد با هتک حرمت امام جعفر صادق (ع) در سالن عروسی در اراک» در سامانه فارس من ثبت شد.
 مخاطبان کمپینی با عنوان «برخورد با هتک حرمت امام جعفر صادق (ع) در سالن عروسی غیرمجاز اراک» در سامانه «فارس من» ثبت کردند.
متن کمپین به شرح زیر است:
در زمین‌های کشاورزی اراک منطقه کرهرود یک تالار باغ به صورت غیرمجاز ساخته شده است که حکم تخریب آن در سال ۹۳ صادر شد، ولی به دلایل نامعلوم تاکنون اجرا نشد.
در شب شهادت امام جعفرصادق (ع ) در این مکان، مراسم عروسی با سر و صدای زیاد و پخش آهنگ‌های مبتذل برگزار شد، که باعث ناراحتی قشر مذهبی منطقه شده است.
به گزارش فارس با توجه به جریحه‌دار شدن احساسات دوستداران اهل بیت(ع)در این منطقه، امضاکنندگان این کمپین خواستار اجرای حکم تخریب این تالار باغ که مرکز فساد در این ناحیه است، هستند.


دختر جوان به نام المیرا در طرح شکایت خود گفت:«برای انجام تست بازیگری به دفتر سینمایی این کارگردان رفته بودم که مورد تعرض او قرار گرفتم و مدتی بعد متوجه شدم که باردار هستم.»

در حالی که نتیجه آزمایش دی ان ای در پزشکی قانونی نشان می داد که پدر فرزند، کارگردان مشهور است؛ این کارگردان به زودی در شعبه 12 دادگاه کیفری یک استان تهران برای دفاع از عنوان اتهامی تجاوز جنسی پای میز محاکمه خواهد رفت.


















تخصیص از موجودی انبار کل به Order های صادره برای کالا


مرداد 1401 : 


«اِنَّ رِبِّکَ لَبِالمِرصاد»

به استحضار ملّت شریف ایران می‌رساند:

شبکه‌ای از عوامل سازمان جاسوسی رژیم صهیونیستی که برای انجام عملیات تروریستی به کشور اعزام شده بودند، پیش از هر اقدام خرابکارانه‌ای توسط سربازان گمنام امام زمان(عجل‌الله تعالی فرجه‌الشریف) شناسایی و کلیّه‌ی عناصر عملیاتی بازداشت شدند.

اعضای این شبکه که از طریق یکی از کشورهای همسایه با عوامل سازمان جاسوسی - تروریستی موساد در ارتباط بوده و از اقلیم کردستان وارد کشور شده بودند، با بهره‌گیری از به‌روزترین تجهیزاتِ عملیاتی و ارتباطی و قوی‌ترین مواد انفجاری، قصد انجام اقدامات خرابکارانه و عملیات تروریستی بی‌سابقه‌ای در برخی نقاط حسّاس و اهدافِ از پیش تعیین شده را داشتند که با عنایات الهی و عملیات چند مرحله‌ای و پیش‌دستانه‌ی مجاهدان گمنام ایران اسلامی جملگیِ آنها به دام افتاده، تسلیحات، مواد انفجاری، تجهیزات فنّی و ارتباطی آنها نیز به طور کامل کشف و ضبط شد.





جدول اول و دوم زیر در سایت W3Schools با دستور Create Table ساخته و داده فیلدها هم با Insert Into اَپِند گردیده ،  تصاویر بعدی کوئری هستند در جریان باشید. فرض کردم جدول اول از موجودی انبارکل گرفته شده و جدول دوم نیز ثبت کالا و اُردِرهااست.


در جدول زیر ۴ محصول با نام فرضی Key در انبار کل به تعداد ذکر شده در ستون Inventory موجودی دارند



در جدول زیر درخواست ها ( Order ) طبق آیتم کالا و تعداد مورد نیاز جمع آوری شده ( حتما از عدد استفاده باید کرد یا ردیف !!! ما اینجا Order1 و Order2 ایجاد کردیم ) توجه : اگر شماره اُردِرها فرضا واحد خاصی درخواست کرده پشت سرهم نیست حتما از یک ستون بعنوان ردیف استفاده کنید و در هر کالا ردیف Reset شود یعنی از یک شروع شود.





در تصویر زیر با جمع زدن رویهم اعداد در خواستی برای هر کالا به توتال آن درخواست رسیدیم فرضا برای Key1 تعداد 158 درخواست شده در حالیکه موجودی در انبار کل 145 است ( تصویر اول )





در تصویر زیر اعداد رویهم ( داده ستون یا فیلد  RunningSum ) را از موجودی انبار کل کم کردیم ( داده ستون یا فیلد Remain در ردیف اول 9-145 شد عدد 136 یعنی بعد از تخصیص تعداد 9 برای کالای Key1 موجودی انبار کل تعداد 136 شده)  اگر Key1 را ببینید در یک ردیف مانده به آخری که Key1 تمام شود عدد 9 خورده یعنی تنها تعداد 9 برای Order آخر از Key1 مانده و عدد 13- مشخص می کند که موجودی انبار کل بعد از تخصیص صفر میشود چون در دیتابیس Sql در W3SCHOOLS همچین تابعی وجود نداشت و همینطور IF لذا تا همین جا پیشرفتم.






در تصویر بالا عدد منفی یعنی دیگر انبار با توجه به اختصاص به Order ها  آیتم کالای مورد نظر مثل Key1 ، موجودی ندارد البته چون از IIF نمی توان در Sql References استفاده کرد چون جزء Function های Sql نیست لذا تا همین جا اقدام شد .... در بالا اگر تابع iif بود می گفتیم اگر داده عددی ستون Remain مثبت باشد عدد ستون اول در ستون بعد از Remain ( با نام فرضی Supplied ) بخورد و اگر داده عددی منفی باشد عدد ستون اول بعلاوه عدد Remain شود ( که منفی است مثل 13- )  چرا ؟برای اینکه مشخص کنیم به اُردِری با Remain منفی چقدر انبار تخصیص داده که بعد موجودی آن کالا در انبار کل صفر شده ، فکر خوبی نیست ؟


تصاویر بالا کمک خوبی برای شما دوستان هستند که روش را ببینید و Simulate کنید.


موفق و موید باشد 


تیر ۱۴۰۱ : 


به گزارش فارس کمپین «برخورد با هتک حرمت امام جعفر صادق (ع) در سالن عروسی در اراک» در سامانه فارس من ثبت شد.
 مخاطبان کمپینی با عنوان «برخورد با هتک حرمت امام جعفر صادق (ع) در سالن عروسی غیرمجاز اراک» در سامانه «فارس من» ثبت کردند.
متن کمپین به شرح زیر است:
در زمین‌های کشاورزی اراک منطقه کرهرود یک تالار باغ به صورت غیرمجاز ساخته شده است که حکم تخریب آن در سال ۹۳ صادر شد، ولی به دلایل نامعلوم تاکنون اجرا نشد.
در شب شهادت امام جعفرصادق (ع ) در این مکان، مراسم عروسی با سر و صدای زیاد و پخش آهنگ‌های مبتذل برگزار شد، که باعث ناراحتی قشر مذهبی منطقه شده است.
به گزارش فارس با توجه به جریحه‌دار شدن احساسات دوستداران اهل بیت(ع)در این منطقه، امضاکنندگان این کمپین خواستار اجرای حکم تخریب این تالار باغ که مرکز فساد در این ناحیه است، هستند.





دختر جوان به نام المیرا در طرح شکایت خود گفت:«برای انجام تست بازیگری به دفتر سینمایی این کارگردان رفته بودم که مورد تعرض او قرار گرفتم و مدتی بعد متوجه شدم که باردار هستم.»

در حالی که نتیجه آزمایش دی ان ای در پزشکی قانونی نشان می داد که پدر فرزند، کارگردان مشهور است؛ این کارگردان به زودی در شعبه 12 دادگاه کیفری یک استان تهران برای دفاع از عنوان اتهامی تجاوز جنسی پای میز محاکمه خواهد رفت.





















VLOOKUP با چندین شرط در اکسل


برگرفته از سایت های خارجی 






تابع Match ... مشخص کردن موقعیت مقدار مورد جستجو در یک آرایه 








Filter و Requery در اکسس



SELECT *
FROM Vergabeumfang
WHERE 
(
    Vergabeumfang.VSS_LAW Like "*" & [Forms]![Vergabeumfang]![VSS_LAW_Box] & "*" Or Vergabeumfang.VSS_LAW Is Null
)
AND 
(
    Vergabeumfang.V_Commodity_Name Like "*" & [Forms]![Vergabeumfang]![Commodity_Name_Box] & "*" Or Vergabeumfang.V_Commodity_Name Is Null
)
AND 
(
    (
        Vergabeumfang.S63T2 = iif([Forms]![Vergabeumfang]![S63T2_box]=-1, True, -999)
    )
    OR
    (
        Vergabeumfang.S63T4 = iif([Forms]![Vergabeumfang]![S63T4_box]=-1, True, -999)
    )
)









Filter و Requery در اکسس


لطفا نظر سنجی فراموش نشود



نمونه ای از فیلتر در زیر که از سایت های خارجی استخراج شده سال 2008



SELECT *
FROM Vergabeumfang
WHERE 
(
    Vergabeumfang.VSS_LAW Like "*" & [Forms]![Vergabeumfang]![VSS_LAW_Box] & "*" Or Vergabeumfang.VSS_LAW Is Null
)
AND 
(
    Vergabeumfang.V_Commodity_Name Like "*" & [Forms]![Vergabeumfang]![Commodity_Name_Box] & "*" Or Vergabeumfang.V_Commodity_Name Is Null
)
AND 
(
    (
        Vergabeumfang.S63T2 = iif([Forms]![Vergabeumfang]![S63T2_box]=-1, True, -999)
    )
    OR
    (
        Vergabeumfang.S63T4 = iif([Forms]![Vergabeumfang]![S63T4_box]=-1, True, -999)
    )
)






در باتن  از متد Requery استفاده شده



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


In addition, when you use the Requery action or the DoCmd.Requery method, Microsoft Access closes the query and reloads it from the database, but when you use the Requery method, Access reruns the query without closing and reloading it. Note that the ActiveX Data Object (ADO) Requery method works the same way as the Access Requery method.












.












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



لطفا بعد از مطالعه مطلب در نظر سنجی شرکت نُمائید




در زیر از شی DAO یا Data Access Object استفاده شده که در کتابخانه اکسس موجود است.

فرمی ساخته ایم که سورس آن یک جدول یا کوئری است ( یعنی فرم تحت جدول یا کوئری است یا Underlying ) ، سپس رکوردست باز شده ، در بین فیلدها لوپ زده شده و اسامی آن در صفحه immediate window چاپ شده ( Ctrl+G )

field-name-property-dao 

در لینک بالا حداکثر کاراکتر نام فیلد 64 عنوان شده

Dim Rs as DAO.Recordset

Dim Fld As DAO.Fields

Set rs=Me.RecordsetClone

For Each Fld in Rs.Fields

Debug.Print Fld.Name,Fld.Value

Next


database-object-dao



طبق توضیحات ذیل Data Access Object یا DAO شما را قادر می سازد برای دستکاری ساختار دیتابیس و داده.بسیاری از اشیاء DAO به اشیائی مرتبط است که در دیتابیس اکسس مشاهده می کنید - برای مثال یک شی Tabledef به یک جدول مایکروسافت اکسس مرتبط می شود . یک شئ Field مربوط به یک فیلد در یک جدول است.


Data Access Objects (DAO) enable you to manipulate the structure of your database and the data it contains from Visual Basic. Many DAO objects correspond to objects that you see in your database—for example, a TableDef object corresponds to a Microsoft Access table. A Field object corresponds to a field in a table.


















تعداد فیلد ( ستون ها ) و رکوردهای یک جدول در اکسس


لطفا بعد از مطالعه مطالب در نظر سنجی شرکت نُمائید



Ctrl+G را بزنید به صفحه ای منتقل خواهید شد در آن کد زیر را با علامت سوال برنید و نام جدول خود را جایگزین tblFoo  نُمائید در کد اول تعداد ستون ها که ZeroBased هستند و کد دوم تعداد ردیف های جدولتون را بازیابی می کند




? CurrentDb.TableDefs("tblFoo").Fields.Count
 13
? CurrentDb.TableDefs("tblFoo").RecordCount
 11 
? DCount("*", "tblFoo")
 11 







لوکاپ مقدار در کالمن ها در اکسل با XLOOKUP



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




XLOOKUP در اکسل 2016 و 2019 موجود نیست 



جایگزینی برای HLOOKUP است


در جدول زیر از دو XLOOKUP استفاده شده که با توجه به عنوان ستونی که می خواهید مقدار در ردیف های ستون Income بازگردانده شود 




The XLOOKUP function searches a range or an array, and then returns the item corresponding to the first match it finds. If no match exists, then XLOOKUP can return the closest (approximate) match. *If omitted, XLOOKUP returns blank cells it finds in lookup_array.



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
















جستجو در کمبو باکس ( اکسل )



از تابع Filter و Search استفاده شده و همینطور از شئ Data Validation









X

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

خطاها در پر نکردن مقدار یا صفر بودن رشته یا مغایرت با قانون اعتبارسنجی


نوشتن در رویداد Error فرم 


If DataErr = 3314 Or DataErr = 3316 Or DataErr = 3317 Then



به ترتیب : حتما باید مقداری در فیلد وارد کرد - فیلد نمی تواند رشته ای با طول صفر باشد ("") - یک یا چند مقدار ورودی توسط قانون اعتبار سنجی منع شده اند یعنی قالب خاصی باید رعایت گردد.








می توانید کد ارورها را در فرم رویداد Error قرار دهید و Response=0 و پیام خودتان را با Msgbox به کاربر نشان دهید 



گفته های بالا تکرار مکررات است فراموش نکنید برای بار هزارم لطفا از قراردادن نام فارسی برای اشیاء فرم ، کوئری ، جدول و گزارش پرهیز کنید و حتی نام کنترل ها ... کنترل های یاد شده  ویژگی یا پراپرتی کپشن ( Caption ) دارند می توانید آنجا را برای تعریف نام فارسی آن کنترل در نظر بگیرید.





@;"XXX"[RED]




Regular Expression در پیدا کردن یا جایگزین کردن رشته در متن


لطفا کامل متن لینک زیر را مطالعه بفرمائید در کدهای vba حتما نیاز خواهد شد 


Regular_expression


Regular expressions are patterns used to match character combinations in strings. In JavaScript, regular expressions are also objects. These patterns are used with the exec() and test() methods of RegExp , and with the match() , matchAll() , replace() , replaceAll() , search() , and split() methods of String .


RegEx stands for “Regular Expression” in VBA Excel and is a sequence of characters that defines the search pattern for finding a specific pattern of characters in a string of values. In a simple word, “we can create a regular expression pattern and use it to search for the string of that pattern.”



Dim regexpObject As Object

Set regexpObject = CreateObject(“VBScript.RegExp”)


.Pattern="\d" Or "[^0-9]"

.IgnoreCase ... Boolean

.Global

.Test

.Replace

.Execute


\d : digit

\D : non-digit

\r : Return { Enter }


[ \t\r\n\f]. That is: \s matches a space, a tab, a carriage return, a line feed, or a form feed.




ویژگی SelHeight در بازگردانی تعداد رکوردهای انتخاب شده



مطلب زیر برای دوستانی ارائه شد که داکیومنت مورد نظر را طلب کرده بودند مبنی بر بازیابی اطلاعات فیلدها در رکوردهای انتخاب شده 



The SelHeight property returns a Long Integer value between 0 and the number of records in the datasheet or continuous form. The setting of this property specifies or returns the number of selected rows in the selection rectangle or the number of selected records in the continuous form.


طبق فرمایشات بالا این ویژگی مقدار Long integerc بین صفر و تعداد رکوردها در دیتا شیت یا فرم کانتینیوس را بر می گرداند یعنی چنانچه شما ردیف هایی را انتخاب کنید تعداد رکوردهای انتخابی را به شما اعلام می نماید ( Zero-base است و عدد صحیح ) 


برای بازیابی اطلاعات چه خواندن چه ویرایش یا کلا دستکاری یا manipulate می بایست به رکوردست دسترسی پیدا کنید چه از طریق شئ DAO یا ADO که سریعتر است . و از Move برای رفتن به اولین رکوردانتخابی استفاده بنمائید و سپس لوپ بزنید به همین راحتی .



















ایرج میرزا : 


بگـــــــو آن عـــــــارف عـــــــامی نمـــــــا راکـــه گـــم کـــردی تـــو ســـوراخ دعـــا را






TitleBar



ابعاد باتن ها در کپشن با تابع 

getsystemmetrics





Type CaptionButton
uCmd As Long ' command to send when clicked(WM_COMMAND)
nRightBorder As Integer ' Pixels between this button and buttons to the right
hBmp As HBITMAP ' Bitmap to display
fPressed As Boolean ' Is the button pressed in or out?
End Type



Type CustomCaption
buttons(MAX_TITLE_BUTTONS) As CaptionButton
nNumButtons As Integer
fMouseDown As Boolean
wpOldProc As LongPtr
iActiveButton  As Integer
End Type


WM_NCPAINT : 


Dim hrgn As LongPtr,temprgn As LongPtr
Dim rc As RECT
GetWindowRect hWnd,rc
If wParam=1 Then 
hrgn=CreateRectRgnIndirect(rc)
Else
hrgn=wParam
End if
For i=1 To ctp.nNumButtons


'A value of TRUE results in window-relative coordintes (from the top-left of the window). A value of FALSE results in screen coordinates.


GetButtonRect ctp,hwnd,i,rc,False ' in screen coord
temprgn=CreateRectRgnIndirect(rc)
CombineRgn hrgn,hrgn,temprgn,RGN_XOR
DeleteObject temprgn
Next



Dim hDc As LongPtr
hDc=GetWindowDc(hWnd)
For i=1 To ctp.nNumButtons
GetButtonRect ctp,hWnd,i,rc,True
if ctp.buttons(i).fPressed Then
DrawFrameControl hdc,rcbtn,DFC_BUTTON,DFCS_BUTTONPUSH+DFCS_PUSHED
Else
DrawFramControl hdc,rcbtn,DFC_BUTTON,DFCS_BUTTONPUSH
End If 
Next
ReleaseDc hDc
if wParam=1 Then DeleteObject hrgn


WM_SETTEXT , WM_NCACTIVATE :



dwStyle=GetWindowLongPtr(hWnd,GWL_STYLE)
SetWindowLongPtr hWnd,GWL_STYLE,dwStyle And WS_VISIBLE
ret=CallWindowProc( ctp.wpOldProc,hWnd,Msg,wParam,lParam)
SetWindowLongPtr hWnd,GWL_STYLE,dwStyle
Caption_NcPaint(hWnd,(HRGN) 1)


WM_NCLBUTTONDOWN : 


Dim i As Integer
Dim rc As RECT
Dim pt AS POINTAPI
'Mouse Coordinate
pt.x=Loword lParam
pt.y=Hiword lParam 
For i=1 To ctp.nNumButtons
' Get Screen Coordinate of each button
GetButtonRect ctp,hWnd,i,rc,False
InflateRect rc,0,2
if PtInRect(rc,pt) Then
ctp.iActiveButton=i
ctp.buttons(i).fPressed=True
ctp.fMouseDown=True
SetCapture hWnd
RedrawCaption hWnd
End if
winProc=0
Next




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


Function  GetWinRect(hWnd) 

Dim rc As RECT

Dim p1 As POINTAPI,p2 As POINTAPI

GetClientRect hWnd,rc

With rc

p1.x=rc.Left : p2.x=rc.Right

p1.y=rc.Top : p2.y=rc.Bottom

ScreenToClient hWnd,p1

ScreenToClient hWnd,p2

.Left=p1.x : .Right=p2.x

.Top=p1.y : .Bottom=p2.y

End With

GetWinRect=rc

End Function




























SWP_FRAMECHANGED



Const SWP_FRAMECHANGED=&H20



Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.



اعمال سبک یا استایل های قاب و چهارچوب جدید که با استفاده از تابع SetWindowLong تنظیم میشود .ارسال پیام WM_NCCALCSIZE به پنجره حتی اگر سایز پنجره تغییر نکند. اگر این flag مشخص نشود WM_NCCALCSIZE فقط زمانی ارسال می شود که سایز پنجره تغییر داده شود.


پس زمانیکه بخواهید از پیام WM_NCCALCSIZE برای محاسبه طول و عرض یا مختصات پنجره ای استفاده کنید در صورتیکه پنجره سایزش تغییر نمی کند از تابع SetWindowLong و استایل SWP_FRAMECHANGED استفاده می کنید که هگزار دسیمال آن 20 است و دسیمال برابر 14  ( 20 تقسیم بر 16 خارج تقسیم و مانده کنار هم قرار می گیرند اگر مانده بیشتر و خود 10 شد به ترتیب A تا F جایگزین مانده میشود ) 


Type RECT

Left As Long

Right As Long

Top As Long

Bottom As Long

End Type


Type WINDOWPOS

hwnd As Long 'LongPtr ( 64 bit )

hWndInsertAfter As Long 'LongPtr ( 64 bit )

x As Long ' Left 

y As Long ' Top

cx As Long ' Width in pixle

cy As Long ' Height in pixle

flags As Long

End Type


Type NCCALCSIZE_PARAMS

rgrc(3) As RECT

lppos As WINDOWPOS

END TYPE



the first rectangle contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates. The second contains the coordinates of the window before it was moved or resized. The third contains the coordinates of the window's client area before the window was moved or resized



در آرایه rgrc : ( حاوی اطلاعات زیر است ) 

اولین مستطیل حاوی مختصات پنجره جدید است که تغییر سایز یا جابجا شده ( Move )  ... مختصات جدید است 

دومین  مختصات پنجره قبل از تغییر سایز یا جابجایی است.

سومین  حاوی مختصات پنجره ناحیه Client قبل از تغییر سایز یا جابجا شدن است.


در پیام WM_NCCALCSIZE اگر wParam فالز باشد lParam به ساختار RECT اشاره می کند و اگر True باشد به ساختار NCCALCSIZE_PARAMS.



Dim ncc AS NCCALCSIZE_PARAMS

Debug.Print wParam

CopyMemory ncc,lParam,ByVal Len(ncc)

Debug.Print ncc.rgrc(1).Right

CopyMemory lParam,ncc,ByVal Len(ncc) 


پیام WM_SETFOCUS : 


پس از اینکه فوکوس صفحه کلید را به دست آورد ، این پیام به پنجره ارسال میشود و wParam حاوی هندلی به پنجره ای است که فوکوس کیبورد را از دست داده ( با Tab یا ماوس به کنترل دیگری می روید ) و lParam هم صفر است .


می توانید در این پیام با تابع SetFocus ، فوکِس یا فوکوس را به کنترل مورد نظر برده تا WM_NCCALCSIZE ارسال شود و بتوانید مختصات پنجره مورد نظر را بگیرید.












ساختار TBADDBITMAP یا اضافه کردن تصویر با پسوند bmp به ToolBar



داکیومنت زیر اضافه کردن فایل bmp به باتن در Toolbar 


commctrl-tbaddbitmap


Type TBADDBITMAP

hInst As Long

nID As Long

End Type


hInst=GetWindowLongPtr(hWnd,GWL_HINSTANCE[-6])


nID="AddressOfFile"



این ساختار با TB_ADDBITMAP استفاده می شود که lParam یک نشانگر به TBADDBITMAP و wParam تعدادتصاویر bmp است منتهی قبل از اینکار باید پیام TB_BUTTONSTRUCTSIZE ارسال شود( wParam سایز ساختار TBBUTTON به بایت است و lParam باید صفر باشد )


Type TBBUTTON

iBitmap As Long

idCommand As Long

fsState As Byte

fsStyle As Byte

dwData As LongPtr

End Type



toolbar-button-states



Declare PtrSafe Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any,Source As Any,ByVal Length As Long)


Declare PtrSafe Function ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (Destination As Any,ByVal Length As Long)





۸ اسفند 1400 : عباس عبدی خطاب به مسئولان سیاست خارجی: رئیس جمهور اوکراین روی حمایت غرب حساب کرد و باخت؛ شما هم روی حمایت چین و روسیه حساب نکنید... البته آقای عبدی روسیه و چین ابرقدرت را با اوکراینی که هر کشوری قدرت حمله  و گرفتن آن را دارند ، مقایسه می کند !!!





9 اسفند 1400 : 




طبق گزارش تایمز 400 شبه نظامی واگنر در کی یف مستقر شده تا رئیس جمهور و 23 شخصیت دیگر دولتی را ترور کنند.

هدف آنها تلاش برای استقرار دولت دست نشانده در اوکراین با ترور مردان دولتی در اوکراین است.

شبه نظامیان واگنر یا همان ارتش مستاجری واگنر، توسط الیگارش معروف یوگنی پریگوژین، متحد دولت، ملقب به آشپز پوتین اداره می‌شوند.










































[;database;path&name;pwd=].[tbl1]


ایجاد SysLink در پنجره دیالوگ باکس - Win32




controls/syslink



لینک بالا سندی درباره کنترل های داخل Syslink است . هر آیتم در این پنجره با کلاس Syslink از مجموعه کتابخانه commctl32  یک نوع باتن است که بشکل Hyperlink نمایش داده میشود و ایندکس آن Zero-Based است یعنی از صفر شروع می شود 



با تابع CreateWindowEx می توان آنرا در هر مختصاتی از صفحه ایجاد کرد فرضا در Msgbox می توان با تابع DestroyWindow پنجره Static با آیدی 4901 را تخریب و جای آن این پنجره را تعبیه کرد البته می توان ناحیه Static را کاری کرد که در آن تکست Hyperlink نیز بنمایش درآید در پیوندها بدان اشاره شده ولی به زبان Vba نیست باید رمزگشایی کنید. ( ساخت یک ناحیه استاتیک دیگر و ساب کلاس این  کنترل ) 


اگر پنجره WM_NOTIFY را دریافت کند( می توان استایل SS_NOTIFY را در پارامتر CreateWindowEx تنظیم نمود.)  NM_CLICK با عدد ثابت منهای 2 را دریافت می کند و اینجا می توانید Index آیتمی را که کلیک کردید را بازیابی نمائید. 


ساختار NMLINK را در اینترنت جستجو و مشاهده نمائید داخلش دو ساختار NMHDR و LITEM وجود دارد که در قسمت دوم iLink مشخص کننده ایندکس است .


Type NMHDR

hWndFrom As LongPtr

idFrom As Long

nCode As Long

End Type


Type LITEM

iLink As Long

End Type


Type NMLINK

nmh As NMHDR

tItem As LITEM

End Type



از تابع CopyMoemory برای تخصیص حافظه استفاده نمائید . استفاده از این تابع ضروریست !!! 


Dim nmh As NMHDR

if nmh.nCode=-2 Or nmh.nCode=-4 Then 

CopyMemory nmh.tItem,ByVal lParam,LenB(nmh.tItem)

SetWindowTextA hwndParent,nmh.tItem.iLink

End If 


ثابت های دسیمال منهای چهار زمانیست که روی لینک اینتر می زنید و منهای دو زمانیکه کلیک می کنید.


البته NM_SETFOCUS و NM_CLICKFOCUS هم وجود دارد البته نه برای همه آیتم ها ،زمانیکه فوکس روی Syslink برود یا آنرا ترک  کند .



در مطالب این بلاگ  ، اگر InputBox را سرچ کنید مطلب و تصویربرای فهم بیشتر قرار داده شده 


آیدی کنترل استایتک که prompt در آن قرار میگیرد 65535 است که با تابع GetDlgCtrlId می توان هندل پنجره را گرفت و با تابع GetWindowClass نیز کلاس پنجره البته تابع دوم باید متغیری را بعنوان بافر تنظیم کرد که تعداد کاراکتر کلاس را درون آن کپی می کند (  نتیجه برگشتی تعداد کاراکتر کپی شده است ) و از طریق آن با تابع left می توانید رشته را دریافت کنید تعداد کارکتر کپی شده هم که با تابع قبلش .



البته مطلب دیگری که در اسناد موجود است و باید بدانید این است که برای تغییر ایندکس Tab روی پنجره ها یا به بیانی دیگر تغییر در z-order از تابع SetWindowPos استفاده میشود دو تا پارامتر اول hwnd و hwndinsertafter دارد که دراینجا TabIndex تغییر می نماید. اگر hwndInsertAfter را صفر در نظر بگیرید و دیگر پارامترهای x و y را هم صفر قرار دهید پنجره ای ندارید متاسفم !



create-a-command-link  'BS_COMMANDLINK

bcm-setnote




syslink-control-reference-messages



LM_HITTEST Message : 

مشخص می کند آیا کاربرلینک مشخص شده  را کلیک کرده است 

wParam  

Must be **NULL**.

lParam

Pointer to a **LHITTESTINFO** structure to be filled with information about the link the user clicked, if any exists.

Return value
جواب True است اگر کاربر روی یک پیوند یا لینک را کلیک نماید ، در غیر اینصورت False خواهد بود

Returns TRUE if user clicked on a link, otherwise returns FALSE.








رنگ ناخن در تشخیص بیماریها


بدانید و آگاه باشید ... زنهار


پلیس فتا - هشدار: سامانه ثنا از شماره شخصی پیامک ارسال نمی‌کند، به هیچ وجه روی لینک‌های ارسالی کلیک نکنید، بدانید که: کلیک=خالی شدن حساب


نحوه عملکرد شما را به درگاه جعلی متصل می کند و می گوید برای نمایش مبلغ ناچیزی پرداخت کنید و پرداخت کردن همانا و سرقت شماره کارت و رمز دوم و تاریخ انقضاء همانا و نهایتا خالی کردن حساب ... هر لینکی از شماره شخصی جرم است و می بایست به پلیس فتا 110 فی الفور گزارش شود. حتی در واتساپ یا gmail هم لینک ناشناس را که جهت سرقت داده هاست کلیک نکنید



در نشست خبری فیلم سینمایی «نمور» که در در واپسین روز چهلمین جشنواره فیلم فجر برگزار شد، یکی‌از خبرنگاران حاضر در نشست از نوشین معراجی نویسنده فیلم «نمور» پرسید: باتوجه به حلال‌زاده نبودن یکی از شخصیت‌های فیلم، چرا این اثر به مقام مادر تقدیم شده است؟ و معراجی در پاسخ گفت: «وقتی دو نفر همدیگر را دوست دارند، عشقی که بین‌شان وجود داشته، آن قدر حرمت دارد که به‌نظر من بچه‌ای که از آن‌ها به دنیا می‌آید حلال‌زاده است! »  


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


عباس عبدی، فعال سیاسی اصلاح طلب در توئیتی با اشاره به سخنان این هفته ائمه جمعه و انتقادات تند آنان از اظهارات نوشین معراجی، فیلمنامه‌نویس «نمور» در جشنواره فیلم فجر نوشت: سکوت در برابر اسناد فساد و حمله به سخنان یک خانم در جشنواره فیلم دو روی یک سکه است. ولی ای کاش آقایان در کنار این همه اعترض، یک مقاله کوتاه در نقد فقهی آن سخن هم بنویسند تا همه بدانند کجای سخن وی ایراد فقهی دارد؟ دیر نشده یک هفته هم می توان صبر کرد. 


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



به احتیاط واجب صیغه عقد باید به عربی صحیح خوانده شود. و اگر خود مرد و زن نتوانند صیغه را به عربی صحیح بخوانند به هر لفظی که صیغه را بخوانند صحیح است، و لازم هم نیست که وکیل بگیرند اما باید لفظی بگویند که معنای “زوّجت” و “قبلت” را بفهماند.





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



کلیک نکن! لطفا بر روی لینک‌های ارسالی در پیامک‌های باشماره شخصی و با عنوان سامانه ثنا هرگز کلیک نکنید.



دهه اول اسفند 1400 : رئیس جمهوری فرانسه، روز جمعه با اشاره به گفت‌وگوهای پیشین با همتای روس خود پیش از حمله به اوکراین، گفت: ولادیمیر پوتین همزمان با اینکه پشت تلفن، جزئیات توافقات مینسک را با من بررسی می‌کرده، در حال آماده شدن برای آغاز جنگ بوده است؛ این فریبکاری و نارو زدن است.

به گزارش ایسنا به نقل از گاردین، امانوئل ماکرون، رئیس جمهوری فرانسه پس از نشست اتحادیه اروپا گفت: بله، دورویی اتفاق افتاد؛ انتخابی آگاهانه و عمدی برای آغاز جنگ صورت گرفت، آن هم در زمانی که هنوز می‌توانستیم بر سر صلح مذاکره کنیم.

ماکرون تاکید کرد که فرانسه تحریم‌های مجزای خود را به بسته تحریمی اتحادیه اروپا علیه روسیه اضافه می‌کند.


رئیس دولت اوکراین ( زلنسکی ) گفت: امروز از مسکو شنیدیم که روسیه در نهایت می‌خواهد گفت‌وگو کند. کرملین می‌خواهد درباره وضعیت بی‌طرف اوکراین صحبت کند. به شرکای اوکراین می‌گویم که سرنوشت کشورمان همین حالا در حال تعیین شدن است. من از آن‌ها (متحدان غربی اوکراین) می‌پرسم که آیا در کنار ما هستند یا خیر و پاسخ آن‌ها مثبت است؛ اما هنوز آماده پذیرش ما در این اتحاد (ناتو) نیستند.



۶ اسفند 1400 : عضو شورای مرکزی موتلفه:خانواده‌های ولایی باید با لبیک به رهبری و فرزند آوری، دشمن را ناامید کنند




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



 پوتین  : 



کیهان : وقتی هیتلر به روسیه لشکر کشید، بخشی از اوکراینی‌ها با ارتش نازی همدست شدند و تعداد زیادی از هموطنان خود را به طرز فجیعی کشتند. وقتی ورق جنگ جهانی دوم برگشت، این بار نوبت طرف مقابل بود که دست به انتقام و کشتار بزند. منظور کیهان اینه که همبستگی قومیتی چه سُنی و چه شیعه در ایران حفظ نشود بساط ایران هم همین است ، البته کیهان فراموش کرده مسلمان معتقد مخصوصا ایرانی ها را با هیچ مسلمانی در کشورهای دیگر نمی توان مقایسه کرد.



تصویر ماهواره ای تخریب پل مرزی بین اوکراین و بلاروس توسط خود اوکراینی ها ۸ اسفند ۱۴۰۰ 




9 اسفند 1400 : 





صفحه رسمی ‏گارد ملی اوکراین فیلمی منتشر کرده که عضو آن در حال آغشته کردن گلوله‌هایش به چربی خوک است تا هنگام شلیک به سربازان مسلمان چچنی به آنها آسیب معنوی برساند. منبع: خبرفوری



دختر مدل اوکراینی اسلحه بدست در جنگ با پوتین 






مارتین فورد و خانواده : 



10 اسفند 1400 درگذشت زهره فکور صبور در ۴۳ سالگی : 



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







سریال «نرگس» به تهیه کنندگی مهران مهام در سال ۱۳۸۵ پخش شد،نقش اصلی این سریال را پوپک گلدره بازی می‌کرد که در اواسط بازی، بر اثر تصادف با اتومبیل به کما رفته و پس از ۸ ماه درگذشت. نقش او را ستاره اسکندری ادامه داد.

«بی همگان» اخرین هنرنمایی زهره فکور را ثبت خواهد کرد.