ورود

View Full Version : اضافه کردن یک مقدار( +1) به کد مشتری به صورت صعودی



ramsess
سه شنبه 12 مرداد 1389, 10:17 صبح
دوستان من در برنامم قسمتی رو گذاشتم برای اینکه شماره کد مشتری به صورت اتوماتیک هر بار یک عدد به اون اضافه بشه تا کد مشتری ها تکراری نباشه ضمنا برای اینکه خود کاربر بتونه از هر عددی که بخواد شروع کنه در یک جدول دیگه فیلدی رو به عنوان فیلد پایه شروع عدد قرار دادم . هر بار که کاربر یک مشتری رو ثبت می کنه ابتدا آخرین رکورد رو در نظر می گیره و یک مقدار به اون اضافه می کنه اما مشکل اینجاست : در بعضی مواقع عدد به عقب بر می گرده فرض کنید شما تا 86 رفتید و وقتی دکمه جدید رو می زنید عدد به مقلا 23 برگشته
این عدد ها هم رندوم هستن و روی عدد خاصی هم اینجوری نمی شه عدد ها فرق می کنه
این هم کد که نوشتم. با توضیحات
TxtTemp متنی برای اینکه هر بار عدد به صورت ظرف خالی داخل اون ریخته بشه و بعد از new دوباره داخل فیلد قرار بگیره
TxtBaseIdCastomer جعبه متنی است که به فیلد اطلاعات پایه وصل شده و مقدار اولیه عدد برای شروع کد مشتری می باشد که توسط کاربر وارد شده
'==========چک کردن زماني که رکوردي ذخيره نشده است چون باید به رکورد آخر به و آخرین عدد رو بیاره و یک به اون اضافه کنه
If AdoCastumer.Recordset.RecordCount = 0 Then اگر هیچ مقداری در جدول مشتری ذخیره نشده باشد
AdoCastumer.Recordset.AddNew یک رکورد به جدول مشتری اضافه کن
TxtCastumer.Text = TxtBaseIdCastomer.Text عددی که داخل متن عدد اولیه قرار دارد را داخل متن عدد در جدول مشتری قرار بده
bSave.Enabled = True
BReturn.Visible = False
BCancel.Visible = True
BNew.Enabled = False
Else
'================اضافه کردن يک عدد هر بار به کد مشتری
AdoCastumer.Recordset.MoveLast به رکورد آخر مشتری اشاره می کند تا اخرین عدد ثبت شده به دست آید
TxtTemp.Text = TxtCastumer.Text یک متن خالی در نظر گرفته شده که آخرین عدد را با 1 جمع می کند و داخل آن می ریزد
TxtTemp.Text = TxtTemp.Text + 1
'============================اتمام اضافه کردن عدد
AdoCastumer.Recordset.AddNew بعد از اینکه عدد به دست آمده داخل temp قرار گرفته یک رکورد خالی می شود و مقدار temp داخل TxtCastumer می شود بعد ذخیره می گردد
TxtCastumer.Text = TxtTemp.Text
bSave.Enabled = True
BReturn.Visible = False
BCancel.Visible = True
BNew.Enabled = False
End If

moghadam1372
جمعه 25 شهریور 1390, 13:15 عصر
با اینم میشه
dim rs as new ADODB.RecordSet
dim code as integer
set rs = cnn.execute("select MAX(code) from customer")
code = rs.Fields(0)
text1.text = "" & code

setroyd
جمعه 25 شهریور 1390, 13:26 عصر
این که کاری نداره شما یک فیلد به data base خودت اضافه کن و تعریف کن در هر new record یکی بهش اضافه بشه +1 بشه و در هر بار از اون فیلد برداشت کن و تنظیمش کن با user جدیدی که سبت کردی !! اگه شماره بر میگرده عقب مشکل از کد نویسیته . که با این کار که گفتم اگه بکنی % خطا 0 میشه .

موفق باشی