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

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

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

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

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

متد Docmd.Findrecord و شئ Screen



این متد عمل FindRecord در ویژوال بیسیک را انجام می دهد


نوشتاری :


expression.FindRecord (FindWhatMatchMatchCaseSearchSearchAsFormattedOnlyCurrentFieldFindFirst)


-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 حاوی یک رفرنس به کنترلی است که قبلا فوکس گرفته . بعد از ایجاد رفرنسی به کنترل ، می توان به تمام ویژگیها و متدهای کنترل دسترسی داشت.


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
















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


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



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




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







تابع تعیین موقعیت رشته داخل رشته ی دیگر Instrrev از آخر


InstrRev(stringcheckstringmatch, [ start

compare ]]


این تابع موقعیت یک String را داخل String دیگر بر می گرداند البته از اول نه آخر فقط از آخر دنبال String مورد نظر شما در String دیگر می گردد؛ اگر Start ( که آپشنال یا انتخابیست و نشاندهنده ی این است که  از کدام کاراکتر شروع کند ) نال باشد ارورمیدهد و اگر خالی رها شود از آخر شروع و اگر مقدار عددی داشته باشد تعداد کاراکتر StringCheck از اول رشته تا آن عدد اعلام شده است.


*****   جستجو از آخرین کاراکتر انجام میشود 


فرض کنید میخواهید موقعیت xy را در Azxyiopxy123 بیابید 


("Instrrev("Azxyiopxy123","xy


تابع بالا عدد ۸ را بر می گرداند ( یعنی از آخر شروع به جستجوی میکند ولی مقدار تابع از اولین کاراکتر است نه از آخر به اول )


مثال های خود اکسس  : 


(InstrRev ("alphabet", "a", 2
Result: 1
درمثال پائین نتیجه یک است چون شما Start
را از 3 اعلام کردید
در نتیجه فقط alp در نظر گرفته میشود و a در آن جستجو میشود
(InstrRev ("alphabet", "a", 3
Result: 1
(InstrRev ("alphabet", "a", 4
Result: 1
(InstrRev ("alphabet", "a", 5
Result: 5
(InstrRev ("alphabet", "a", 6
Result: 5