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

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

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

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

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

Option Group در اکسس ( انتقال فوکس به کنترل تکست باکس )


اسفند ۱۴۰۲  درمانگاه قم  ( درگیری یک خانم با روان ناسالم با یک آخوند بعلت عکس گرفتن از وی )  از وی بعنوان هنجارشکن گستاخ یاد شده !!!





رائفی پور به قالیباف: چرا پسرتان (اسحاق) به دنبال اقامت کانادا است؟ /میزان سرمایه گذاری فرزندتان در کانادا و هزینه های دریافت اقامت دائم را اعلام کنید




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


توضیحات : 


یک Oprtion Group شامل یک قالب گروه و مجموعه ای از CheckBox ها ، toggle button ها و یا option button هاست.


اگر یک Option Group به یک فیلد محدود ( مرتبط ) شود ، تنها قالب گروه ( frame ) به تنهایی به فیلد محدود می شود نه به باتن های داخل قالب . بجای تنظیم پراپرتی ControlSource برای هر کنترل در Option Group ، پراپرتی OptionValue هر کنترل را به شماره هدفمند برای فیلدی که frame به آن محدود شده است تنظیم کنید. زمان انتخاب یک گزینه ( Option ) در گروه ، مایکروسافت اکسس مقدار فیلد 


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



تبصره : 


ویژگی یا پراپرتی Option Value به شماره ای  مختص می شود بدلیل اینکه مقدار گروه گزینه یا option group باید فقط یک شماره باشد نه متن ( text ) . اکسس این شماره را در جدول مرتبط ذخیره می کند.


یک option group همچنین می تواند به یک عبارت یا expression تنظیم شود . یک گروه گزینه یا option group را در یک کادر محاوره ای برای پذیرش ورودی کاربر بکار برید و سپس یک عمل یا action روی ورودی انجام دهید.


در شکل زیر frame همان کپشن لیبل Gender ( جنسیت ) است ، همانطور که در شکل می بینید  برای گزینه آخر در تب یا برگه داده ( Data ) ویژگیهای مقدار گزینه ، فعال بودن یا نبودن و قفل کردن یا نکردن موجود است ( در Enabled حالت فعال بودن یا نبودن [ خاکستری ] را تنظیم می کنید ) 






در رویداد AfterUpdate این گروه گزینه ( option group [ با شماره مشخص شده که می توانید حتی آنرا عوض کنید ] )  می توانید بگوئید اگر فرضا پراپرتی OptionValue برابر عدد یک بود کرسر در تکست باکس مورد نظرتون فعال شود . ( متد SetFocus تکست باکس ) 


اگر برای هر گزینه داخل frame ، تکست باکس در فرم موجود باشد : 

OnAfterUpdate

C%=expr.OptionValue

Controls("txt" & C).SetFocus



آقازاده حضرت قالیباف 

..... تومان طلا و سکه ربوده شده است.

اقتصاد 24 همچنین نوشت ، این را هم مدنظر بگیرید که قیمت سکه در مهر ۱۴۰۰، ۱۱ میلیون تومان بوده و امروز ۳۲ میلیون تومان است. یعنی آن روز فقط یکی از فرزندان آقای قالیباف، صرفا در گاوصندوق منزل فرمانیه خود نزدیک به ۷ کیلوگرم طلا یا ۱۲۰۰ نیم سکه بهار آزادی داشته است.

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

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

الیاس قالیباف در سال ماه ۱۳۸۶ با دختر یکی از فرماندهان سپاه ازدواج کرد.





182 سیب را بین 3 نفر به نسبت های یک چهارم،دو سوم،سه پنجم تقسیم کردیم،به هریک چند سیب میرسد؟


۱-جمع نسبت ها

۲- عدد ۱۸۲ تقسیم بر جواب ۱

۳-عدد مرحله ۲ را به ترتیب در ۱/۴ و ۲/۳ و ۳/۵ ضرب می کنیم 

جمع اعداد بدست آمده باید ۱۸۲ شود.





۹ بهمن ۱۴۰۲ ( کاهش ساعات کاری کارمندان دولت )


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

وی در ادامه اظهار کرد: افزایش قیمت گوشت و سایر کالاها از اولویت‌های دیگری است که ما باید به آن رسیدگی کنیم. همه کارکنان دولت شریف هستند اما آیا همه ملت ایران کارمندان دولت هستند که ما اکنون دو روز در هفته را تعطیل کرده و چهار ساعت از ساعت کاری را کاهش دهیم. آنگاه جواب کارگران را چه باید بدهیم؟ کشور امروز نیاز دارد که فرهنگ کار را تقویت کنیم چرا که همه کشورهای پیشرفته به این سمت رفته اند.




