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

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

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

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

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

ویژگی SelHeight در بازگردانی تعداد رکوردهای انتخاب شده



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



The SelHeight property returns a Long Integer value between 0 and the number of records in the datasheet or continuous form. The setting of this property specifies or returns the number of selected rows in the selection rectangle or the number of selected records in the continuous form.


طبق فرمایشات بالا این ویژگی مقدار Long integerc بین صفر و تعداد رکوردها در دیتا شیت یا فرم کانتینیوس را بر می گرداند یعنی چنانچه شما ردیف هایی را انتخاب کنید تعداد رکوردهای انتخابی را به شما اعلام می نماید ( Zero-base است و عدد صحیح ) 


برای بازیابی اطلاعات چه خواندن چه ویرایش یا کلا دستکاری یا manipulate می بایست به رکوردست دسترسی پیدا کنید چه از طریق شئ DAO یا ADO که سریعتر است . و از Move برای رفتن به اولین رکوردانتخابی استفاده بنمائید و سپس لوپ بزنید به همین راحتی .



















ایرج میرزا : 


بگـــــــو آن عـــــــارف عـــــــامی نمـــــــا راکـــه گـــم کـــردی تـــو ســـوراخ دعـــا را






تعیین و مشخص کردن بالاترین Row در Multiselection



You can use the SelTop property to specify or determine which row (record) is topmost in the current selection rectangle in a table, query, or form datasheet, or which selected record is topmost in a continuous 

form




با استفاده از خاصیت SelTop می توان بالاترین ردیف ( رکورد جاری ) را در یک مجموعه انتخابی مشخص کرد.این خاصیت عددی بین 1 و شماره رکوردها در Datasheet یا continuous form را بر می گرداند. 


پراپرتی های SelTop و SelLeft موقعیت گوشه چپ بالایی مستطیل انتخابی را مشخص میکند.


پراپرتی های SelHeight و SelWidth موقعیت گوشه سمت راست پایینی مستطیل انتخابی را مشخص میکند.


بیشتر زمانی استفاده میشود که بخواهند چند ردیف را انتخاب کنند و  یک Query روی آنها اجرا نمایند.


The SelHeight property returns a Long Integer value between 0 and the number of records in the datasheet or continuous form. The setting of this property specifies or returns the number of selected rows in the selection rectangle or the number of selected records in the continuous form.


پراپرتی SelHeight یک عدد صحیح از نوع لانگ بین صفر و تعداد رکوردها در فرم دیتاشیت یا کانتینیوس را برمی گرداند.تنظیم این خاصیت تعداد ردیف های انتخاب شده در مستطیل انتخابی یا تعداد رکوردهاب انتخاب شده در فرم کانتینیوس را برمی گرداند

RECORDSET.MOVE : 


موقعیت نشانگر رکورد جاری را انتقال می دهد


تلاش به انتقال به یک نقطه قبل از اولین رکورد به انتقال به رکورد قبل از اولین رکورد منجر میشود که BOF است .تلاش به انتقال به قبل از آخرین رکورد باعث میشود نشانگر رکورد به رکورد بعد از آخرین رکورد انتقال یابد که EOF است. در غیر از این مورد اگر متد MOVE برای انتقال به قبل از BOF  یا  EOF استفاده شود ارور ایجاد می کند.تست کنید در فرم Bound شده یعنی در پراپرتی  رکورد سورس نام جدولی باشد.

Private Sub cmd1_click()

Dim rs as Dao.Recordset

Set rs=me.recordset

Rs.MoveLast

Res.MoveNext

End Sub


مثال از SelTop و SelHeight : 

اگر از بالا به پائین ردیف سوم و چهارم را انتخاب کنید SelTop را 3 و SelHeight را 2 دریافت می کنیم اما اگر از پائین به بالا انتخاب کنید  عدد SelTop 4  و SelHeight همان 2 است

زمانیکه روی یک باتن کلیک کنید انتخاب از بین میرود و SelHeight هم صفر میشود پس اگر بخواهید آنرا داشته باشید باید ذخیره کنید می توانید در رویداد EXIT سابفرم آنرا در متغیری ذخیره کنید . فرضا Selh=Me.SelHeight .... اگر اینکار را انجام ندهید انتخاب Clear می شود و SelTop به رکورد انتخاب شده جاری که رکورد پائین است  تنظیم میشود ( زمانیکه انتخاب پائین به بالا باشد ) 

یادداشت : SelTop. و SelHeight. در یک فرم کانتینیوس کاربرد دارد در حالت Form View زمانیکه با Record Selector رکوردی را انتخاب می کنید.


دیتاشیتی که فوکس گرفته  ... تعداد ردیف های انتخاب شده با  SelHeight ... تعداد ستون های انتخاب شده با SelWidth .... بالاترین ردیف در مجموعه انتخاب شده با استفاده از SelTop و بستگی دارد که از بالا به پائین یا از پائین به بالا انتخاب می کنید. ( توضیحات ذیل )


' Datasheet that has the focus
Set frm = Screen.ActiveDatasheet
' Number of rows selected.
lngNumRows = frm.SelHeight

' Number of columns selected.
lngNumColumns = frm.SelWidth

' Topmost row selected.
lngTopRow = frm.SelTop

دو عمل زیر در Recordset ، اولی رفتن به اولین رکورد و دومی انتقال نشانگر رکورد به اولین رکورد انتخاب شده 

Rs.MoveFirst
' Move to the first selected record.
 Rs.Move mlngSelTop - 1
        '


Me.sfrmSomeSubForm.Form.SelWidth = CurrentDB.TableDefs(Me.sfrmSomeSubForm.Form.RecordSource).Fields.Count