قله بلند
چهارشنبه 29 اسفند 1386, 23:21 عصر
با سلام و تبریک سال نو و تشکر از پاسخ گویی شما عزیزان
می خواهم کلید اصلی هر جدول را وقتی که کاربر در حال درج رکوردی می باشد ، از طریق فراخوانی ماکرو و یا کدی در هنگام کلیک روی یک دکمه ، درج کنم و در واقع ، درج این رکورد را از کاربر بگیرم تا امنیت و جامعیت داده ها حفظ شود.
لطفا کد زیر را ملاحظه کنید و به من بگویید مشکل کار کجاست که خطا صادر می شود.
عمل برنامه:
وقتی فرم باز می شود ، ماکرویی به طور خودکار اجرا می شود و فوکوس را روی اولین رکورد جدول مزبور می آورد و بدین طریق x مقدار اولیه می گیرد.
y برابر یک قرار داده می شود و درون حلقه اگر x با y برابر باشد ، آنقدر حلقه ادامه می یابد تا به یک نابرابری برسیم و یا اینکه از حلقه خارج شویم.
بیرون حلقه ، به رکورد جدید می رویم و y را درون رکورد جدید درج می کنیم.
درج رکوردهای بعدی به عهده کاربر است.
و اما یک سوال دیگر:
اصولا انجام این کار مطلوب است ؟
و اما نکته آخر:
من نمی خواهم از autonumber ها استفاده کنم
اصل کد نوشته شده:
Option Compare Database
Private Sub Command3_Click()
Dim x As Integer
Dim y As Integer
x = Me.radif_shy = 1
'DoDo While x <> 0
If x = y Then
y = y + 1
DoCmd.RunMacro (M)
Else
Exit Do
End If
Loop
Loop Until x <> 0
DoCmd.RunMacro (M7)
Me.radif_sh = y
End Sub
می خواهم کلید اصلی هر جدول را وقتی که کاربر در حال درج رکوردی می باشد ، از طریق فراخوانی ماکرو و یا کدی در هنگام کلیک روی یک دکمه ، درج کنم و در واقع ، درج این رکورد را از کاربر بگیرم تا امنیت و جامعیت داده ها حفظ شود.
لطفا کد زیر را ملاحظه کنید و به من بگویید مشکل کار کجاست که خطا صادر می شود.
عمل برنامه:
وقتی فرم باز می شود ، ماکرویی به طور خودکار اجرا می شود و فوکوس را روی اولین رکورد جدول مزبور می آورد و بدین طریق x مقدار اولیه می گیرد.
y برابر یک قرار داده می شود و درون حلقه اگر x با y برابر باشد ، آنقدر حلقه ادامه می یابد تا به یک نابرابری برسیم و یا اینکه از حلقه خارج شویم.
بیرون حلقه ، به رکورد جدید می رویم و y را درون رکورد جدید درج می کنیم.
درج رکوردهای بعدی به عهده کاربر است.
و اما یک سوال دیگر:
اصولا انجام این کار مطلوب است ؟
و اما نکته آخر:
من نمی خواهم از autonumber ها استفاده کنم
اصل کد نوشته شده:
Option Compare Database
Private Sub Command3_Click()
Dim x As Integer
Dim y As Integer
x = Me.radif_shy = 1
'DoDo While x <> 0
If x = y Then
y = y + 1
DoCmd.RunMacro (M)
Else
Exit Do
End If
Loop
Loop Until x <> 0
DoCmd.RunMacro (M7)
Me.radif_sh = y
End Sub