بهمن ۱۴۰۲ ( پنجشنبه مبعث رسول ، یکشنبه ۲۲ بهمن ) - چهارشنبه ساعت ۱۵ بازی قطر و ایران




بهمن ۱۴۰۲ : پیگیری دادستانی موجب برداشتن طرح از سایت دیجی کالا شد







بهمن ۱۴۰۲ 


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

وی توضیح داد: شهروندان می‌توانند هنگام خرید نوشیدنی‌ها، شماره ۱۰ رقمی ذیل نشان استاندارد را به سامانه ۱۰۰۰۱۵۱۷ پیامک کرده و از صحت و اعتبار نشان استاندارد آن اطمینان حاصل کنند.


بهمن ۱۴۰۲ 


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



به گزارش همشهری آنلاین، شریفیان گفت: در حال حاضر همه انگشت اتهامشان به سمت سلبریتی‌ها و تبلیغات چی‌ها دراز شده است. دولت تماس گرفته که باید برگردم و پول‌ها را به این افراد برگردانم. آیا پدیده شاندیز که بار‌ها صداوسیما تبلیغاتش را کرد، صداوسیما پول مردم را پس داد؟ ما در برابر امثال مدیرعامل چای دبش سر سوزنی هم شبیهشان نیستیم.
او گفت: تعداد سلبریتی‌هایی که تبلیغ کوروش کمپانی را کرده اند حدود ۴۰۰، ۵۰۰ نفر بوده اند و رقم‌هایی دریافتی برای تبلیغ از یک میلیون تومان بوده تا ۱۵، ۲۰ میلیون تومان! به عنوان مثال بازیکن تیم ملی ۲۰ میلیون تومان گرفته و تبلیغ کرده است. چون ما یک دوستی قدیمی با هم داشتیم. ولی به کسی اصلا ۲۰۰، ۳۰۰ میلیون تومان پولی نداده ایم.


خانم الهام حمیدی ، بازیگر برجسته کشورمان، ضمن عذرخواهی بابت اتفاقات اخیر، پیرامون کمپانی کلاهبردار کوروش کمپانی، اعلام داشت پول دریافتی از کمپانی که به خاطر تبلیغات گرفته بود را به شماره حسابی که مراجع قضایی اعلام داشت، واریز کرد.
کد خبر: ۲۲۹۲۱۷   تاریخ انتشار : ۱۴۰۲/۱۲/۰۱



آذر تا بهمن 1402 قرار بود حاجیها اعزام شوند ولی با کارشکنی  دولت عربستان (قاتل کودکان یمن )  و بهانه های امنیتی کنسل  و پول به حساب معترضین واریز شد






۱۸ اسفند ماه ۱۴۰۲ 



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

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







Option Value


یادداشت : 


پراپرتی OptionValue فقط به کنترل های زیر در یک Option Group اعمال میشود.

check box

option button

toggle button


با استفاده از برگه پراپرتی کنترل می توان این پراپرتی را مقدار داد. همینطور از طریق ماکرو یا Vba مگر اینکه بصورت دستی تنظیم کنید یا مقدار  دهید.


اولین کنترلی که در Option Group قرار میگیرد مقدار یک را دارد و دومین مقدار عدد صحیح 2 و همینطور ادامه دارد چنانچه کنترل دیگری در این گروپ باشد.


پراپرتی OptionValue زمانی موجود است که کنترل داخل آپشن گروپ قرار داده شود !!! .وقتی که سه  کنترل  یاد شده در بالا در Option Group نباشد کنترل این پراپرتی را نخواهد داشت  


در عوض این چنین کنترل هایی که در Option Group قرار نمی گیرند یک پراپرتی با نام Control Source دارد و مقدار هر کنترل در صورت سلکت شدن True و عدم انتخاب False خواهد بید. 


پس چی شد دوستان طبق داکیومنت آفیس اگر شما Option Group نداشته باشید بنابراین پراپرتی Option Value هم نخواهید داشت .


فرضا در رویداد Open فرمی می نویسید که به تکست های موجود در فیلد ( کمبو باکس )   Value بدهد و در رویداد کلیک Option Group می نویسید که در صورت انتخاب هر کدام از کنترل های داخل آن Value  که در رویداد Open فرم تنظیم کرده اید را در پنجره Msgbox نمایش بدهد.


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

در رویداد Form_Open

Me.Controls("ABC").OptionValue = 15876

