PDA

View Full Version : رفع اشکال از کد نوشته شده برای فیلد تکراری



G.hemati
چهارشنبه 22 شهریور 1391, 00:22 صبح
سلام

میشه لطفاً اشکالات کد زیر رو رفع کنین
من از نمونه یکی از دوستان تالار (با کمی تغییرات ) استفاده کردم تا نحوه جلوگیری از ثبت رکورد تکراری رو اجرا کنم
ولی خطا میگیره
Private Sub TEnd_AfterUpdate()
If DCount("*", "StoryForm", "Date=" & date & " AND NpalnID='" & NplanID & "'" AND Shift= '" & shift & "'" and TStart=#"& Tstart & "# And TEnd=#" & TEnd & "#)>0 Then
MsgBox "اطلاعات ثبت شده تکراري است", vbCritical + vbMsgBoxRight, "توجه"
Cancel = True
End If
End Sub

G.hemati
چهارشنبه 22 شهریور 1391, 20:57 عصر
دوستان ممنون میشم راهنمایی بفرمایین

Abbas Amiri
چهارشنبه 22 شهریور 1391, 23:45 عصر
کدهای مربوطه مطابق زیر تغییر دهید


Private Sub TEnd_AfterUpdate()
Dim strCriteria As String
strCriteria = "Date=" & Date & " AND nplanID='" & nplanID & "' AND Shift= '" & _
shift & "' and TStart=CDate('" & TStart & "') And TEnd=CDate('" & TEnd & "')"
If DCount("*", "StoryForm", strCriteria) > 0 Then
MsgBox "اطلاعات ثبت شده تکراري است", vbCritical + vbMsgBoxRight, "توجه"
Cancel = True
End If
End Sub

G.hemati
پنج شنبه 23 شهریور 1391, 08:28 صبح
بسیار تشکر بابت زحمتی که کشیدین آقای امیری

میشه در مورد استفاده از قطعه کد CDate یه توضیحی بدین که چه کاری انجام میده و دلیل استفادش چیه؟


TStart=CDate('" & TStart & "') And TEnd=CDate('" & TEnd & "')"
چون من در یکی از صفحات مایکرو سافت که مربوط به تعریف توابع بود خوندم که برای تعریف فیلد Time/Date باید از علامت # در دو طرف نام فیلد استفاده شود . یعنی Cdate یه جورایی همون کاربرد را دارد ؟

Abbas Amiri
پنج شنبه 23 شهریور 1391, 18:33 عصر
من در یکی از صفحات مایکرو سافت که مربوط به تعریف توابع بود خوندم که برای تعریف فیلد Time/Date باید از علامت # در دو طرف نام فیلد استفاده شود . یعنی Cdate یه جورایی همون کاربرد را دارد ؟
بله ، مضاف بر اینکه اشکال کد شما درجای دیگر بود ومیتوانید از همان روش قبلی استفاده کنید.

hasanhzd
چهارشنبه 29 شهریور 1391, 21:25 عصر
سلام

میشه لطفاً اشکالات کد زیر رو رفع کنین
من از نمونه یکی از دوستان تالار (با کمی تغییرات ) استفاده کردم تا نحوه جلوگیری از ثبت رکورد تکراری رو اجرا کنم
ولی خطا میگیره
Private Sub TEnd_AfterUpdate()
If DCount("*", "StoryForm", "Date=" & date & " AND NpalnID='" & NplanID & "'" AND Shift= '" & shift & "'" and TStart=#"& Tstart & "# And TEnd=#" & TEnd & "#)>0 Then
MsgBox "اطلاعات ثبت شده تکراري است", vbCritical + vbMsgBoxRight, "توجه"
Cancel = True
End If
End Sub


درود
اگه از پیامهای خود اکسس استفاده کنید راحت تره
بلد نیستم اینجا فایل بذارم
لینک زیر یه نمونه میذارم تو جدول کد خطارو بیابید پیغام خودتون رو بذارید

برای نمونه به فرم مراجعه کنید شاید چندتا خطای متفرقه بده چون خیلی عناصررو پاک کردم و لی تو رویداد on error جوابتونو میگیریدhttp://s3.picofile.com/file/7505175806/err.zip.html