سیستم نوبت دهی در اکسس

در خیلی از مشاغل با پدیده نوبت دهی برای مشتریان روبرو هستیم که بارزترین آن در مطب های پزشکی ، بانکها و ... می باشد .

در این مطلب فرا می گیریم که چگونه با استفاده از یک فرم در نرم افزار اکسس و با توجه به تاریخ شمسی روز سیستم به ایجاد نوبت برای فرد ثبت نام شده بپردازیم بگونه ای که این نوبت تلفیقی از  تاریخ روز و نوبت فرد باشد .

برای آشنایی با این روش در ادامه مطلب همراه من باشید.
1. ابتدا جدولی با آیتمهای موجود در عکس زیر طراحی نموده و آن را به نام     ذخیره نمایید.
جدول نوبت دهی در اکسس
2. حال از این جدول خود یک فرم تهیه نمایید .

طراحی فرم اکسس

در تهیه این فرم نکات زیر را مدنظر قرار دهید .
- خاصیت visible تکس باکس مربوط به CardNo را به صورت NO تعریف نمایید . (طبق تصویر زیر)

پنجره خصوصیات

-نام دکمه مربوط به ایجاد نوبت را بصورت txtnobat تعریف نمایید .(طبق تصویر زیر)

فرم اکسس

- دکمه های مربوط به پیمایش بین رکوردهای قبلی و بعدی و نیز ایجاد نوبت جدید را ایجاد و به فرم خود اضافه نمایید .
3. در نمای طراحی فرم با نگهداشتن همزمان دکمه های ALT+F11  بطور همزمان فشرده تا وارد محیط کد نویسی شوید سپس از منوی Insert گزینه module  را انتخاب نموده و کدهای زیر را درون آن کپی نمایید .و با ذخیره آن از محیط کد نویسی خارج شوید .

Public Function Autonum(ByVal strField As String, ByVal strTable As String) As String
Dim dmval As String, dt1 As String, dt2 As String, Seq As Integer, dv As String


dmval = Nz(DMax(strField, strTable), 0)


If val(dmval) = 0 Then
   dv = Format(Now(), "yyyymmdd") * 1000 + 1
   Autonum = dv
   Exit Function
End If


dv = Format(dmval, "00000000000")

Seq = val(Right(dv, 3))

dt1 = Left(dv, 8)

dt2 = Format(Now(), "yyyymmdd")

If dt1 = dt2 Then
   Seq = Seq + 1
  
   Autonum = Format(val(dt1) * 1000 + Seq)
   Exit Function
Else
  
   Autonum = Format(val(dt2) * 1000 + 1)
End If

End Function


4. مجدا در حالی که در نمای طراحی فرم خود قرار دارید از سربرگ  Design گزینه view Cod  را انتخاب نموده و کدهای زیر را درون آن ذخیره نمایید .

کدنویسی


Private Sub cmdcreat_Click()

Me.txtnobat = Shamsi() & "-" & "(" & Right(Me.cardNO, 3) & ")"
End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)
  Me![cardNO] = Autonum("CardNo", "Patients")
End Sub

5. اکنون فرم خود را اجرا نموده در مقادیر مربوط بهنام و نام خانوادگی را تکمیل نمایید سپس با کلیک بر روی دکمه ایجاد نوبت ، نوبت شما که شامل تاریخ روز و شماره نوبت که بصورت یک عدد سه رقمی در سمت راست تاریخ و درون پرانتز قرار داده شده است ایجاد شده و در جدول ذخیره می گردد .

نکته مهم (1) :
     این سیستم نوبت دهی بر اساس تاریخ روز عمل می نماید یعنی تا زمانی که تاریخ برابر با تاریخ امروز باشد نوبت دهی از شماره 1 شروع و تا شماره های بالاتر ادامه می یابد اما به محض اینکه تاریخ سیستم به روز بعد منتقل شود شماره دهی مجددا از شماره 1 و برای همان روز تا شماره های بالاتر تداوم پیدا می کند .

نکته مهم (2):
    برای اینکه سیستم نوبت دهی را بر طبق تاریخ شمسی داشته باشید باید ماژول های تبدیل تاریخ جاری سیستم به تاریخ شمسی را تهیه و به محیط کاری خود اضافه نمایید تا این تبدیل تاریخ انجام گردد . اگر در خصوص نحوه اضافه کردن این مآژول ها سوال و یا مشکلی داشتید در قسمتنظرات بپرسید تا راهنمایی های لازم ارائه شود .





طبقه بندی: آموزش ACCESS،
برچسب ها:سیستم نوبت دهی در اکسس، تاریخ شمسی در اکسس، ماژول،
تاریخ : دوشنبه 4 دی 1396 | 12:50 ب.ظ | نویسنده : امید شهری | نظرات()
.: Weblog Themes By Bia2skin :.