View Full Version : جلوگیری از ثبت تاریخ تکراری
مرضیه جلالی
دوشنبه 17 بهمن 1401, 13:24 عصر
سلام وقت بخیر
لطفا کسی میتونه راهنمایی کنه؟
توی رویداد before update یه تکست باکس که تاریخ داخلش ثبت میشه، چه کدی بنویسم که بره جدول مربوطه رو چک کنه تا همون تاریخ رو بصورت تکراری ثبت نکنه ؟
قبل ایجاد تاپیک سرچ کردم ، چیزی پیدا نکردم.
این کد رو امتحان کردم ولی درست جواب نمیده.
dim Dstart as string
Dstart=nz(dlookup("DateStart","tblL","[DateStart]=[forms]![frmL]![DateStart]"),0)
if Dstart<> "" THEN
msgBox"رکوردی در این تاریخ ثبت شده است."
cancel=true
End if
eb_1345
دوشنبه 17 بهمن 1401, 15:05 عصر
سلام وقت بخیر
لطفا کسی میتونه راهنمایی کنه؟
توی رویداد before update یه تکست باکس که تاریخ داخلش ثبت میشه، چه کدی بنویسم که بره جدول مربوطه رو چک کنه تا همون تاریخ رو بصورت تکراری ثبت نکنه ؟
قبل ایجاد تاپیک سرچ کردم ، چیزی پیدا نکردم.
این کد رو امتحان کردم ولی درست جواب نمیده.
dim Dstart as string
Dstart=nz(dlookup("DateStart","tblL","[DateStart]=[forms]![frmL]![DateStart]"),0)
if Dstart<> "" THEN
msgBox"رکوردی در این تاریخ ثبت شده است."
cancel=true
End if
سلام
بجای استفاده از dlookup از DCount استفاده کن !
If DCount("DateStart", "tblL", "[DateStart]=[forms]![frmL]![DateStart]")>0 Then
MsgBox "رکوردي در اين تاريخ ثبت شده است."
Cancel = True
End If
مرضیه جلالی
دوشنبه 17 بهمن 1401, 15:47 عصر
سلام
بجای استفاده از dlookup از DCount استفاده کن !
If DCount("DateStart", "tblL", "[DateStart]=[forms]![frmL]![DateStart]")>0 Then
MsgBox "رکوردي در اين تاريخ ثبت شده است."
Cancel = True
End If
خیلی متشکرم
اگه خواسته باشم یک شرط دیگه هم بهش الحاق کنم ، در صورتیکه اون رکورد توی تیبل بصورت عددی باشه و توی فرم بصوت رشته ؟ اون رو چطور باید براش تعریف کنم و با این شرط همزمان هر دو رو کنترل کنم ؟
eb_1345
دوشنبه 17 بهمن 1401, 17:05 عصر
خیلی متشکرم
اگه خواسته باشم یک شرط دیگه هم بهش الحاق کنم ، در صورتیکه اون رکورد توی تیبل بصورت عددی باشه و توی فرم بصوت رشته ؟ اون رو چطور باید براش تعریف کنم و با این شرط همزمان هر دو رو کنترل کنم ؟
فرض میکنیم در جدول مربوطه فیلدی با عنوان فارسی کد پرسنلی و نام لاتین PersonelCode از نوع نامبر وجو داره و میخواهی در رویداد مربوطه شرط بگذاری که اگه تاریخ جدول با تاریخ وارد شده تکراری باشه و کد پرسنلی هم با متغیر رشته ای strCode که از نوع استرینگ تعریف کرده ای و اون رو برابر PersonelCode قرار داده ای یکی بود پیغام صادر بشه
در اینجا برای اینکه دستور فوق با خطا صادر نشه باید متغیر رشته ای رو در تابع Int قرار بدی . در واقع تابع Int متغیر رشته ای شما رو به عدد تبدیل می کنه
Dim strCode As String
strCode = PersonelCode
If DCount("DateStart", "tblL", "[DateStart]=[Forms]![frmL]![DateStart] and PersonelCode=" & Int(strCode) & "") > 0 Then
MsgBox "رکوردي در اين تاريخ ثبت شده است."
Cancel = True
End If
eb_1345
دوشنبه 17 بهمن 1401, 17:29 عصر
راستی اگه کد فوق رو برای همون نمونه برنامه ای که برات اصلاح کردم میخواهی باید بگم کد پرسنلی در فرم FrmLeave از نوع عدد میباشه و دیگه نیازی نیست اون رو داخل تابع Int قرار بدی
مرضیه جلالی
دوشنبه 17 بهمن 1401, 22:11 عصر
راستی اگه کد فوق رو برای همون نمونه برنامه ای که برات اصلاح کردم میخواهی باید بگم کد پرسنلی در فرم FrmLeave از نوع عدد میباشه و دیگه نیازی نیست اون رو داخل تابع Int قرار بدی
سلام ، خیلی ممنونم از راهنمایی تون.
بله برای همون میخواستم.
فقط یه چیز دیگه ، لطف می کنید ، قاعده محاسباتی که برای مانده مرخصی گذاشتید رو توضیح بدید ، تا اون قسمتی که توی مانده تجمعی دچار خطا شده رو ، اگه بشه اصلاح کنم ؟
متشکرم
eb_1345
دوشنبه 17 بهمن 1401, 23:28 عصر
سلام ، خیلی ممنونم از راهنمایی تون.
بله برای همون میخواستم.
فقط یه چیز دیگه ، لطف می کنید ، قاعده محاسباتی که برای مانده مرخصی گذاشتید رو توضیح بدید ، تا اون قسمتی که توی مانده تجمعی دچار خطا شده رو ، اگه بشه اصلاح کنم ؟
متشکرم
سلام
این سوال رو در همون تاپیک محاسبه مرخصی (https://barnamenevis.org/showthread.php?572290-محاسبه-مرخصی) مطرح کن تا بررسی بشه . ضمن اینکه در آخرین فایل اصلاحی که براتون فرستادم تا جائی که یادمه خطائی ندیدم.
eb_1345
سه شنبه 18 بهمن 1401, 17:58 عصر
سلام وقت بخیر
لطفا کسی میتونه راهنمایی کنه؟
توی رویداد before update یه تکست باکس که تاریخ داخلش ثبت میشه، چه کدی بنویسم که بره جدول مربوطه رو چک کنه تا همون تاریخ رو بصورت تکراری ثبت نکنه ؟
قبل ایجاد تاپیک سرچ کردم ، چیزی پیدا نکردم.
این کد رو امتحان کردم ولی درست جواب نمیده.
dim Dstart as string
Dstart=nz(dlookup("DateStart","tblL","[DateStart]=[forms]![frmL]![DateStart]"),0)
if Dstart<> "" THEN
msgBox"رکوردی در این تاریخ ثبت شده است."
cancel=true
End if
راستی خانم جلالی یادت باشه ثبت تاریخ تکراری برای ورود مرخصی ساعتی باید مجاز باشه ! چون ممکنه یک نفر در یک تاریخ بخصوص بیشتر از یکبار از مرخصی ساعتی استفاده کنه و اگه در این حالت در قسمت رویداد تاریخ چنین شرطی بگذاری دیگه قادر به ورود بیش از یکبار مرخصی ساعتی نخواهی بود . شما در قسمت شرط باید نوع مرخصی هم اضافه کنی که اگه نوع مرخصی مخالف 2 بود شرط محقق بشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.