-------------------------------------
در رویداد کلیک Option Group 
    MsgBox "The ID for the selected shipper is " &  _
Me.Controls("Ship Method Group").Value
--------------------------------------

برای مثال اگر کالمن ( فیلد ) دارای دو مقدار باشد Yes  و No یا On و Off استفاده از  Option Button کار انتخاب را راحت میکند.اگر کاربر یکی را انتخاب کند باعث عدم انتخاب باتن دیگر میشود پس یعنی فقط یک گزینه را می توان در یک Group انتخاب کرد و انتخاب MutiSelection نخواهید داشت مگر اینکه از Option Group استفاده نکنید و چند کنترل چک باکس تعبیه کنید 


در زیر در جدول یک فیلدی ساخته شده  با نام AccountClosed  و دیتا تایپ YesNo ، همینجا خدمت دوستان عرض میکنم از فارسی نوشتن فیلد خودداری کنید !!!. همانطور که در تصویر زیر آن می بینید پراپرتی بنام CAPTION دارد که فارسی آنرا می توانید آنجا قید کنید دابل کوتیشن هم لازم نیست بگذارید و در تصاویر دیگر نحوه انتخاب OPTION GROUP از دیزاین فرم و کشیدن آن روی فرم را نمایش داده






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


در تصویر زیر که از یکی از سایتها کپی شده   این OPTION GROUP  با استفاده از رویداد AFTER UPDATE ش سابفرم را ریکوئری می کند SUB1.REQUERY




زمانیکه روی یکی از باتن ها کلیک می کنید سابفرم می بایست با توجه به ولیوی آنها فیلتر شود فرضا اگر ALL انتخاب شود باید فیلد SALE  تیک خورده ها و نخورده ها (کلی ) در دیتاشیت لیست شود و چنانچه NO SALE انتخاب شود که ولیوی 2 دارد دیتاهایی که SALE آنها تیک نخورده نمایش داده شوند.


[Forms]![frm_Export]![optSelect]=0   ' ALL

[Forms]![frm_Export]![optSelect]=1   ' SALE

[Forms]![frm_Export]![optSelect]=2   ' NO SALE


(

 [Forms]![frm_Export]![optSelect]=0 

OR

Sale=-1 AND [Forms]![frm_Export]![optSelect]=1) 

OR  

(Sale=FALSE AND [Forms]![frm_Export]![optSelect]=2)

)

فرض کنید دکمه ALL را SELECT یا انتخاب میکنید 

عبارت اول TRUE

عبارت دوم TRUE AND FALSE =FALSE

عبارت سوم TRUE AND FALSE=FALSE

در نتیجه TRUE OR FALSE OR FALSE میشود TRUE و تمام 


اگر دکمه SALE فشرده شود

عبارت اول FALSE چون ولیو باتن صفر نیست و یک است

عبارت دوم TRUE AND TRUE=TRUE

عبارت سوم TRUE AND FALSE = TRUE

در نتیجه FALE OR TRUE OR FALSE میشود TRUE و عبارت TRUE شده نمایش داده میشود.



اگر دکمهNO  SALE فشرده شود

عبارت اول FALSE چون ولیو باتن صفر نیست و دو است

عبارت دوم TRUE AND FALSE=FALSE

عبارت سوم TRUE AND TRUE = TRUE

در نتیجه FALSE OR FALSE OR TRUE میشود TRUE و عبارت TRUE شده نمایش داده میشود. ( عبارت سوم TRUE است )



مثال دیگر سوالی که در یک تاپیک پرسیده شده بود : 


دارم سعی میکنم فیلتری را روی ستونی به نام BILLED یک کوئری انجام میدهم که فیلد از نوع YESNO است ، با استفاده از کنترل چک باکس رو فرم.


جدول TIMESHEET دارم با اسم TBLTIMESHEET که حاوی اطلاعاتی مثل [DATE] [JOB NUMBER] [EMPLOYEE]

[HOURS] [BILLED] و غیره است  ، زمان INVOICE   برای  JOB NUMBER  مشخص گزارشی را برای یک JOB  تولید کرده ام ، سپس چک باکسی برای هر رکورد.


من کوئری ساختم از جدول براساس فرم FRMJOBTIME در آن کوئری.یک کنترل تکست باکس روی فرم قرار داده ام برای فیلتر کردن گزارش.خب ، شرط در قسمت  CRITERIA زیر ستون JOB NUMBER در کوئری  مثل این است :

[Forms]![frmJobTime]![txtJobNum]

که عالی کار میکند.


حال مشکل واقعی من اینجاست : 


