PDA

View Full Version : مبتدی: استخراج بزرگترین شماره



mhamedm2008
دوشنبه 19 اردیبهشت 1390, 16:49 عصر
سلام.من یک تیبل درست کرده ام که یک شماره ثبت توی اون میخوره.مثل سیستم ثبت نامه دبیر خانه.
چه جوری میتونم کاری کنم که وقتی می خوای نامه جدیدی رو وارد کنیم( یعنی وقتی دکمه new record که توی فرم درست کرده ام را می زنیم) به طور خود کار شماره ثبت فیلد قبل را یکی وارد کند و در فیلد بعد وارد کنید.مثل یک سیستم ثبت نامه دبیر خانه.

بنا به دلیل هم نمی خوام از سیستم auto number استفاده کنم.چون باید از اعداد خاصی گاهن شروع شود که یا در هنگام حذف رکود شماره ها بهم نخورد.

اگر هم از VBA باید استفاده شود بگید که کجا باید وارد کنم چون با VBA تا حالا کار نکردم
با تشکر منتظر هستم.
اگه زودتر هم جواب بدید از همتون ممنون میشم

mhamedm2008
دوشنبه 19 اردیبهشت 1390, 22:21 عصر
یعنی اینجا کسی نمیدونه؟؟!!!!!!!!!!!!

mehdi_moghimi
دوشنبه 19 اردیبهشت 1390, 23:22 عصر
Public Function CodeKalaNew()
Dim rst As Recordset, StrSql As String

StrSql = "SELECT Kala.CodeKala FROM Kala ORDER BY Kala.CodeKala;"

Set rst = CurrentDb.OpenRecordset(StrSql)
If rst.RecordCount > 0 Then
rst.MoveFirst
i = 1
Do While Not rst.EOF
If rst!CodeKala = i Then
rst.MoveNext
i = i + 1
Else
CodeKalaNew = i
Exit Function
End If
Loop
rst.MoveLast
CodeKalaNew = rst![CodeKala] + 1
Else
CodeKalaNew = 1
End If
rst.Close
End Function
كد بالارو من براي پيدا كردن كد جديد يه كالا تو برنامم استفاده ميكنم.با اين خاصيت كه از شماره 1 شروع ميشه بعد 2 بعد 3 بعد 4 والي آخر. اگه بعدها مثلا ركورد شماره 2 پاك بشه و شما بخواين يه كد جديد از تابع بگيرين عدد 2 رو به شما ميده و اينجوري هيچ وقت بين ركوردها عدد خالي نميفته

mhamedm2008
سه شنبه 20 اردیبهشت 1390, 00:31 صبح
نه.من اینجوری نمی خوام که بعدا یه یک جدید بده.
فقط می خوام مقدار مثلا فیلد x رو +1 کنه و بزاره توی فیلد جدید

payman_xxp
سه شنبه 20 اردیبهشت 1390, 07:35 صبح
نه.من اینجوری نمی خوام که بعدا یه یک جدید بده.
فقط می خوام مقدار مثلا فیلد x رو +1 کنه و بزاره توی فیلد جدید

سلام
با یه کم دستکاری کدی که دوستمون mehdi_moghimi (http://barnamenevis.org/member.php?44506-mehdi_moghimi) نوشتن ، مشکل حل میشه.
شما بعد از تعریفrst کافیه rst.MoveLast کنید و اونو 1 واحد افزایش بدید، اینجوری CodeKalaNew = rst![CodeKala] + 1
موفق باشید.

dadsara
سه شنبه 20 اردیبهشت 1390, 10:56 صبح
سلام
مشابه نمونه اقدام نمائید
البته به ازاء سال (تاریخ ثبت) بزرگترین شماره استخراج+1 می شود

mhamedm2008
سه شنبه 20 اردیبهشت 1390, 17:21 عصر
سلام
شرمنده خیلی سر و کله زدم ولی نتونستم.چون برنامه نویسی بلد نیست
فایل رو براتون می زارم.دو تا سوال.یکی که چرا اینقدر حجم فایل زیاده؟ سوال بعدم که می خوام توی اندیکاتور ارسالی و وارده وقتی دکمه جدید رو میزنم که اطلاعات جدید رو بزنم، به صورت خودکار به شماره ثبت قبلی یک واحد اضافه کنه و توی این لیست جدید بزاره
ممنون میشم
منتظرم

http://www.behshahri.ir/E-andikator.rar

dadsara
چهارشنبه 21 اردیبهشت 1390, 08:35 صبح
سلام
ظاهرا آدرس فایل ایراد دارد ، درضمن فایل را با فرمت 2003 ترجیحا قرار بدهید

mhamedm2008
چهارشنبه 21 اردیبهشت 1390, 15:59 عصر
http://up.iranblog.com/images/nchrzeti8vb16zqktvj.rar
این هم با فرمت 2003.اگه سریعتر ممنون میشم

mehdi_fiz
چهارشنبه 21 اردیبهشت 1390, 20:45 عصر
سلام دوست عزیز
فایل به دلیل اینکه برای فیلدها از حروف فارسی استفاده کردی نشد برات کد بنویسم و درستش کنم ولی به شکل زیر باید در رویداد کلیک کلید ذخیره و جدید کد بنویسی

Private Sub Command0_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
Me.Text2 = DMax("[sabt]", "table1") + 1
Me.Text2.SetFocus
End Sub

موفق باشی

mhamedm2008
چهارشنبه 21 اردیبهشت 1390, 22:40 عصر
هر جا که نیازه انگلیسی کن
من انگلیسی کردم.کد رو هم توی کلید قرار دارم.اسم تیبل و فیلد ثبت رو هم تغییر دادم ولی هچ عکس العملی انجام نمیده.چرا؟؟؟

mhamedm2008
پنج شنبه 22 اردیبهشت 1390, 18:16 عصر
دوستان.چی شد پس؟؟؟؟؟

mhamedm2008
جمعه 23 اردیبهشت 1390, 22:08 عصر
کسی نمی تونه کمکم کنه؟ :ناراحت:

mhamedm2008
یک شنبه 25 اردیبهشت 1390, 17:43 عصر
سلام دوست عزیز
فایل به دلیل اینکه برای فیلدها از حروف فارسی استفاده کردی نشد برات کد بنویسم و درستش کنم ولی به شکل زیر باید در رویداد کلیک کلید ذخیره و جدید کد بنویسی

Private Sub Command0_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
Me.Text2 = DMax("[sabt]", "table1") + 1
Me.Text2.SetFocus
End Sub

موفق باشی

من تیبل فیلد و نام فرم رو انگلیسی کردم.پارامتر ها رو هم جابه جا کردم ولی اررو زیر رو در هگام کلیک رو باتن میده

http://up.iranblog.com/images/z2a5rjptywtyjb321nkr.png

حتی کد رو فقط به صورت زیر وارد می کنم باز هم همون اررور رو میده

http://up.iranblog.com/images/u714dg1ey6u2fo8pifzk.png

دلیلش چیه؟؟