ورود

View Full Version : ذخیره سازی رکورد با کدینگ خاص



smderfan
شنبه 17 شهریور 1386, 01:43 صبح
سلام
در داخل یک تکس باکس در فرم عبارت [CurrentRecord]= رو قرار داده ام که در فیلد ذخیره می شود و حالا ممکن هست یک رکورد از بانک حذف بشه. می خوام وقتی بخواد مقدار [CurrentRecord] در فیلد ذخیره بشه ابتدا چک کنه که این مقدار در بانک در فیلد مورد نظر وجود نداشته باشه سپس ذخیره بشه اگر مقدار مورد نظر وجود داشته باشه 1+ بشه سپس دوباره چک و در نهایت در فیلد جاری ذخیره بشه.
مثلا اگر مقدار 1 قبلا ذخیره شده +1 بشه و 2 رو ثبت کنه سپس دوباره چک کنه اگر 2 نبود ثبت بشه و از حلقه خارج بشه.
یعنی رکورد مورد نظر با یک شماره خاص ذخیره و تکراری نباشه. از AutoNumber هم نمی خوام استفاده کنم.
اگر پیشنهاد خاصی برای ذخیره سازی با یک کدینگ خاص مد نظر دارید دریغ نکنید.
با تشکر

mehdihamedali
شنبه 17 شهریور 1386, 08:04 صبح
دوست عزیز اگر منظورتون استفاده از مبحث سکونشیال (ذخیره اعداد پشت سر هم) است راه بهتر و راحتری هم وجود داره که یکم باید اطلاعات VBA و SQL داشته باشید
من نمونه ای از این موضوع رو براتون میزارم تریس کنید و تو سیستم خودتون از اون استفاده کنید.

Message = MsgBox("آیا مایل به ثبت ردیف هستید", _
vbExclamation + vbDefaultButton1 + vbMsgBoxRight + vbYesNo, "توجه")

If Message <> 6 Then
Me.Des.SetFocus
Exit Sub
Else
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT MAX(ID) AS MaxID FROM tblBegetPort")

If IsNull(rs.Fields("MaxID").value) Then
Me.ID = 1
Me.UserID = Form_frmLogon.txtUserName
Me.Refresh
MsgBox "عملیات با موفقیت انجام شد", vbInformation + vbMsgBoxRight + vbOKOnly, "موفقیت"
Me.Des.SetFocus
Exit Sub
Else
Me.ID = rs.Fields("MaxID").value + 1
Me.UserID = Form_frmLogon.txtUserName
Me.Refresh
MsgBox "عملیات با موفقیت انجام شد", vbInformation + vbMsgBoxRight + vbOKOnly, "موفقیت"
Me.Des.SetFocus
Exit Sub
End If
End If

ببین ابتدا یک پیغام میده که آیا مابل به ثبت اطلاعات هستید اگر شخص قبول کرد آنگاه یک دیتا بیس جدید و یک رکوردست جدید ایجاد میکنه بعد با دستور SQL فیلد ID رو از جدول tblBegetPort به صورت بیشترین عدد پیدا مینکه بعد داخل دو شرط اول چک میکنه که آیا مقدار اولیه وجود دارد یا خیر که بقیش فکر کنم مشخصه
سئوال داشتی بپرس