من میخوام فیلتر مشابه ای را به ستون BILLED اضافه کنم با اضافه کردن کنترل چک باکس در فرم FRMJOBTIME.تیک زدن باکس به این معنیست که گزارش فقط رکوردهایی را برای JOB نمایش دهد که UNBILLED شدند و برداشتن تیک باکس باعث شود که تمام رکوردها نمایش داده شود هم BILLED هم  UNBILLED شده ها . من نمی توانم این کار را بکنم.


در واقع میخواد اگر چک باکس تیکش برداشته شد تمام رکوردها نمایش داده شود 


بالاخره دوستمون درژانویه  سال 2015  جوابش را خودش پیدا کرد .



This is where I found the answer, and here is my new SQL:

SELECT tblTimesheet.Date, tblTimesheet.[Job Number], tblTimesheet.Expense, tblTimesheet.[Miles Traveled], tblTimesheet.[Project Description], tblTimesheet.Employee, tblTimesheet.Hours, tblTimesheet.[Billed?], tblTimesheet.[Hourly Total], tblTimesheet.[Mileage Total], tblTimesheet.[GRAND TOTAL], tblTimesheet.Rate
FROM tblTimesheet
WHERE (((tblTimesheet.[Job Number]) Like " * " & [Forms]![frmJobTimeFilter]![txtJobNum] & " * ") AND ((tblTimesheet.[Billed?]) Like IIf([Forms]![frmJobTimeFilter]![chkUnbilledFilter]=True,False,"*")));


فرضا داخل کنترل  TXTJOBNUM در فرم  1201 تایپ بشود میگوید  : 


tblTimesheet.[Job Number]) Like " * " &  1201 & " * "

در اینجا چون فیلد JOB NUMBER عددیست از کوتیشن استفاده نشده اگر دیتا تایپ فیلد تکست بود میشد : 


tblTimesheet.[Job Number]) Like " '* " &  1201 & " * '"


در کل فرم فیلتر میشود و رکورد یا اگر یونیک نباشد یا پرایمری کی رکوردهایی را نمایش میدهد که JOB NUMBER برابر با 1201 باشد در قسمت بعد AND اضافه کرده و برای فیلد BILLED که صفر ( Uncheck ) یا منفی یک ( Checked ) میگیرد تابع شرطی نوشته با IIF که اگر کنترل چک باکس در فرم با نام  CHKUNBILLEDFILTER تیک خورده بود FALSE را بر گرداند یا در غیر اینصورت * را .


tblTimesheet.[Job Number]) Like " '* " &  1201 & " * '" AND  BILLED (CHECHBOX=TRUE) LIKE  FALSE 

عبارت بالا جاب نامبرهای  *1201* را می آورد که فیلد بیلد فالز باشد.یعنی تیک چک نداشته باشند.


tblTimesheet.[Job Number]) Like " '* " &  1201 & " * '" AND  BILLED (CHECHBOX=FALSE) LIKE *


عبارات بالا را تست کنید و به صحت یا عدم صحت یا کارآیی آنها پی ببرید.


Zero is used to represent false, and

 One is used to represent true. For interpretation, Zero is interpreted as false and anything non-zero is interpreted as true.



برای چک باکس و خارج شدن از فیلتر روش استفاده از عبارت در کوئری بشکل زیر است : 


Like [Forms]![frmName]![checkBox1] & "*" Or Is Null

So now, if the user does not wish to filter the result by selecting the check boxes, the result will show all data. Hopefully this will help others down the road


برای اینکه اگر یکی از دو تکست باکس txtDateFrom or txtDateTo نال باشد تمام رکوردها نشان داده شود باید غیر از Between ..... And دو تا شرط دیگر اضافه نمود ( دیتا تایپ در جدول از نوع DateTime  است )  


But you want all rows returned when either txtDateFrom or txtDateTo is Null. In that case you can add 2 conditions to your WHERE clause:

WHERE
       your_date_field Between [Forms]![Search Form]![txtDateFrom] And [Forms]![Search Form]![txtDateTo]
    OR [Forms]![Search Form]![txtDateFrom] Is Null


در صورتی فیلترکردن بین دو تاریخ  عمل نمیکند که فرمتی که در جدول ذخیره میشود و فرمت در کنترل تکست باکس مشابه نباشد!!!   فرضا "/" در جدول ذخیره نشود مثلا کسانیکه فیلد را از نوع تکست انتخاب میکنند برای تاریخ شمسی و INPUT MASK می گذارند ولی "/" در جدول فقط نمایش داده میشود و این در حالی است که "/" در تکست باکس وجود دارد و نمایشی نیست