PDA

View Full Version : سوال: بدست آوردن شماره يك ركورد



Rasool-GH
پنج شنبه 03 فروردین 1391, 10:56 صبح
سلام دوستان
من نياز به كدي دارم كه مثل دستور DLookUp عمل كنه ولي شماره ركورد رو در جدول برگردونه نه شماره رديف يا چيزهاي مشابه
به طور مثال 5 ركورد داريم كه ركورد 2 دليت ميشه حالا ركورد 5 در واقع ركورد 4 هست در حالي كه شماره رديف 5 هست يا بايد كل رديف بعد از حذف ركورد دوباره شماره گزاري بشه يا با يك كد ديگه بشه شماره ركورد رو به دست اورد

Abbas Amiri
پنج شنبه 03 فروردین 1391, 12:30 عصر
با سلام از الگوی زیر استفاده کنید


Private Sub Form_Current()
Dim rs As DAO.Recordset

Set rs = Me.RecordsetClone()
rs.Bookmark = Me.Bookmark
Debug.Print rs.AbsolutePosition + 1

End Sub

Rasool-GH
پنج شنبه 03 فروردین 1391, 12:58 عصر
ممنون داداش . اين چرا اينقدر سخته
كارم واسه چند روز در اومد . چقدر مطلب بخونم تا بفهمم اين يعني چي؟

abas1388
پنج شنبه 03 فروردین 1391, 15:49 عصر
ممنون داداش . اين چرا اينقدر سخته
كارم واسه چند روز در اومد . چقدر مطلب بخونم تا بفهمم اين يعني چي؟
سلام
با اجازه جناب امیری عزیز
اگر میخواهید شماره رکورد جاری را بدانید این کد Me.CurrentRecordرا جایگزین کدهای جناب امیری کن
البته در اینجا یک تکست باکس باید ایجاد کنید و Me.CurrentRecord را مساوی آن قرار بدهید.
موفق باشید

Rasool-GH
پنج شنبه 03 فروردین 1391, 16:14 عصر
نه دوست عزیز قبلا از SearchRecord استفاده میکردم به دلیل اینکه تعداد رکوردها زیاد شده به طور محسوسی افت عملکرد مشاهده میشه . حالا از دستور GoToRecord استفاده میکنم که مستقیما به همون رکورد برم . طبیعتا شماره رکورد لازم دارم
برای مثال میخوام به رکوردی برم که شماره پرونده اون 10 باشه . شماره پرونده از کاربر گرفته میشه شماره رکورد رو پیدا میکنم و به اون رکورد میرم

RESMAILY
دوشنبه 07 فروردین 1391, 09:55 صبح
به نام خدا
با سلام. همانطور که اقای امیری نوشته اند بهترین روش برای اینکار استفاده از دستور AbsolutePosition برای رکوردست است. البته (با اجازه اقای امیری) باید رکورد ست را در مود دیناست باز نمود.

Rasool-GH
چهارشنبه 23 فروردین 1391, 08:58 صبح
سلام مجدد خدمت دوستان عزيز و عرض تبريك سال نو هرچند كه دير شده
ممنون اقاي اميري . با توجه به نظر دوستمون برداشت من اينه كه تنها راه و بهترين راه استفاده از ركورد ست هست .
ضمنا با اين روش كه فرمودين من چطور ميتونم شماره ركورد رو در يك متغير قرار بدم و در محاسبات استفاده كنم يا در يك باكس نمايش بدم ؟

دو تا سوال غير مرتبط هم دارم كه نخواستم براش تاپيك جدا گانه باز كنم ممنون ميشم راهنمايي كنيد
1. وقتي ادرس يك ابجكت در يك فرم رو ميخوام بدم به شكل زير عمل ميكنم
Forms!Formname.ObjectNam
سوال من اينه كه بجاي ! از . استفاده بشه چه اشكالي ايجاد ميشه
2. در تعريف يك تابع در چه مواقعي بايد از نوع Public استفاده كرد

Abbas Amiri
چهارشنبه 23 فروردین 1391, 20:27 عصر
در مورد اول کنترل یا متغیر مورد نظر را به شماره فعلی رکورد منتسب کنید Text1=rs.AbsolutePosition + 1
در مورد آدرس آبجکت هم بنده شخصا از روش زیر استفاده میکنم
Form_FormName.ControlName حسن اینکار اینست که خاصیت AutoListMember فعال است وساده تر میتوان کدنویسی کرد.چنانچه فرم موردنظر دارای کد نمیباشد خاصیت HasModule آنرا Yes کنید
ودرمورد آخر ،متغیرهاو توابعی را که فقط درسطح ماژول جاری میخواهید استفاده کنید ، Private ودر غیر اینصورت Public تعریف کنید