به گزارش گروه بینالملل خبرگزاری تسنیم، وزارت امور خارجه آلمان مدعى «خطر جدی دستگیریهای خودسرانه، بازجویی و حبسهای طولانیمدت برای اتباع آلمانى» شده و در وبسایت خود نوشته است که این هشدار شامل شهروندان دوتابعیتی ایرانی نیز میشود.
در رکوردست میتوان به دستکاری داده ها دست یافت مثل حذف ، اضافه یا ویرایش رکورد
رکوردست نوع snapshot حاوی فیلدهای یک یا چند جدول می تواند باشد اما قادر به Update شدن را ندارند.
در نوع ForwrdOnly فقط می توانید در رکوردها پیماش ( scroll ) کنید. بهبود اجرا در کوئری pass through
This improves performance in situations where you only need to make a single pass through a result set.
To run a query on a database server, use a pass-through query which is a Transact SQL (TSQL) statement that connects to SQL Server by using an ODBC connection string
Type of recordset to open
dbOpenDynamic
Opens a dynaset-type Recordset
dbOpenDynaset
Opens a dynaset-type Recordset
dbOpenForwardOnly
Opens a forward-only type Recordset
dbOpenSnapshot
Opens a snapshot-type Recordset
dbOpenTable
Opens a table-type Recordset
برای نسبت دادن متغیر به رکوردست و استفاده از شئ رکوردست از Set استفاده میکنیم
Set Rs=CurrentDb.OpenRecordset( نوع باز شدن رکوردست ، نام جدول)
آرگومان اول می تواند نام جدول باشد یا عبارت Sql ( مثلاً فقط چند فیلد از جدول داخل رکوردست واکشی شود یا طبق شرط خاصی و یکسری از رکوردها فهرست شود). هر کدام را استفاده کنید باید بین دو دابل کوتیشن قرار گیرند.
بردن کرسر به رکورد آخر
Rs.MoveLast
انتقال کرسر به رکورد اول
Rs.MoveFirst
شمارش تعداد کل رکوردهای باز شده در رکوردست
Rs.RecordCount
انتقال کِرسر به رکورد بعدی
Rs.MovNext
انتقال موقعیت رکورد جاری در شیء رکوردست
Rs.Move (Rows,StartBookmark)
The number of rows the position will move. If rows is greater than 0, the position is moved forward (toward the end of the file). If rows is less than 0, the position is moved backward (toward the beginning of the file).
اولین رکورد در شیء رکوردست نوع dynaset یا snapshot قرار میگیرد
Rs.FindFirst ( Criteria )
This code moves the cursor to the last record.
DoCmd.RunCommand acCmdRecordsGoToLast
Field2.IsComplex DAO.Property :
مقدار True(عددی غیر صفر) یا False(برابرصفر) را که نشان دهنده وجود یک دیتا تایپ چند مقداری است را باز می گرداند.... ( multi-valued data type )
Null=No Valid Data
Join:
اگرExpression خالی باشد Set Result=Null
Static Values As New Collection
Set Records=CurrentDb.OpenRecordSet....
(dbOpenSnapShot)
CollValues Records , Delimiter , Result
Values.Add Result
Join=Result
CollValues:
ByRef Rec As DAO.RecordSet
ByRef Delimiter
ByRef Result
Dim SubRec As DAO.RecordSet
Dim Value As Variant
'If Rec.RecordCount>0 Then
While Not Rec.EOF
Value=Rec.Field(0).Value
If Rec.Fields(0).IsComplex Then
Set SubRec=Rec.Fields(0).Value
CollValues SubRec , Delimiter , Result
ElseIf Nz(Value)="" Then
ElseIf IsEmpty(Result)
Result=Value
Else
Result=Result & Delimiter & Value
End If
Rec.MoveNext
Wend
'Else
'Result=Null
'End If
Expression,Domain,Criteria :
Const SqlMask As String = "Select {0} From {1} {2}"
Const SqlLead As String = "Select "
Const SubMask As String = "({0}) As T"
Const FilterMask As String = "Where {0}"
اگر Expression خالی باشد باید فکر چاره ای باشید و همینطور آرگومان های بعدی
در اینجا اگر در آرگومان Domain عبارت Select را بیابد متغیر SqlSub می شود جایگزین کردن Domain با {0}
در غیر اینصورت Domain نام جدول یا کوئری است.
SqlSub = Domain
یعنی درواقع در Replace های بالا جای ۲ ۱ ۰ عبارت یا رشته هایی که داخل آرگومان ها هستند قرار داده شدِس.
Example :
Expression="[First Name] & ' ' & [Last Name] & '<' & [Email Address] & '>'"
Domain="Tbl1"
Criteria="[Job]='" & [Job] & "'"
Change To Sql :
"Select [First Name] & ' ' [Last Name] & '<' & [Email Address] & '>' From Tbl1 Where [Job]=' & [Job] & '"
با قرار دادن Optional قبل از آرگومان ها می شود آنها را در تابع اختیاری کرد نه اجباری ( Required ).
وقتی دیتا تایپ فیلدی عددی نیست مثل نام بای از تک کوتیشن بین آنها استفاده کنیم :
"FirstName='" & Variable1 & "'"
اگر بنویسید :
"FirstName=" & Variable1 & ""
قطعا دچار خطا خواهید شد ، برای دیتا تایپ عددی نیازی به قرار دادن تک کوتیشن ها ندارید.
جهت پیشگیری از وقوع جرم، صرفا سازمان هلال احمر با همکاری کمیته امداد امام خمینی(ره)، سازمان بسیج مستضعفین، سازمان بهزیستی کشور، وزارت امور خارجه و سایر دستگاههای مرتبط موضوع ماده (۲) این قانون، اقدامات لازم در زمینه جذب، هدایت و توزیع کمکهای غیردولتی داخلی و خارجی را با رعایت اصل هشتادم (۸۰) قانون اساسی انجام میدهند و هیچ شخص حقیقی یا حقوقی دیگری مجاز به تبلیغ و جمع آوری کمکهای مالی مردمی نیست.
یک شئ رکوردست جدید ایجاد کرده و به مجموعه رکوردست ها اضافه می نماید.
expression.OpenRecordset (Name, Type, Options, LockEdit)
آرگومان اول یعنی Name :
منبع رکوردها برای رکوردست جدید.منبع می تواند نام جدول ، کوئری و یا عبارت Sql باشد.دیتا تایپ رشته یا String است.
آرگومان دوم یعنی Type :
یک متغیر ثابت و نشاندهنده نوع رکودرستی است باز می شود.
یادداشت : اگر رکوردستی را در فضای کاری مایکروسافت اکسس باز می کنید و نوع آن را مشخص نکردید ، متد OpenRecordset یک رکوردست از نوع جدول ایجاد می کند در صورت امکان . اگر لینکی به جدول یا کوئری تعئین کنید ، این متد یک رکوردست نوع dynaset می سازد.
dbOpenDynaset
dbOpenSnapShot
dbOpenTable
بعضی آپشن ها ( آرگومان سوم ) :
dbAppendOnly : به کاربر اجازه میدهد که رکوردهای جدیدی به dynaset اضافه کند اما وی را از خواندن رکوردهای موجود جلوگیری میکند.
dbDenyWrite : دیگر کاربران را از تغییر رکوردهای رکوردست باز می دارد.
dbReadOnly : رکوردست را بصورت فقط خواندنی باز می کند.
dbSeeChanges : یک خطای اجرا ایجاد می کند در زمان ویرایش داده ای توسط کاربر دیگر فقط در نوع dynaset.
dbSqlPassThrough : یک عبارات Sql به دیتابیس ODBC ارسال میکند فقط در حالت snapshot . ( باز کردن رکوردست در این حالت )
به گزارش خبرگزاری فارس از اصفهان؛ روابط عمومی وزارت دفاع در اطلاعیهای اعلام کرد: شامگاه هشتم بهمن ۱۴۰۱ حوالی ساعت ۲۳۳۰ حمله ناموفق با استفاده از ریزپرنده به یکی از مجتمعهای کارگاهی وزارت دفاع صورت گرفت و خوشبختانه با پیش بینی ها و تمهیدات پدافندی صورت گرفته یکی از آنها مورد اصابت پدافند هوایی مجتمع و دو فروند دیگر آنها در تله های پدافندی گرفتار و منفجر شدند.
ملیت فرح دیبا ایرانی نیست.
در روایت است وقتی تلقین به بعضی مردگان خوانده می شود و او را تکان می دهند و می گویند: "اِسمَع!اِفهَم!" ملایکه میخندند که این زنده بود نفهمید الان چگونه بفهمد؟!!!️
خدا کند ما از این دسته نباشیم که ملائکه به ما بخندند. إن شاءالله تا زنده هستیم، بشنویم و بفهمیم.
یک جای دیگر که ملائکه می خندند، زن بی حجابی است که رویش را از نامحرم نمی گرفته و حالا مرده است. وقتی او را دفن می کنند، باید روی او ر ا باز کنند و عقب بزنند، قبر کن می گوید: "یک محرم بیاید"
اینجاست که ملائکه می خندند و می گویند: "این وقتی زنده بود، همه سر و صورت او را می دیدند و محرم و نامحرم نداشت، حالا می گویید محرم بیاید، رویش را عقب بزند؟!
۱۰بهمن ۱۴۰۱ :
اسرائیل در پاسخ به انتقامی که جوانان فلسطینی نسبت به کشتار جنین توسط سربازانشان در روزهای اخیر از آنها گرفتند، در تحرکاتی عجولانه، پس از اقدام ناکام چندریزپرنده در ایران و انهدام آنها، مواد غذایی و لوازم پزشکی صادراتی از ایران به سوریه را در بوکمال (نقطه مرزی سوریه و عراق) مورد حمله پهپادی خود قرارداد و اسباب بازیِ بچههای این شهر را فراهم کرد. در این حمله دو کفی مورد اصابت قرار گرفت و مابقی تریلی ها در مسیر دمشق در حال حرکت هستن. این حمله کشته و زخمی به همراه نداشت. منبع: آخرین خبر
۱۰ بهمن ۱۴۰۱ :
حجتالاسلام سعید عسکری امروز در نشست خبری با اصحاب رسانه استان درباره آتش زدن یکی از ماموستاها و فوت او در چند روز اخیر گفت: بله متاسفانه، چند روز قبل خانه یک ماموستای اهلسنت و امام جماعت روستای کلاته سنندج را به آتش کشیدند و روی خودش هم بنزین ریختند و فوت کرد.
سیما پروانه گهر، خبرنگار از ممنوعیت گریم برای گویندگان زن خبر در صداوسیما خبر داد.
سیما پروانه گهر در تویئتر خود نوشت:
از دو ماه قبل، گریمورهای بخشهای خبری را مرخص و اعلام کردند گویندگان زن خبر باید بدون هیچ گونه آرایشی جلو دوربین بروند.
رییس کمیسیون قضایی و حقوقی مجلس ادامه می دهد :علاوه بر این و به زودی نیز، طرح و برنامهای داریم که کسانی که در معابر و مکانهای دیگر کشف حجاب میکنند را از طریق سیستم شناسایی کنیم تا برایشان تخلف ثبت شود و در نهایت، این افراد از خدمات اجتماعی محروم خواهند شد.
۱۵ بهمن ۱۴۰۱ : بر اساس اعلام وزارت خزانه داری آمریکا، شخصیت های تحریم شده شامال حسین شمس آبادی، علی رضا تنگسیری، ابوالفضل ناظری، محسن اسدی، محمدصادق حیدری موسی، ابوالفضل صالح نژاد، محمدرضا محمدی و ابوالقاسم والاگوهر هستند که به گفته وزارت خزانه داری آمریکا در هیات مدیره شرکت پرآور پارس حضور دارند.
پیش از این، وزارت بازرگانی آمریکا در ۱۱ بهمن ماه اعلام کرد هفت شرکت ایرانی به بهانه تولید پهپادهایی که روسیه از آنها برای حمله به اوکراین استفاده کرده است، در فهرست سیاه تجاری این کشور قرار گرفته اند.
۱۵ بهمن ۱۴۰۱ : شعارهای بیگانه هراسی هواداران اتلتیکو علیه کوشا دلشاد و «تروریست» خطاب کردن این مربی ایرانی باعث شد تا دلشاد کمتر از دو روز کار در تیم جدید، از سمتش استعفا بدهد.
وضع دختران و زنان در زندان های سازمان اطلاعات و امنیت کشوری طاغوت
۱۵ بهمن ۱۴۰۱ :
به گزارش گروه بینالملل خبرگزاری تسنیم، وزارت امور خارجه آلمان مدعى «خطر جدی دستگیریهای خودسرانه، بازجویی و حبسهای طولانیمدت برای اتباع آلمانى» شده و در وبسایت خود نوشته است که این هشدار شامل شهروندان دوتابعیتی ایرانی نیز میشود.
طرح صیاد شیرازی با عنوان «آتش به جای خون» مطرح شد که البته با واکنش اعتراضآمیز شماری از فرماندهان ارشد ردههای عملیاتی سپاه ازجمله محمدابراهیم همت مواجه شد. محسن رضایی براساس این نظر که شرایط و روابط ارتش و سپاه خیلی خاص است، همت را بهدلیل مخالفتش در جلسه با صیاد شیرازی، بهمدت ۴۸ ساعت در قرارگاه بازداشت کرد. رضایی خود روایت کرده با وجود آنکه حق با همت بوده، اما نحوه برخورد و مخالفتش با فرمانده نیروی زمینی ارتش را به مصلحت ندانسته و در نتیجه، فرمان بازداشتش را صادر کرده است. همت نیز در مدت بازداشتش در سنگری در قرارگاه به نماز و عبادت و سکوت مشغول شد و پس از پایان زمان تعیینشده به کارهای معمول خود پرداخت.
عبارات Dim ، Redim ، Static ، Private ، Public فقط متغیری را اعلام می کنند که به یک شئ اشاره دارد.تا زمانیکه از دستور Set برای اختصاص یک شئ استفاده نکنید، به هیچ شئ واقعی اشاره نمی شود ... یعنی حتما برای دسترسی به اشیاء باید حتما از Set استفاده شود.
Dim objRS As ADODB.Recordset
Set objRS = CreateObject("ADODB.Recordset")
Dim strSQL As String
strSQL = " SELECT * from table"
متد Open : دسترسی به رکوردها در جدول ، نتیجه یک پرس و جو ، یا به رکوردست ذخیره شده
objRS.Open strSQL, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
If Not (objRS.EOF And objRS.BOF) Then
Do While Not objRS.EOF 'Start looping through the records
'do something here with each record...
objRS.MoveNext
Loop
End If
نکته : همیشه شئ رکوردست را بعد از استفاده کردن ببندید تا منابع سیستم آزاد شود.
objRS.Close
شئ رکوردست را به Nothing تنظیم کنید تا بطور کامل آنرا از حافظه حذف کند.
Set objRS = Nothing
لطفا لایک و نظر دهی فراموش نشود
کد زیر از Access vba programming کپی شده که به تفسیر ساده تر آن پرداختیم.
Sub modArray_StatesInAnArray()
بارگزاری فهرستی از ایالات از جدول Customers داخل آرایه ای با اندازه مشخص ... با سایز ۲۰
Const lngArraySize = 20
Dim lngCounter As Long
نیازمند این است که دیتا تایپ Variant باشد برای استفاده در لوپ ForEach
Dim varAState As Variant
Dim strState(lngArraySize) As String
Dim db As Database
Set db = CurrentDb
lngCounter = 0
Dim rst As Recordset
متغیری که به Object یا شئ ای اشاره می کند ( بعنوان نشانگر ) را با Set اظهار می کنند ... در کد زیر رکوردستی در حافظه موقت ایجاد شده و درون آن داده های ستونِ [State/Province] از جدول مشتریان ( بدون تکرار ) قرار می گیرد با شرط پر بودن این فیلد یعنی بدون Null ها .
Set rst = db.OpenRecordset("SELECT DISTINCT [State/Province] " & _
" FROM Customers WHERE [State/Province] IS NOT NULL", _
dbOpenDynaset)
در کد زیر لوپی زده شده در رکوردست ( مجموعه داده )
Do While Not rst.EOF
در اینجا بعلت جلوگیری از خطا ( بعلت اینکه تعداد داده های فیلد از سایز یا اندازه ۲۰ [تعداد ردیف ها ] بیشتر است یا ممکن است کمتر باشد ) از یک شرط استفاده شده.
If lngCounter > lngArraySize Then
'this would cause a problem
Stop
End If
در اینجا و با توجه به لوپ آرایه با داده های فیلد پر می شوند.
strState(lngCounter) = rst![State/Province]
یک شمارشگر قرار داده تا در شرط بالا یعنی if بکار برده شود.... از DOEVENTS می توانید در اول کدها استفاده کنید تا اگر کدها را اشتباه نوشتید ( مثلا لوپ درجا بزند و پایانی نداشته باشد ) سیستم هنگ نکند
lngCounter = lngCounter + 1
این خط ( MoveNext ) برای انتقال به رکورد بعد ( ردیف ) در رکوردست لازم است وگرنه همان داده اولین ردیف را پر می کند.
rst.MoveNext
Loop
در کد زیر لوپی میزند در آرایه strState و مقادیر را در صفحه immediate window نمایش میدهد ( Debug.Print ) که می توانید در صفحه ویژوال آنرا مشاهده کنید.
For Each varAState In strState
If varAState <> "" Then
چاپ در Debug که با Ctrl+G می توانید به صفحه مورد نظر ببرید.
Debug.Print varAState
End If
Next
Debug.Print "Lower bound : " & LBound(strState)
Debug.Print "Upper Bound : " & UBound(strState)
حتما بعد از استفاده رکوردست را باید ببندید تا در حافظه جایی که اشغال کرده را آزاد کند.
rst.Close
Set rst = Nothing
db.Close
Set db = Nothing
End Sub
تمام آرایه ها در اکسس پایه صفر دارند یعنی از صفر شروع می شوند.
Dim Arr(2) As Variant
Arr(0)="A"
Arr(1)="123"
Arr(2)="01/08/1999"
?Arr(1)
123
امکانپذیراست ، آرایه ای داشته باشیدکه بتوان انداره و تعداد ابعادش را با استفاده از عبارت Redim تغییر داد.
Dim strState() As String
lngArraySize = 8
ReDim strState(lngArraySize)
این آرایه ها همچنین می توانند داده های موجود را هنگام تغییر اندازه با استفاده از کلمه کلیدی Preserve حفظ کنند.
عبارت Redim Preserve یک آرایه جدید ایجاد میکند و اجزاء آرایه قدیمی داخل آرایه جدید کپی می شوند... لذا فقط بعد یا اندازه تغییر کرده و منجر به از دست رفتن داده ها نخواهد شد .
For lcount = 0 To 5000000
ReDim Preserve myText(lcount)
myText(lcount) = lcount
Next lcount
البته اگردر لوپ بجای lcount همان عدد 5 میلیون استفاده شود سرعتش بیشتر از زمانیست که از خود متغیر lcount استفاده کردیم.
در وهله اول به متغیر آرایه ای strState یک بعد میدهیم فرضا ۵۰
Do While Not rst.EOF
strState(lngCounter) = rst![State/Province]
lngCounter = lngCounter + 1
rst.MoveNext
Loop
از صفر شروع میشه یا Zero-Based پس برای اینکه نشان دهد رکورد اول است باید عدد یک را به آن پراپرتی اضافه نمود
هنگامی که یک یا چند رکورد پیش از آن حذف می شود ، وضعیت یک رکورد تغییر می کند. همچنین هیچ تضمینی وجود ندارد که یک رکورد دارای موقعیت مطلق یکسانی باشد
مثال زیر از خاصیت AbsolutePosition برای رهگیری ( دنبال کردن ) پیشرفت لوپ که تمام رکوردهای رکوردست را میشمرد استفاده می نماید
برگرفته شده از سایت آفیس
برای کپی کردن محتویات شی رکوردست (ADO یا DAO ) در گوشه ی بالائی سمت چپ رنج مشخص شده در شیت اکسل استفاده میشود
public int CopyFromRecordset (object Data, object MaxRows, object
MaxColumns);
که Data همان متغیر نسبت داده شده بعنوان رکوردست است ، MaxRows ماکزیمم ردیف هایی که باید داخل شیت کپی شود و MaxColumns ماکزیمم تعداد فیلدهایی که میخواهیم در شیت اکسل کپی شود.
فرضا
Dim Rs As RecordSet
Dim Sql As String
("Sql="Select * From Query1
(Set Rs=CurrentDb.OpenRecordset(Sql
درقسمت پائین اول باید آبجکت Excel.Application ساخته شود بعد اضافه کردن WorkBook به اپلیکیشن و استفاده از پراپرتی های مربوطه مثل Range یا Cell
Dim Wk As Object
Set Wk=XlObj.WorkBook.Add
Wk.Sheets(1).Range("A3").CopyFromRecordset Rs
برای کپی کردن فیلدها هم میشود در همان ماژول اگر جدول یا کوئری پراپرتی کپشن داشته باشد و فارسی آن فیلد را درآن ذخیره کرده باشیم با یک لوپ زدن داخل فیلدهای رکوردست (Rs.Fields ) به Cell مربوطه در آن شیت اکسل کپی کرد مثل
Dim Fld As Fields
.
("Wk.Sheets(1).Cells(2,i)=Fld.Properties("Caption
.
نمونه هائی از پراپرتی های مورد استفاده
xlsh.UsedRange.Borders.Weight = 2
xlApp.Application.Columns.AutoFit
xlApp.displayalerts = False
xlwk.saveas "D:\" & Me.Name & ".xlsx"
xlApp.Quit
از شی رکوردست برای دستکاری داده در دیتابیس در سطح رکورد استفاده میشود ( جدول یا کوئری )
چند تا تیپ داره یکیش SnapShot هست که ReadOnly است و قابل Edit نیست و بعدی Dynaset که Read و Write را دارد برای باز کردن رکوردست در دیتابیس جاری از متد OpenRecordset از CurrentDb استفاده میشود فرضا میخواهیم جدول یک را در رکوردست باز کنید
***اول اظهار متغیری بعنوان رکوردست
Dim Rs As DAO.Recordset ( اگر Object Library تیک نخورده باشد از Refrences ارور میدهد ).
***دوم ایجاد آن در بافر
(Set Rs=CurrentDb.OpenRecordset("Table1",dbOpenDynaset
-برای دستکاری دیتا در رکورد : برای دیلیت از Rs.Delete برای اضافه کردن از Rs.Add و برای ویرایش از Rs.Edit استفاده می کنیم و حتما باید بعد از اینها Rs.Update نوشته شود.
-برای رفتن به رکورد اول ، بعدی ، قبلی و آخر به ترتیب از
MoveLast MovePrevious MoveNext MoveFirst استفاده می کنیم بیشتر برای لوپ زدن داخل رکوردست استفاده میشود.
***سوم بعد از اتمام کار بستن رکوردست با Rs.Close و خالی کردن بافر از آن با Nothing
- Rs.Eof مقداری رو میده از نوع Boolean که آیا موقعیت رکورد جاری بعد از رکورد آخر هست یا خیر وقتی به آخرین رکورد برود و زمان رفتن به رکورد بعد از آن که چیزی نیست ارورمیدهد که به انتهای رکوردست رسیده زمان خاتمه به حلقه هم از آن استفاده میشود مثل
Do While Not Rs.Eof
("Debug.Print Rs.Field("FldName
Rs.MoveNext
Loop
-از Rs.Move برای انتقال پوزیشن رکورد جاری در شی رکوردست استفاده میشود که پارامتر اول آن Rows است
-از Rs.AbsolutePosition برای گرفتن شماره رکورد در آن شی رکوردست استفاده می شود.
-از Rs.FindFirst برای پیدا کردن مقدار یا عبارتی در رکوردست استفاد میشود و چک کردنش با پراپرتی بعدی یعنی NoMatch هست مثل
برای عدد Rs.FindFirst "FldName1=" & Me.txtValue
برای تکست "'" & Rs.FindFirst "FldName1='" & Me.txt1
-از Rs.NoMatch برای تطابق داده ی پیدا شده با استفاده از FindFirst استفاده میشود یعنی اگر توسط FindFirst پیدا شد چه عملی انجام دهد
"'" & Rs.FindFirst "FieldName='" & Me.TxtSearch
If Rs.NoMatch=False Then
DO Something '
End If
- از Rs.RecordCount برای شمارش رکورد در رکوردست باز شده استفاده میکنیم البته اول باید به رکورد آخر برویم و بعد رکورداول و بعد رکوردکانت را استفاده کنیم تا درست عمل نماید.
- از Rs.BookMark بعنوان نشانگری که به طور یونیک رکورد جاری را در شی رکوردست مشخص میکند استفاده میشود ... فرضا در ورد بعبارت ساده و قابل فهم ، عباراتی را بعنوان بوک مارک در نظر می گیرید ، زمان استفاده به آن صفحه ای که هست می رود . اینجا هم همینطور است فرضا در فرم رکوردی را اضافه میکنید و با استفاده از FindFirst و NoMatch و برابر قرار دادن BookMark فرم و BookMark رکوردست میتوان به همان رکورد در سابفرم رفت چون دیتای جدید بعد از رکورد آخر می آید
برای ایجاد RowNumber یا LineNo در فرم کانتینیوس نه سینگل هم بوک مارک رکوردست با بوک مارک فرم برابر میشود و از AbsolutePosition باضافه ی یک استفاده میکنیم برای برگشت مقدار تابع فرضا
(Function ROWNUM(FRM AS FORM
اگر کارنت رکورد فرم مخالف رکوردکانت رکوردست بود بوک مارک رکوردست برابر بوک مارک فرم شود
ROWNUM=RS.ABSOLUTEPOSITION+1
END IF
END FUNCTION
درنظر داشته باشید شماره ی رکورد در دیتا شیت اکسس با رکوردست یکی نیست !!!
برای گرفتن ولیوهای داخل MultipleFieldValue باید از رکوردست ۲ استفاده کرد و پل زدن به آن فیلد و پراپرتی Value آن فرضا فیلد Rooz داریم و چند آیتم در آن وارد شده
۱-باز کردن رکوردست ۱ ( جدول )
۲-تنظیم رکوردست ۲ به فیلد رکوردست ۱ ( Rooz ) و پراپرتی ولیو (Value)
البته برای لیست شدن کلیه ی تیک خورده ها باید Loop زده شود و استفاده از MoveNext برای رفتن به رکورد بعدی در آن رکوردست