PDA

View Full Version : مبتدی: چگونه میتوانم فیلد تکست را به افزایشی تبدیل کنم؟



aghl2004
یک شنبه 09 دی 1397, 08:10 صبح
با سلام
ممکنه سوالم تکراری باشه. ولی هرچی گشتم جوابی براش پیدا نکردم.
جدولی دارم که فیلدی دارد برای شماره سند از نوع تکست. به این علت اتونامبر نگذاشتم که میخواستم شماره ای از بین نرود. الان جدول نزدیک 2000 رکورد دارد. حال میخوام وقتی یک فرم جدید باز میکنم داخل تکس باکس را،به صورت پیش فرض، از آخرین شماره +1 پرکنه و کاربر نیز بتواند این شماره را ادیت کند.
ممنون میشوم اگر راهنمایی بفرمایید.

Ali_Fallah
یک شنبه 09 دی 1397, 22:07 عصر
فرض کن a نام فیلدی که بصورت متنی هست

کد زیر رو در رویداد دکمه ای وارد کن


Dim rst As Recordset
Set rst = Me.RecordsetClone
Me.a = rst.RecordCount + 1

Ali_Fallah
یک شنبه 09 دی 1397, 22:15 عصر
البته کد بالا با شمارش رکورد و براساس آخرین رکورد عمل میکنه

aghl2004
دوشنبه 10 دی 1397, 10:21 صبح
فرض کن a نام فیلدی که بصورت متنی هست

کد زیر رو در رویداد دکمه ای وارد کن


Dim rst As Recordset
Set rst = Me.RecordsetClone
Me.a = rst.RecordCount + 1


سلام
بسیار عالی و ممنون.
یک نکته دیگه هم هست و اونم اینه که یه شرط باید بزارم که اگر تکست باکس خالی بود این کار را بکنه وگر نه یا نتونه یا اون کلید غیر فعال بشه. امکانش هست؟

Mehr@ban
دوشنبه 10 دی 1397, 14:54 عصر
سلام نیازی به شرط برای بررسی خالی بودن نیست
میتونید از مقدار پیشفرض استفاده کنید.
Me.a.DefaultValue

aghl2004
دوشنبه 10 دی 1397, 18:46 عصر
سلام
دست همگی درد نکنه. عالی عالی

aghl2004
سه شنبه 11 دی 1397, 11:33 صبح
با سلام
این کد به خوبی کار میکند. ولی مشکلی که هست اینه که این کد تعداد رکورد را با یک جمع میکنه. چون شماره ها پشت سر هم نیستند و بعضی شماره ها اصلا وجود ندارند (مثلا برای سال 96 شماره با 96 شروع شده و برای سال 97 با 97 و قص علی هذا...). امکان داره آخرین دیتای موجود در تکس باکس را با یک جمع کنه؟

Mehr@ban
چهارشنبه 12 دی 1397, 15:23 عصر
سلام
این توابع رو بررسی کنید
DLast
DMax
DCount

aghl2004
چهارشنبه 12 دی 1397, 20:20 عصر
سلام
مثل همیشه عالی ممنون

Ali_Fallah
چهارشنبه 12 دی 1397, 21:08 عصر
If IsNull(Me.a) Or Me.a = 0 Then
Me.a = Nz(DMax("a", "Table1"), 0) + 1
End If

aghl2004
جمعه 14 دی 1397, 02:37 صبح
If IsNull(Me.a) Or Me.a = 0 Then
Me.a = Nz(DMax("a", "Table1"), 0) + 1
End If


سلام
بسیار متشکرم.مشکلم حل شد. با این کد:
me.filde.defultvalue=dmax("field","table")+1