ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
کاربرد ویژگی Bookmark با فرم ها برای تنظیم نشانکی که بصورت یکتا یک رکورد خاص در فرم تحت جدول را مشخص می نماید.
Form.Bookmark
نشانک ها را در هر فرمی که کاملا بر اساس جدول های اکسس است می توان بکار برد . اگرچه دیگر محصولات دیتابیس می توانند نشانک ها را پشتیبانی نکنند . برای مثال شما نمی توانید نشانک ها را در یک فرم بر پایه یک جدول پیوندی ( link Table ) که primary index ندارد استفاده نمائید.
Requery کردن یک فرم هر نشانک تنظیم شده ای روی رکوردها در فرم را ازبین می برد.اگرچه انتخاب Refresh در رکوردها نشانک ها را مورد تاثیر قرار نمی دهند.
بدلیل اینکه اکسس یک نشانک یکتا برای هر رکورد در رکوردست یک فرم ایجاد می نماید زمانیکه یک فرم باز است !!! ، یک نشانک فرم در رکوردست دیگر حتی زمانیکه دو رکوردست بر پایه یک جدول باشند کار نخواهد کرد !!!
Docmd.GoToRecord
استفاده از روش GoToRecord برای تبدیل رکورد مشخص شده به رکورد جاری در یک جدول باز ، فرم یا مجموعه نتایج کوئری ( پرس و جو ).
اگر پارامتر Type و Name آبجکت ( فرم فرضا ) خالی بگذارید روی آبجکت جاری انجام می گردد.
استفاده از روش GoToRecord برای تبدیل یک رکورد به رکورد جاری ( رکوردی که در آن قرار دارید یا کر سر در آن است ) یک فرم پنهان اگر فرم پنهان را در آرگومان های Type و Name آبجکت مشخص نمائید.
ایجاد رکورد خالی در جدول البته اگر کلیدی در جدول وجود نداشته باشد یا جای رکوردهایی که فیلدشان Primary key است و نمی تواند خالی باشد ( required آن Yes است ) پر شود که ارور نگیرید . فرضا یک جدول دارید که شماره پرونده فرد مذکور برای اقساط ثبت می گردد و جدول دیگری که جزئیات مربوطه یعنی تعداد اقساط فرد با کد یونیک پرونده در آن ایجاد می شود با اکشن Docmd.GoroRecord !!!
Sets or returns the relative record number of a Recordset object's current record.
شماره رکورد مرتبط با رکورد جاری شئ رکورد ست را بر میگرداند و Zero Based است یعنی از صفر شروع میشود چون در فرم کانتینیوس نمی توان ردیف ترتیبی گذاشت برخلاف آبجکت گزارش در نتیجه برای شماره دادن به رکوردها از AbsolutePosition استفاده می نمایند البته با استفاده از BookMark که می بایست BookMark فرم و رکوردست منطبق بشوند و بعد کار اضافه کردن را انجام داد.
یادآوری میشود :
مقدار ویژگی AbsolutePosition از صفر شروع میشود تا رکورد کانت منهای یک ، اگر مقدار این پراپرتی مساوی یا بالاتر از رکوردهای پرشده باشد خطا میدهد با بررسی پراپرتی RecordCount می توانید تعداد رکوردهای پرشده در شئ رکوردست را تعیین بنمائید. حداکثر تنظیم مجاز پراپرتی AbsolutePosition مقدار پراپرتی RecordCount منهای یک است.
مقدار پراپرتی BookMark مشابه record number نیست اشتباه نشود.
می توان پراپرتی BookMark را با فرم هایی برای تنظیم بوک مارکی که بصورت یونیک رکورد خاصی را در جدول یا کوئری تحت فرم مشخص میکند بکار برد.
بوک مارک ها با رکوردهایی که نشان می دهند ذخیره نمی شوند ، فقط در حالی که فرم باز است معتبر هستند. آنها هر بار که یک فرم Bound شده باز می شود ، توسط Microsoft Access دوباره ایجاد می شوند.
پس زمانیکه فرم کانتینیوس که به جدول یا کوئری متصل است یا با عبارت SQL دیتا می گیرد باز میشود رکوردها دارای بوک مارک یونیک و واحدی هستند یا در رکورد ست هر بار که تنظیم میشود بوک مارک جدیدی به ِآن تخصیص داده خواهد شد . اگر رکوردی حذف شود و به بوک مارک مقداری تخصیص داده شود ( در همان زمان حذف ) خطا ایجاد میشود.
TEXTBOX CONTROLNAME :
ROWTEXT
IN CONTROLSOURCE PROPERTY :
=FORMROWNUMBER(ME)
'EOF POSITION AFTER LAST RECORD
DIM FRM AS FORM
DIM RS AS DAO.RECORDSET
SET FRM=ME.RECORDSETCLONE
RS.MOVELAST : RS MOVEFIRST
'ON ERTOR RESUME NEXT
IF NOT (RS.BOF OR RS.EOF) THEN
RS.BOOKMARK=FRM.BOOKMARK
FORMROWNUMBER=RS ABSOLUEPOSITION+1
END IF
SET RS=NOTHING
I HOPE TO WRITE THE CODE CORRECTLY
VARBOOKMARK IS A VARIABLE
VARBOOKMARK AS VARIANT
RS.MOVELAST
VARBOOKMARK=RS.BOOKMARK
DEBUG.PRINT ISEMPTY(VARBOOKMARK)
SN: DCount("*","TableName","[ID]<=" & [ID])