Sub x()
Dim i As Long
For i = 1 To 5 Cells(6 - i, i).Value = "x"
Next i
End Sub
۶-۱,۱ ' ردیف ۵ و ستون ۱
۶-۲,۲
۶-۳,۳
در کد زیر نوشتن روی یک تکست فایل نمایش داده شده .iLastRow و iLastCol متغیرهایی هستند که به ترتیب شماره آخرین ردیف ( No Blank ) و آخرین ستون ( No Blank ) را در خود ذخیره می کنند. از عبارت Open و حالت OutPut برای باز کردن فایل FundPrices استفاده شده و در داخل لوپ هایی محتویات داخل سلول ها طبق آدرس ردیف و ستون مورد نظر گرفته و در تکست فایل Print می شوند و در آخر با دستور Shell تکست فایل در فایل اجرایی notepad به صورت نرمال باز می شود جهت نمایش روی Screen
iLastRow = Range("A" & Rows.Count).End(xlUp).Row
iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Open "C:\Users\Ryan\Documents\wellsr\FundPrices.txt" For Output As #1
For i = 1 To iLastRow
For j = 1 To iLastCol
If j <> iLastCol Then
Print #1, Cells(i, j),
Else
Print #1, Cells(i, j)
برای اضافه کردن به انتهای فایل باید از عبات Append استفاده شود.
اگر در آینده می خواهید داده ها را از یک فایل با استفاده از عبارت #Input بخوانید، به جای عبارت #Print از عبارت #Write برای نوشتن داده ها در فایل استفاده کنید. استفاده از #Write یکپارچگی هر فیلد داده مجزا را با جداسازی صحیح آن تضمین میکند، به طوری که با استفاده از ورودی # میتوان دوباره آن را خواند. استفاده از #Write همچنین تضمین می کند که می توان آن را در هر محلی به درستی خواند.
این متد عمل FindRecord در ویژوال بیسیک را انجام می دهد
نوشتاری :
expression.FindRecord (FindWhat, Match, MatchCase, Search, SearchAsFormatted, OnlyCurrentField, FindFirst)
-FindWhat : متن مورد جستجو [ اجباری ]
-Match : ( آرگومان اختیاری)
ثابت AcFindMatch جایی که برای انطباق جستجو می شود را مشخص می نماید . مقدار پیش فرض acEntir است
acAnywhere : جستجوی داده در هر قسمتی از فیلد
-MatchCase : ( آرگومان اختیاری)
استفاده از True برای جستجوی حساس به حروف کوچک و بزرگ و False برای جستجویی که حساسیتی در آن نیست ( حساسیت به حروف بزرگ و کوچک ) . اگر این آرگومان خالی رها شود ، پیش فرض False است .
-Search :(آرگومان اختیاری)
یک ثابت AcSearchDirection که مسیر جستجو را تعیین می کند و پیش فرض acSearchAll است.
دو ثابت دیگر acDown جستجو در تمام رکوردها پائین رکورد فعلی ( CurrentRecord ) و دیگری acUp جستجو در تمام رکوردها از بالای رکورد جاری
-OnlyCurrentField :اختیاری
ثابتی که مشخص میکند جستجو در تمام فیلد انجام شود یا فقط در فیلد جاری . پیش فرض acCurrent است.
-FindFirst :اختیاری
استفاده از True برای شروع جستجو در رکورد اول و False برای آغاز جستجو در رکورد بعد از رکورد جاری . پیش فرض True است
DoCmd.RunCommand acCmdFind
شئ Screen :
استفاده از آبجکت Screen بهمراه ویژگیهایش برای ارجاع به فرم ، گزارش ، یا کنترل خاصی که فوکس دریافت کرده.
بعنوان مثال ، استفاده از شئ Screen بهمراه ویژگی ActiveForm برای ارجاع به فرم در پنجره فعال بدون دانستن نام فرم.
ویژگی PreviousControl حاوی یک رفرنس به کنترلی است که قبلا فوکس گرفته . بعد از ایجاد رفرنسی به کنترل ، می توان به تمام ویژگیها و متدهای کنترل دسترسی داشت.
نمی توان از این ویژگی تا زمانیکه بیش از یک کنترل روی هر فرمی پس از باز شدن فوکس را دریافت کنند ، استفاده کرد.مایکروسافت اکسس در صورت تلاش برای استفاده از این ویژگی هنگامیگه فقط یک کنترل روی یک فرم فوکس را دریافت کرده باشد ، خطا ایجاد می کند.
تابع ChooseFont :
یک کادر محاوره ای فونت ایجاد می کند که به کاربر امکان می دهد ویژگیهای یک فونت منطقی را انتخاب کند. این ویژگیها شامل یک خانواده فونت و سبک فونت مرتبط ، اندازه نقطه ، جلوه ها ( زیر خط ، خط روی کاراکتر و رنگ متن ) یک اسکریپت ( یا مجموعه کاراکتر ) است.
Boolean :
ChooseFont(lpcf)
lpcf :
نشانگری به ساختار CHOOSEFONT که حاوی اطلاعاتی است که برای مقداردهی اولیه کادر محاوره ای استفاده می شود. هنگامیکه ChooseFont بر می گرداند. این ساختار حاوی اطلاعاتی در مورد انتخاب فونت کاربر است.
حاوی اطلاعاتی است که تابع ChooseFont برای مقداردهی اولیه کادر محاوره ای فونت استفاده می کند. پس از بستن کادر محاوره ای توسط کاربر ، سیستم اطلاعات مربوط به انتخاب کاربر در این ساختار را بر می گرداند
-متد Application.hWndAccessApp :
استفاده از متد hWndAccessApp برای تعیین دستگیره معین شده توسط ویندوز به پنجره اصلی مایکروسافت اکسس
hDC :
تعیین ویژگیهای یک فونت
Private Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFaceName(LF_FACESIZE) As Byte
End Type
تابع MulDiv :
دو مقدار 32 بیتی را ضرب می کند و سپس نتیجه 64 بیتی را بر یک مقدار 32 بیتی سوم تقسیم می کند. نتیجه نهایی به نزدیکترین عدد صحیح گرد می شود.
Kernel32.lib
Private Function MulDiv(In1 As Long, In2 As Long, In3 As Long) As Long
Dim lngTemp As Long
On Error GoTo MulDiv_err
If In3 <> 0 Then
دو مقدار 32 بیتی را ضرب می کند :
lngTemp = In1 * In2
نتیجه 64 بیتی را بر یک مقدار 32 بیتی سوم تقسیم می کند :
lngTemp = lngTemp / In3
Else
lngTemp = -1
End If
MulDiv_end:
MulDiv = lngTemp
Exit Function
MulDiv_err:
lngTemp = -1
Resume MulDiv_err
End Function
تابع GetDeviceCaps :
اطلاعات مربوط به دستگاه ( Device ) را برای دستگاه مشخص شده بازیابی می کند.
Gdi32.lib
LOGPIXELSY
Number of pixels per logical inch along the screen height. In a system with multiple display monitors, this value is the same for all monitors
LF.lfHeight = -MulDiv(CLng(f.Height), GetDeviceCaps(GetDC(hWndOwner), LOGPIXELSY), 72)
StringToByte(f.Name, LF.lfFaceName())
Private Sub StringToByte(InString As String, ByteArray() As Byte) Dim intLbound As Long Dim intUbound As Long Dim intLen As Long Dim intX As Long intLbound = LBound(ByteArray) intUbound = UBound(ByteArray) intLen = LenB(InString) If intLen > intUbound - intLbound Then intLen = intUbound - intLbound For intX = 1 To intLen ByteArray(intX - 1 + intLbound) = AscB(MidB(InString, intX, 1)) Next End Sub
Dim abData() As Byte Dim Str As String Dim i As Long Str = "Hello world!" ' Convert string to bytes abData = StrConv(Str, vbFromUnicode) For i = 0 To UBound(abData) Debug.Print Hex(abData(i)); "='" & Chr(abData(i)) & "'" Next ' Convert bytes to string Str = StrConv(abData, vbUnicode) Debug.Print "'" & Str & "'"
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hDC As LongPtr, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr
Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As LongPtr, ByVal hDC As LongPtr) As Long
Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Private Declare PtrSafe Function MonitorFromWindow Lib "user32" _ (ByVal hWnd As LongPtr, ByVal dwFlags As Long) As LongPtr
Private Declare PtrSafe Function GetMonitorInfo Lib "user32" Alias "GetMonitorInfoA" _ (ByVal hMonitor As LongPtr, ByRef lpMI As MONITORINFOEX) As Boolean
Private Declare PtrSafe Function CreateDC Lib "gdi32" Alias "CreateDCA" _ (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As LongPtr) As LongPtr
Private Declare PtrSafe Function DeleteDC Lib "gdi32" (ByVal hDC As LongPtr) As Long
=IIF(Condition, Value If True, Value If False)
برای مثال
=IIF(State="NY", "Yes", "No")
تابع IIF کلمه Yes را باز خواهد گرداند اگر فیلد State برای NY باشد.
=IIF(State="NY", 0.875, 0)
اگر State برابر NY باشد نرخ مالیات ۸.۷۵ درصد است در غیر اینصورت صفر.
اگر بخواهید از IIF در یک پرس و جو استفاده کنید ، فقط یک فیلد " محاسبه شده " جدید خالی از آن ایجاد کنید مانند این :
TaxRate: IIF(State="NY", 0.875, 0)
در زیر از Sum و IIF مشترکاً استفاده شده
SELECTSUM(IIF (status = 1, 1, 0)) AS Pending,SUM(IIF (status = 2, 1, 0)) AS Processing,SUM(IIF (status = 3, 1, 0)) AS Rejected,SUM(IIF (status = 5, 1, 0)) AS Completed,Count(*) As Total From .....
absolutely right
کاملاً درسته
۶ آبان ۱۴۰۲ : آرمیتا گراوند دختر دانش آموز تهرانی که اوایل مهر امسال هنگام عزیمت به مدرسه در ایستگاه مترو میدان شهدا دچار افت فشار و بیهوشی شده بود، پس از به ثمر ننشستن معالجات گسترده پزشکی و بیست و هشت روز بستری در بخش مراقبهای ویژه در گذشت.
در کد های زیر از چندین تابع و متد استفاده شده ابتدا چک میکند درصورت Null بودن نام کاربری ( username ) در جدول tbl_registration ورودی هایی را برای ارسال و درج در فیلدهای این جدول مثل fname یا password دریافت می کند.
If (IsNull(DLookup ("username", "tbl_registration", "username="" & Me.txt_username.Value & "'"))) Then
Dim query As String
نوشتن کوئری Append :
ورودی های متنی باید داخل تک کوتیشن ها قرار بگیرند فرضا تکست باکس text1 نام را می گیرد روش نوشتاری آن به شرح ذیل است :
" ' " & text1 & " ' "
waiting for a goal....
Everything you need to know about.....
'Hide Columns
Columns("B:C").EntireColumn.Hidden = True
'Unhide Columns Columns("B:C").EntireColumn.Hidden = False
lRow=Selection.Row()
Rows(lRow).Select
متد Selection.Copy :
کپی کردن انتخاب مشخص شده به کلیپ بورد
پراپرتی Application.CutCopyMode :
تنظیم یا بازیابی عنوان حالت Cut یا Copy . می تواند True یا False باشد ، یا ثابت XLCutCopyMode
تابع CountBlank تعداد سل های خالی رنج مشخص شده را بر می گرداند
=Or(Row()=.....,Column()=...)
دوم آبانماه ۱۴۰۲
به گزارش خبرنگار اعزامی فارس از چین، با اعتراض چین و بررسی اتفاقی که در ماده F56 پرتاب نیزه بانوان افتاد، کمیته برگزاری بازیهای پاراآسیایی هانگژو، مدال طلا و نقره هاشمیه متقیان و زینب مرادی را پس گرفت.
کد های زیر در رویداد SelectionChange نوشته شده با جابجا شدن روی سل ها ، رنگ کل ستون و ردیف انتخابی به رنگ هایی در می آیند
Interior :
ایجاد یک ردیف در محدوده خاص و پاک کردن قالب ها
With Range("B2:E5")
.Insert xlShiftDown
.ClearFormats
End With
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)Select Case Target.Column
Case Is = 3
MsgBox "You're in column 3"
Case Is = 1, 2, 4
MsgBox "You're in column " & Target.ColumnCase Is >= 5MsgBox "You're in column " & Target.Column
End SelectEnd Sub
شروین اسبقیان گفت: بعد از مسابقه چینیها اعتراض کردند که ورزشکاران ما دقایقی دیر وارد کالروم شدند که این خلاف مقررات است چرا که داور بر اساس مقررات آنجا تشخیص داده که مشکلی نیست.
از طرفی بعد از مسابقات هاشمیه متقیان و زینب مرادی تست دوپینگ هم دادند و در واقع همۀ مراحل و فرآیند را طی کردند.
این سرقت مدالی توسط تشکیلات ورزش چین با توجه به نفوذی که داشتند، صورت گرفته و وقتی مدال طلا و نقره ورزشکاران ما را گرفتند، ورزشکار چین که سوم شده بود، به مدال طلا رسید.
مرگ بر چین کمونیست
دهه اول آبانماه ۱۴۰۲
تهران- ایرنا- هواپیمایی هما از مسافران پرواز استانبول به تهران که در فرودگاه تبریز فرود آمد و موجب انصراف گروهی از مسافران از ادامه پرواز شد، عذرخواهی کرد.
خلبان پرواز مدعی نقص فنی شده بنابراین پرواز در تبریز نشسته و هواپیمای جایگزین برای اعزام به تهران گذاشتن ولی انصراف دادند و انصراف هم یعنی چک مجدد بارهای مسافران و معطل شدگی !!!
در مثال زیر با تغییر عدد مربوط در هر کدام از سل های درون ستون A رنگ سلول ستون مجاور یعنی B و همان ردیف به رنگ قرمز در می آید.
کد در رویداد Change برگه کاری یا شیت فعلی که در آن هستید نوشته شده
مثال دیگر : تغییر رنگ فونت در سلول A1 از شیت یک به قرمز
This example changes the font color in cell A1 on Sheet1 to red.
Worksheets("Sheet1").Range("A1").Font.ColorIndex = 3
بلایی که از پوشیدن شلوار تنگ در دراز مدت حاصل خواهد شد
سخن خداوند است که: و اگر مردمِ آبادىها ایمان مى آوردند و تقوا پیشه مى کردند، برکت هایى از آسمان و زمین به روى آنان مى گشودیم، لیکن تکذیب کردند.
X=Target.Row
Y=Target.Column
Msgboc X & "," & Y
در کد زیر اگر مقدار در ستون C و سل مربوطه با ردیف قبلش تفاوت داشت یک ردیف ایجاد می کند بخاطر تفکیک کردن.البته در رویداد Selection Change هم می توان کد داخل رویه زیر را کپی کرد و محدوده را هم اصلاح نُمود.
رویداد Selection Change ناحیه کاربری برای اجرا هر ماکرویی بصورت خودکار زمان تغییر سلول یا انتخاب سلول یا رنج مشخص
در تصویر اول از عملگر Or در ستون ۷ یا Owner استفاده نُموده و همانطور که می بینید Ben و John در حالت انتخاب قرار گرفته اند. در تصویر دوم فیلتر در دو ستون ۷ و ۹ صورت گرفته
انجام فیلتر در Vba معمولا در گزارشات می تواند موثر باشد که با کدهایی که داده میشه آیتم (هایی) فیلتر شود(ند) و کانت یا جمع آن در شیت یا ورک بوک ( ناحیه کاری : سند دیگری ) ریخته شود.فرضا محصولات مختلفی دارید که هرکدام در هر ماه طی روزهایش به تعدادی تولید می شود یا باید با Pivot table اطلاعات گزارش را تهیه کنید یا به تعداد عنوان محصولات فیلتر کنید و جمع تعداد را در شیت دیگری برای ارائه به مدیریت منتقل کنید ... با کمک Vba می توان هر محصول را در آن محدود بصورت خودکار فیلتر کرد و بعد تعداد اتومات گرفته و کپی شود و از فیلتر خارج شده و دوباره به همین منوال تا پایان کار ... با رکورد ماکرو هم می توان این کار را به انجام رسانید یعنی فرآیند کاری شما از pivot گرفتن تا انتخاب و کپی کردن اعداد به شیت مربوطه ضبط یا رکورد می شود و بعد زمان اجرای آن بصورت اتومات ملاحظه می کنید که همان کارهایی که خودتان به آرامی و دقت انجام دادید به سرعت جلوی چشمتان انجام خواهد گرفت.
در زیر متغیر LastRow شمارش تعداد ردیف ها در آن موقتاً ذخیره می شود و در انتهای ستون S جمع اعداد وارد شده در ستون را درج می کند توجه داشته باشید اگر در ستون مربوطه Cell یا سلولی خالی باشد تا همانجا را شمارش می کند پس لازم است برای LastRow از ستونی استفاده شود که نباید خالی بماند
Dim LastRow As Long
LastRow = Cells(Cells.Rows.Count, "S").End(xlUp).Row + 1
Range("S" & LastRow) = WorksheetFunction.Sum(Range("S2:S" & LastRow - 1))
می توانید کد زیر را در ماژولی کپی کنید در ستون یک اعداد یا حروفی را تایپ کنید و بینشان را خالی بگذارید تابع Msgbox عدد ذخیره شده در متغیر lastLine اظهار شده توسط شما را نشان خواهد داد و به چگونگی عملکرد آن نیز پی خواهید برد.
Sub checkLastFilledLine()
Dim lastLine As Long
lastLine = Cell(Rows.Count, 1).End(xlUp).Row
msgbox lastLine
End Sub
SumIf :
البته خود SumIf را غیر از محیط VBE اکسل داخل شیت هم می توان استفاده نمود
نوشتاری آن به شرح زیر آمده :
SUMIF(range, criteria, [sum_range])
که Range همان ستونیست که شرط شما درآن وجود دارد و آرگومان آخر محدوده ( ستونیست ) جمع شماست . در تصویر بالا جمع محدوده B را به شرط برقراری عبارت متنی Product B در محدود A آمده..... تابع SumIfs شرط های بیشتری را می توانید دخیل کنید که نوشتاری آن به شرح زیر می باشد :
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
اول محدوده Sum ( فرضا می خواهید جمع محدوده ای در ستون X را بگیرید ) و بعد محدوده شرط اول ( مثل رنج A در مثال قبل ) و خود شرط ( "Product B" ) و محدوده شرط دوم و شرط دوم و به همین منوال .... یعنی مانور شما برای Sum گرفتن از محدوده ای حاوی چندین شرط متفاوت را مهیا می سازد.
۲۸ مهر ۱۴۰۲ ۱۸ عصر :
سلمان رشدی نویسنده سرشناس بریتانیایی-آمریکایی هندیتبار در کنفرانس مطبوعاتی در حاشیه برگزاری نمایشگاه بینالمللی کتاب فرانکفورت خواستار پایان جنگ حماس و اسرائیل شد.
او گفت: «من سرشار از هراسم، این تنها چیزی است که میتوانم بگویم. من فکر میکنم در رابطه با حمله حماس، سرشار از هراس شدهام. همچنین در باره آنچه آقای نتانیاهو ممکن است در پاسخ به این حمله انجام دهد پر از گمانم و تنها امیدوارم که در اولین نقطه ممکن این خصومتها متوقف شوند.»
آرمیتاژ مشهد مهر ۱۴۰۲
شاکی بازداشت شد
در نهایت همه این افراد با شکایت مدیر فود کورت پاساژ آرمیتاژ به کلانتری «هفت تیر» که در نزدیکی پاساژ واقع شده، منتقل میشوند. به گفته مدیر روابط عمومی پاساژ، در ابتدای امر مقامات انتظامی از برخورد با افرادی که در پاساژ درگیری ایجاد کرده بودند، میگویند اما در ادامه آنان آزاد میشوند و مدیر فود کورت پاساژ که از طرف مجموعه برای شکایت رفته بود، بازداشت شد. عادل سوختانلو، مدیر فود کورت پاساژ است که برای شکایت رفته بود ولی بازداشت شد. او به «شبکه شرق» میگوید: «در کلانتری به یکباره همه چیز برعکس شد. این افراد مجوز نداشتند، به دروغ خود را مأموران فرمانداری معرفی کرده بودند، از شوکر استفاده کردند، به دختر مردم سیلی زدند اما من بازداشت شدم و یک شب هم در بازداشت بودم. فردای آن روز هم من را نزد قاضی کشیک فرستادند و به قید وثیقه آزاد شدم.» مدیر روابط عمومی پاساژ آرمیتاژ در اینستاگرامش نوشته که برای سوختانلو پروندهای با اتهام «ممانعت از امر به معروف» تشکیل شده و در انتظار تشکیل جلسه رسیدگی است.
بیرانوند تصریح کرد: آویشن سقط کننده جنین در مادران باردار محسوب میشود بنابراین زنان باردار باید از مصرف آن خودداری کنند.
متد GetOption مقدار فعلی یک انتخاب در باکس Options را برمی گرداند (فرضا تیک خورده یا نخورده-انتخاب شده یا نشده ).اگر روی دکمه Options در سمت چپ و بالای پنجره اکسس کلیک کنید پنجره ای باز میشود که حاوی تنظیم هایی است فرضا رفتار Enter که به فیلد بعد برود یا رکورد بعدی.
متدهای GetOption و SetOption وسیله ای برای تغییر گزینه های احاطه شده کد ویژوال بیسیک را ارائه می دهد.با این روش ها می توان هر انتخاب موجودی در دیالوگ باکس Options را خواند یا تنظیم کرد.
SetOption "Show Status Bar", True
Arr(0)= "Show Status Bar"
Arr(1)="Show Startup Dialog Box"
Arr(2)="Show New Object Shortcuts"
Arr(3)="Show Hidden Objects"
Arr(4)="Show System Objects"
Arr(5)="ShowWindowsInTaskbar"
Arr(6)="Show Macro Names Column"
Arr(7)="Show Conditions Column"
مهر ۱۴۰۲ طوفان الاقصی با بیش از ۳۰۰۰ کشته در غزه و حمایت بایدن از دفاع اسرائیل در برابر حماس ( بمباران بیمارستان معمدانی ، تخریب مساجد و مناطق مسکونی برای توهم فرضی نابودی نیروهای پناه گرفته حماس(
یک دستور داخلی را اجرا می کند
فرضا باز کردن دایالوگ باکس Options
Public Sub OpenDialogBoxOptions(
RunCommand acOptions
End Sub
هر کدوم از این عملکردها یه مقدار ثابتی در اکسس دارد که در زیر بعضی از آنها آورده شده و می توانید به داکیومنت آفیس برای مشاهده دستورات دیگر مراجعه نُمائید.
انجام ماکزیمم ، مینیمم و به حالت اول درآوردن اندازه پنجره اپلیکیشن.
acCmdAppMaximize
acCmdAppMinimize
acCmdAppMove
acCmdAppRestore
تبدیل کنترل ها ( فرضا در فرم کنترل لیست با کس دارید که می خواهید به به تکست باکس تبدیل کنید ) البته در نمای View امگانپذیر نیست و همینطور زمانیکه فرمت فایل اکسس به اجرایی Mde یا accde تبدیل شده باشد.
acCmdChangeToLabel
acCmdChangeToListBox
acCmdChangeToOptionButton
acCmdChangeToTextBox
بستن پنجره دیتابیس
acCmdCloseDatabase
acCmdCloseWindow
acCmdCompactDatabase
این متد شئ مورد نظر در پنجره اکسس را انتخاب می کند دیفالت آرگومان سوم در صورت انتخاب نشدن False یا عدد صفر و انتخابی یا Optional است. آرگومان اول نوع آبجکت را مشخص می کند مثل acTable ( نشاندهنده جدول )
این متد Docmd.SelectObject ، عمل یا اکشن SelectObject در ویژوال بیسیک است.
در کد زیر فرم Customers انتخاب شده است ( فرمی که باز است )
DoCmd.SelectObject acForm, "Customers", True
کد زیر کامل نیست و فقط جهت راهنمایی ارائه شده ... اول روی پنجره پایگاه داده / پنل راهبری فوکس کرده و بعد نسبت به هاید یا پنهان کردن اقدام نُموده است.
bolHide یک پارامتر نوع Boolean در تابع است که در باتنی قرار داده و با False و True کردن پنهان کردن و یا نمایش دادن را تنظیم می کند
Use the NavigateTo method to control the display of database objects in the navigation pane
' Move focus to the navigation pane/database container DoCmd.NavigateTo ("acNavigationCategoryObjectType")
ماده ۱۴- دولتهای متعاهد در زمان صلح و دولتهای متخاصم پس از شروع جنگ میتوانند در خاک خود و در صورت لزوم در اراضی اشغالی، نواحی و نقاط بهداری و امنیت ایجاد کرده و تشکیلات آن را طوری بدهند که زخمداران و بیماران و معلولین و پیران و اطفال کمتر از ۱۵ سال و زنان باردار و مادران اطفال کمتر از ۷ سال را از اثرات جنگ پناه دهند... از دولتهای حامی و کمیتهٔ بینالمللی صلیب سرخ دعوت میشود که برای تسهیل ایجاد و شناسائی نقاط و نواحی مزبور وساطت و کمک نمایند.
این یک تئوری است که هر شخصی می تواند خودش مورد آزمایش قرار دهد البته این روش (ها) بعلت هک شدن پنجره توسط هکر(ها) مورد توصیه Office نیست ... در ضمن کامل نیست چون عوامل غیر قابل پیش بینی دیگری ممکن است برای عدم موفقیت آن دخیل باشند.
زمانیکه می خواهید اینترفیس اپلیکیشن ( رابط برنامه ) را پنهان کنید تمام فرم ها می بایست به حالت popup تنظیم شوند تا مستقل از بقیه اینترفیس اپلیکیشن که پنهان می کنید ظاهر شوند.
ساده ترین روش برای مخفی کردن رابط برنامه استفاده از تابع ویندوزی ShowWindow در رویداد Load فرم است ( SHOWMINIMIZED) به همراه متد Docmd.Restore که باید error handling ( بررسی خطاها ) را هم شامل شود. ( به شدت توصیه می شود)
اگر چه کد خیلی ساده ایست ولی یک مطلب مهمی وجود دارد ، اگر کاربری روی آیکون اکسس در نوار وظیفه ( taskbar ) کلیک کند رابط برنامه بازیابی میشه ( نمایان می شود ).بسیار بعید است که بسیار مطلوب باشد ولی برای برطرف کردن آن در فرم ( نه فرم Split ) از Painting ، تابع ویندوزی SetWindowLong و متد Docmd.Restore استفاده می نُمایند.
WS_EX_APPWINDOW=&H40000 :
زمانیکه پنجره قابل مشاهده است ، یک پنجره top-level را داخل نوار وظیفه ( taskbar ) تحمیل می کند.
.
اول استفاده از SetWindowLong سپس ShowWindow برای مخفی کردن اپلیکیش اکسس و دوباره نمایش فرم جاری.
هر چند در بعضی موارد نمایش آیکون در taskbar اتفاق می افتد و راه حلی وجود ندارد.
برای فرم Split ( که شامل یک نمای datasheet در بالا یا پائین آن است ) باید در تابع ویندوزی SetWindowLong ، از تابع GetParent استفاده کرد ( برای گرفتن هندل [ یک مقدار که همیشه تغییر می کند ] پنجره والد یا مالک ) و تابع ShowWindow برای نمایش والد فرم ( استفاده از GetParent فرم در آرگومان hWnd ) و بدون هاید کردن رابط برنامه
گزارشات را به همین روش فرم ها نمی توان مدیریت کرد.برای مثال کاربران راهی برای چاپ گزارشات لازم دارند.برنامه یا اپلیکیشن شامل چندین متد نمایش گزارشات زمان مخفی شدن اینترفیس برنامه است.
۱-استفاده از report view و شامل یک دکمه چاپ ( print button ) روی خود گزارش
۲-استفاده از print preview با بازیابی ( برگرداندن ) نوار پیش نمایش چاپ ( print preview ribbon ) در حالیکه گزارش باز است و پس از بسته شدن دوباره پنهان می شود.
انجام این کار قابلیت های اضافی از جمله گزینه ذخیره بعنوان PDF ( و غیره ) را می دهد.
هنگامیکه پنجره برنامه اکسس پنهان است ، فرم های بدون حاشیه ( Border ) برای یک رابط تمیز به خوبی کار می کنند. با این حال ، از آنجایی که فرم های بدون حاشیه ( Border ) نوار عنوان ( title bar ) ندارند ، معمولاً نمی توان آن ها را روی صفحه جابجا کرد.
راه حل برای این مورد درگ کردن فرم با نگهداشتن دکمه چپ ماوس به سمت پائین است که در رویداد هدر فرم از تابع ویندوز ReleasCapture و SendMessage استفاده می شود.
WM_NCLBUTTONDOWN :
&HA1 Or Decimal >>>161=10(A)×16+1
ویندوزمسیج_نان کلاینت باتن داون
هنگامیکه کاربر دکمه چپ ماوس را می فشرد در حالیکه کرسر ( مکان نما ) داخل منطقه nonclient پنجره است ، این پیام ارسال میشود.این به پنجره ای که کرسر را داخل خود دارد ارسال می شود .اگر پنجره ای ماوس را گرفته باشد ، این پیام پست نمی شود.
یک پنجره این پیام را از طریق ( through ) تابع WindowProc خودش دریافت می کند.
موقعیت مکان نما
Hittest
HTCAPTION=2
HTMINBUTTON=8
HTMAXBUTTON=9
ReleaseCapture :
گرفتن ( فرآیند ضبط ) ماوس از پنجره ای در رشته ( thread ) جاری را رها می کند و فرآیند ورودی عادی ماوس را بازیابی می کند. پنجره ای که ماوس را گرفته صرفنظر از موقعیت مکان نما ، تمام ورودی ها ماوس را دریافت می کند ، جز زمانیکه دکمه ماوس کلیک می شود در حالیکه نقطه داغ مکان نما HotSpot در پنجره رشته دیگری است.
HotSpot نقطه ای در مکان نما است که با سایر عناصر روی صفحه در تعامل است.SendMessageA(hWnd,Msg,wParam, lParam )
Msg:WM_NCLBUTTONDOWN
wParam : HTCAPTION
lParam : Zero
یک برنامه کاربردی از یک یا چند فرآیند ( process ) تشکیل شده . یک فرآیند ، در ساده ترین عبارت ، یک برنامه اجرایی است . یک یا چند thread در زمینه فرآیند اجرا می شود.thread واحد اصلی است که سیستم عامل زمان پردازنده را به آن اختصاص می دهد.یک thread می تواند هر بخشی از کد فرآیند را اجرا کند ، از جمله قسمت هایی که در حال حاضر توسط thread دیگری اجرا می شوند.
SetWindowPos :
تغییر سایز ، موقعیت و ترتیب پنجره چایلد ، پاپ آپ یا تاپ لول . این پنجره ها طبق نُمودشان در صفحه مرتب می شوند . بالاترین پنجره بالاترین رتبه را دریافت کرده و اولین پنجره در Z Order است.
BOOL SetWindowPos( [in] HWND hWnd, [in, optional] HWND hWndInsertAfter, [in] int X, [in] int Y, [in] int cx, [in] int cy, [in] UINT uFlags );
HWND :
HWND_TOP(HWND)=0
قراردادن پنجره در بالای Z Order
قرار دادن پنجره بالای تمام پنجره هایی که حالت topmost نیستند.پنجره حتی زمان غیرفعال بودن نیز در حالت topmost خودش باقی می ماند.
uFlags :
می تواند ترکیبی از مقادیر باینری زیر باشد
' ClassName Of InputBox Or Messagebox =&32770
If IsNull(txtBatteryID + cmbModelNumber + cmbChemistryType + txtSpecVoltage + txtSpecCapacity) = False Then
قتل کارگردان و نویسنده مهرجویی و همسرش مهر ۱۴۰۲
اما همسو با جریان ضدانقلاب خارج نشین، یک جریان داخلی نیز سعی کرد از این فرصت استفاده کرده تا روایت ضدحکومتی مطلوب خود را بسازد. نکته نخست اینکه چهرههای امنیتی و سیاسی جریان اصلاحطلب با صدور پیامهای بیسابقهای با تأکید روی کلیدواژههایی مانند «نگرانی مردم» و «لزوم شفاف سازی» تلاش کردند دامنه ابهام این حادثه را توسعه دهند و نکته دوم و مهمتر اینکه افرادی مانند عمادالدین باقی و مهدی یزدانی خرم از طریق موازی نمایی قتل داریوش مهرجویی با قتلهای زنجیرهای در دهه ۷۰، همسو با گروهک منافقین و طیفهای رادیکال ضدانقلاب، انگاره سیاسی بودن قتل را بدون ذکر هیچ مدرکی و صرفاً براساس ذوقیات و تشابه اسمی و زمانی (فصل پاییز) بازنمایی کردند!
آخر و عاقبت یک کارگردان مشهور ۸۵ ساله
بر اساس اطلاعات به دست آمده وضعیت اجساد نشان میداد ابتدا داریوش مهرجویی به قتل رسیده است. عاملان قتل با چوب که به نظر میرسد مربوط به درخت آلبالو است به سر او کوبیده و لکههای خون روی این چوب دیده شده است. بعد از اینکه داریوش مهرجویی گیج شده شاهرگ او را قطع کرده و جسدش را مقابل آشپزخانه رها کردهاند.
جسد همسرش وحیده محمدیفر در یکی از اتاق خوابها پیدا شده است. گلوی او هم بریده شده، اما آثار بر جای مانده روی بدن این زن نشان میدهد او با عاملان قتل درگیر شده و شکستگیهایی نیز روی دست و پای او وجود داشته است.
به گزارش رسانههای ایران، هریکندی ابراز داشت: ضرباتی با چوب و یا جسم سخت نیز به سر مرحوم مهرجویی برخورد کرده که منجر به شکستگی سر نشده و علت فوت نبوده است. طبق گزارش پزشکی قانونی فرضیهها درمورد تجاوز در مورد هر دو نفر از مقتولین منتفی است.
رییس پیشین کانون وکلای تهران در آخر بیان کرد: با توجه به شرایط اقتصادی کشور با نوعی افزایش بزهکاری علیه اشخاص و اموال مواجه شدهایم و این موضوع احساس ناامنی را در مردم افزایش داده است. نهتنها سرقت اولیها افزایش یافته بلکه سرقتها از حالت سنتی به خشونتهای عیانی تبدیل شده است. چهبسا این روزها به جز سرقت اموال مردم، سرقت انشعاب برق، لوله گاز و لوله آب نیز باب شده است. بنابراین افزایش اینگونه جرم و جنایتها یک خطر جدی برای جامعه است که مسوولان انتظامی و قضایی باید تدابیر بیشتری برای آن بیندیشند.
PALESTINIAN RESISTANCE IS JUSTIFIED WHEN OUR PEOPLE ARE OCUUPIED
مقاومت فلسطین موجه است وقتی مردممان اشغال شده اند
چپگرا و راستگرا Leftist and rightist
فضه نوبیه خدمتگزار فاطمه زهرا دختر پیامبر اسلام بود و شهرتش به خاطر نقل روایاتی منتسب به فاطمه زهرا است. طبق بعضی از روایات او دختر یکی از پادشاهان هند (یا سودان) بود که در یکی از جنگها به اسارت درآمد و به عنوان کنیز به حبشه فرستاده شد.
مقداری را برمی گرداند که نشان می دهد آیا کنترل toggleButton شناسایی شده توسط پارامتر idMso فشرده شده است یا خیر.
متد ExecuteMso کنترل شناسایی شده توسط پارامتر idMso را اجرا می کند.
expression.ExecuteMso "MinimizeRibbon"
-برداشت شده از داکیومنت سایت Office
برای سیستم ۳۲ یا ۶۴ بیت
IsZoomed :
آیا یک پنجره در حالت حداکثر سایز است ؟
Determines whether a window is maximized.
IsIconic :
آیا پنجره تعیین شده در حالت حداقل اندازه است ( دیدن فقط آیکون های پنجره) ؟
Determines whether the specified window is minimized (iconic).
#If VBA7 Then
Private Declare PtrSafe Function IsZoomed Lib "user32" (ByVal hWnd As LongPtr) As Integer
Private Declare PtrSafe Function IsIconic Lib "user32" (ByVal hWnd As LongPtr) As Integer
#Else
Private Declare Function IsZoomed Lib "user32" (ByVal hWnd As Long) As Integer
Private Declare Function IsIconic Lib "user32" (ByVal hWnd As Long) As Integer
#End If
IsWindowVisible
اندازه ، موقعیت و ترتیب Z یک پنجره Child یا Pop-up یا top-level را تغییر می دهد. این پنجرهدها با توجه به ظاهرشان بر روی صفحه نمایش ( Screen ) مرتب می شوند. بالاترین پنجره بالاترین رتبه را دریافت می کند و اولین پنجره در ترتیب Z است.
Z-Order فرآیند سورت و قرار گیری پنجره هاست.بالاترین به پائین ترین ترتیب
برای تعیین اینکه آیا پنجره پایگاه داده زمانیکه برنامه باز میشود نمایش داده شود یا خیر از این ویژگی استفاده می شود.بعنوان مثال ، زمانیکه برنامه پایگاه داده باز می شود ، می توانید یک فرم اصلی را باز کنید و پنجره پایگاه داده را پنهان کنید.
می توانید این ویژگی را برای پنهان کردن پنجره پایگاه داده به False تنظیم نُمائید لذا کاربر جداول ، پرس و جو ها ، ماکروها و ماژول های داخل پایگاه داده را نمی تواند مشاهده کند.
آسان ترین طریق برای تنظیم این ویژگی استفاده از انتخاب Display DataBase Window در دیالوگ باکس Startup است ، که با کلیک کردن Startup از منوی Tools در دسترس است . همچنین این ویژگی با استفاده از ماکرو یا ویژوال بیسیک هم قابل تنظیم است.
اگر چک باکس Use Access Special Keys در کادر محاوره Starup انتخاب شود یا اگر ویژگی AlliwSpecialKeys به True تنظیم شود کابران با فشردن کلید F11 می توانند پنجره پایگاه داده را مشاهده نمایند.
حالت نمایش پنجره بدون انتظار برای عملیات کامل شدن را تنظیم می کند
BOOL ShowWindow(
[in] HWND hWnd,
[in] int nCmdShow )
وی هدف از توزیع تخمه شور را جلوگیری از خواب آلودگی رانندگان ذکر کرده و آن را عامل مهم کاهش تصادفات اعلام و اضافه کرد: این طرح از سوی نیروی انتظامی مرکز مورد توجه قرار گرفته و مقرر شده در دیگر استانها نیز اجرا شود.
انتشار این خبر، موجی از استقبال و انتقادها را از سوی کاربران فضای مجازی به دنبال داشت؛ عدهای از این طرح استقبال کردند و در مقابل، شماری هم با طرح انتقاداتی، آن را خلاف قوانین و مقررات رانندگی به استناد "ممنوعیت خوردن و آشامیدن در حین رانندگی" دانستند.
استفاده از ویژگی برای تعیین اینکه می توان از کلید Tab برای انتقال فوکس به یک کنترل استفاده کرد یا خیر ، نوع Boolean بصورت خواندنی و نوشتنی
زمان ساخته شدن یک کنترل روی یک فرم ، مایکروسافت اکسس بصورت خودکار به کنترل یک موقعیتی را در Tab Order فرم اختصاص می دهد.
هر کنترل جدید در آخر Tab Order ( برگه چیدمان کنترل ها ) قرار می گیرد.برای جلوگیری از در دسترس بودن یک کنترل زمان پرش بین کنترل های یک فرم ویژگی TabStop را به No تنظیم کنید.
در نمای فرم کنترل های پنهان یا غیر فعال در tab order باقی می مانند اما با فشردن tab در میان کنترل ها حذف می شوند.حتی اگر ویژگیهای TabStop آنها روی Yes تنظیم شده باشد.
تا زمانیکه ویژگی Enabled یک کنترل روی Yes تنظیم شده باشد،می توانید روی کنترل Click کنید یا از یک کلید دسترسی برای انتخاب آن استفاده کنید، بدون توجه به تنظیمات ویژگی TabStop. برای مثال می توانید ویژگی TabStop یک Command Button را روی No تنظیم کنید تا با فشردن Tab از انتخاب آن توسط کاربران جلوگیری کنید.با این حال ، آنها همچنان می توانند روی Command Button کلیک کنند تا آنرا انتخاب کنند.
استفاده از ویژگی TabIndex برای تعیین محل قرارگیری یا ترتیب یک کنترل در tab order روی یک فرم یا گزارش.نوع داده Integer و خواندنی-نوشتنی است.
Me.LastName.TabIndex=2
تنظیم ویژگی TabIndex به یک مقدار صحیح که نمایش دهنده موقعیت کنترل در tab order فرم است.تنظیم های معتبر ، صفر برای اولین موقعیت در tab تا تعداد کل کنترل ها منهای یک بر ای آخرین موقعیت در tab order است.برای مثال ، اگر فرمی ۳ کنترل دارد که هر کدام دارای ویژگی TabIndex هستند ، تنظیمات معتبر برای این ویژگی ، صفر ، یک و دو هستند.
تنظیم ویژگی TabIndex به عدد صحیح کمتر از Zero خطایی را تولید می کند.
مثال بعدی tab order یک Command Button و یک text box را برعکس می کند.بدلیل اینکه TextBox1 اول ایجاد شد ، تنظیم ویژگی TabIndex صفر را دارد و Command1 مقدار یک را داراست.
Sub Form_Click()
Me!Command1.TabIndex = 0
Me!TextBox1.TabIndex = 1
End Sub
اگر پارامتر nTabPositions صفر و پارامتر lpnTabStopPositions نال باشد تب ها به هشت برابر میانگین عرض کاراکترگسترش می یابند.
اگر nTabPositions یک در نظر گرفته شود ، tab stop ها با فاصله مشخص شده توسط مقدار اول در آرایه lpnTabStopPositions از هم جدا می شوند.
اگر آرایه lpnTabStopPositions حاوی بیش از یک مقدار باشد ، یک tab stop برای هر مقدار در آرایه تا تعداد مشخص شده توسط nTabPositions تنظیم می شود.
Undocument ... User32.Dll
MB_YESNOCANCEL=&H3
MB_YESNO=&H4
MB_RETRYCANCEL=&H5
MB_OKCANCEL=&H1
MB_OK=&H0
MB_ICONEXCLAMATION=&H30
MB_ICONHAND=&H10
MB_DEFBUTTON1=&H0
MB_DEFBUTTON2=&H100
MB_RIGHT=&H80000
MB_RTLREADING=&H100000
MB_TOPMOST=&H40000
IDOK=1
IDCANCEL=2
IDYES=6
IDNO=7
MessageBoxW(hWnd,lpText,lpCaption, uType:iFlags)
MessageBoxTimeoutW(hWnd,lpText,lpCaption, uType:iFlags,wLanguage, dwMilliseconds)
2000Milliseconds=2Seconds
پنجره ، نوار عنوان یا title bar دارد ( شامل مد WS_BORDER
WS_CAPTION As Long = &HC00000
WS_MAXIMIZE As Long = &H1000000
WS_MAXIMIZEBOX As Long = &H10000
WS_MINIMIZE As Long = &H20000000
WS_MINIMIZEBOX As Long = &H20000
WS_SYSMENU As Long = &H80000
WS_POPUP As Long = &H80000000
WS_POPUPWINDOW(WS_POPUP | WS_BORDER | WS_SYSMENU)
Dim lngWindow As Long
Dim lFrmHdl As Long
FrmHnd=FindWindowA(vbNullString,frm.Caption)
lngWindow=GetWindowLong(FrmHnd,GWL_STYLE)
lngWindow=lngWindow And (Not WS_CAPTION)
SetWindowLong(FrmHnd,GWL_STYLE,lngWindow)
DrawMenuBar(FrmHnd)