PDA

View Full Version : اگه عضويت باطل شده در هنگام ثبت يه پيغام بده



mobina.amiry
شنبه 10 بهمن 1388, 21:25 عصر
سلام
من ميخوام توي برنامه كتابخانه يه امكاني بزارم :ما براي هر عضو يه تاريخ شروع عضويت داريم با يه تاريخ پايان عضويت حالا من ميخوام موقعي كه يه عضو مياد كتاب از كتابخونه قرض بگيره وقتي كه ما اون قسمت هاي لازم را پرميكنيم ودكمه ثبت امانت را ميزنيم بياد يه بررسي بكنه اون موقعه ببينه كه آيا اين عضو عضويتش باطل شده يا نه اگه باطل شده يه پيغام بده كه اين عضو عضويتش باطل شده در غيراينصورت هم اگه باطل نشده ثبت بشه ميخوام بدونم كه اين كار شدني هست يانه اگه شدني كمك كنيد؟

توي قسمت امانت هم كد عضويت،كد كتاب،نام كتاب،تاريخ اخذوتاريخ برگشت را دارم

polisoftco
شنبه 10 بهمن 1388, 23:58 عصر
سلام
ببینین شما میتونین از اون فایل Dll که قرار داده بودم استفاده کنین.
تو اون فایل شما میتونین تاریخ رو منها و جمع کنین، پس تاریخ عضویتش رو بگیرین و یکسال بهش اضافه کنین اگه از تاریخ جاری سیستم کم بود خب مهلت داره اگه زیاد بود یعنی مهلتش تموم شده.

موفق باشین

mobina.amiry
یک شنبه 11 بهمن 1388, 16:18 عصر
سلام
اينا بايد توي كدوم قسمت بنويسم
آخه من هر كاري ميكنم براي همه حتي اونايي كه تاريخ عضويتشونم باطل نشده ميگه تاريخ عضويت شما باطل شده
اگه ميتونيد كمك كنيد

mobina.amiry
یک شنبه 11 بهمن 1388, 21:12 عصر
سلام
من خودم اودم توی قسمت کد نویسی دکمه ثبت اومدم این کد را نوشتم


If borrowdate = payano Then
MsgBox "عضويت شما پايان يافته است"
Else
MsgBox "ok"
ولی متاسفانه فقط پیغام میده که عضویت شما باطل شده هر کاری میکنم جواب نمیده جستجو میزارم بازم همین طوریه اگه میتونید راهنمایی کنید

که من این کدرا اینجا نوشتم اصلا این دکمه فقط میاد این پیغام را میده و اصلا دیگه کار دیگه ای انجام نمیده کد را باید در کدوم قسمت بنویسم که اون بیاد مقایسه کنه نکه فقط پیغام بده

polisoftco
یک شنبه 11 بهمن 1388, 21:58 عصر
شما کد کامل دکمه رو بزارین.
اینی که شما نوشتین فقط پیغام رو میده.

ببینین این کد اختلاف سال رو نشون میده.



Dim Res as Integer
.
.
.

Res = MESHAMSI.DateDiffShamsi(txtDate1.Text, txtDate2.Text, O_Year)
.
.
End Sub


txtDate1 = تاریخ ثبت نام عضو
txtDate2 = تاریخ جاری سیستم

حالا شما بیایین ببینین که آیا اختلاف این دو تاریخ (Res >1) بزرگتر از یک هست یا نه اگه بزرگ بود یعنی از یک سال گذشته و عضویتش باطل شده.

سوالی بود درخدمتیم

موفق باشین

mobina.amiry
دوشنبه 12 بهمن 1388, 13:00 عصر
سلام
من اين كد را براي ثبت امانت نوشتم

Ado.Recordset.AddNew
Ado.Recordset.Fields!memberid = Trim(Text1.Text)
Ado.Recordset.Fields!bookid = Trim(Text2.Text)
Ado.Recordset.Fields!namebook = Trim(Text3.Text)
Ado.Recordset.Fields!borrowdate = Trim(MaskEdBox1.Text)
Ado.Recordset.Fields!returndate = Trim(MaskEdBox2.Text)
Ado.Recordset.Update
Ado.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
MaskEdBox1.Text = ""
MaskEdBox2.Text = ""

حالا بايد چيكار كنم

polisoftco
دوشنبه 12 بهمن 1388, 19:31 عصر
شما باید یکی دیگه از این ADO هات درست کنی که باید به جدول عضویت وصل باشه وقتی که توی TextBoxچیزی نوشت MemberID رو چک کنه ببینه آیا تاریخش گذشته یا نه.

یه چیزی شبیه این.



Dim Res as Integer

if AdoMem.recordset.state=1 then AdoMem.recordset.close
AdoMem.RecordSet.open "SELECT Memberid, TarikhOzviat FROM Table WHERE Memberid='" & Trim(Text1.Text) & "'"
Res = MESHAMSI.DateDiffShamsi(Ado.Recordset.Fields("TarikhOzviat"), txtDate.Text, O_Day)

if Res > 365 then
msgbox "عضویت شما باطل شده است"
ELSE
Ado.Recordset.AddNew
Ado.Recordset.Fields!memberid = Trim(Text1.Text)
Ado.Recordset.Fields!bookid = Trim(Text2.Text)
Ado.Recordset.Fields!namebook = Trim(Text3.Text)
Ado.Recordset.Fields!borrowdate = Trim(MaskEdBox1.Text)
Ado.Recordset.Fields!returndate = Trim(MaskEdBox2.Text)
Ado.Recordset.Update
Ado.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
MaskEdBox1.Text = ""
MaskEdBox2.Text = ""
End if


txtDate تاریخ جاری سیستم
TarikhOzviat فیلدی که توش تاریخ عضویت رو ثبت کردی
Table هم که جدول اعضاست

شاید کم و کسری داشته باشه یا شایدم روش من خوب نباشه.
خلاصه این رو چک نکردم

موفق باشین

mobina.amiry
دوشنبه 12 بهمن 1388, 20:37 عصر
شما باید یکی دیگه از این ADO هات درست کنی که باید به جدول عضویت وصل باشه وقتی که توی TextBoxچیزی نوشت MemberID رو چک کنه ببینه آیا تاریخش گذشته یا نه.

یه چیزی شبیه این.



Dim Res as Integer

if AdoMem.recordsource.state=1 then AdoMem.recordsource.close
AdoMem.RecordSource.open "SELECT Memberid, TarikhOzviat FROM Table WHERE Memberid='" & Trim(Text1.Text) & "'"
Res = MESHAMSI.DateDiffShamsi(Ado.Recordset.Fields("TarikhOzviat"), txtDate.Text, O_Day)

if Res > 365 then
msgbox "عضویت شما باطل شده است"
ELSE
Ado.Recordset.AddNew
Ado.Recordset.Fields!memberid = Trim(Text1.Text)
Ado.Recordset.Fields!bookid = Trim(Text2.Text)
Ado.Recordset.Fields!namebook = Trim(Text3.Text)
Ado.Recordset.Fields!borrowdate = Trim(MaskEdBox1.Text)
Ado.Recordset.Fields!returndate = Trim(MaskEdBox2.Text)
Ado.Recordset.Update
Ado.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
MaskEdBox1.Text = ""
MaskEdBox2.Text = ""
End if


txtDate تاریخ جاری سیستم
TarikhOzviat فیلدی که توش تاریخ عضویت رو ثبت کردی
Table هم که جدول اعضاست

شاید کم و کسری داشته باشه یا شایدم روش من خوب نباشه.
خلاصه این رو چک نکردم

موفق باشین

سلام
ببخشيد من هر كار كردم خطا داد برنامه را گذاشتم اينجا ضميمه كردم اگه تونستيد يه نگاه بهش بكنيد و اگه شد مشكل اين قسمت را حل كنيد
البته اين كل برنامه نيست فقط قسمت عضو و امانت و كتابه

mobina.amiry
سه شنبه 13 بهمن 1388, 22:16 عصر
سلام
چي شد كسي نتونست كمك كنه اگه نميشه بيخيالش شم

polisoftco
سه شنبه 13 بهمن 1388, 23:17 عصر
سلام
چکش کنین ببینین درست شده یا نه ...
البته توی قسمت کد عضویت شماره 101 رو بزنین میبینین که پیغام "عضویت فعال" رو میده و اگر 102 بزنین پیغام "عضویت غیر فعال" رو نشون میده چون تاریخ انقضای عضو 102 تا تاریخ 12/11/88 بوده.

mobina.amiry
چهارشنبه 14 بهمن 1388, 13:59 عصر
سلام
چکش کنین ببینین درست شده یا نه ...
البته توی قسمت کد عضویت شماره 101 رو بزنین میبینین که پیغام "عضویت فعال" رو میده و اگر 102 بزنین پیغام "عضویت غیر فعال" رو نشون میده چون تاریخ انقضای عضو 102 تا تاریخ 12/11/88 بوده.

سلام
ممنون ولي متاسفانه زماني كه برنامه را اجرا ميكنم و به قسمت امانت ميروم و همان عدد101را ميزنم پيغام عضويت فعال را ميدهدوعدد 102 پيغام عضويت غير فعال را ميده ولي بعدازان يك پبغام خطا ميدهد و اين خط را مشخص ميكند.عكس پيغام خطا را ضميمه كرده ام


strCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ketab1.mdb;Persist Security Info=False"

polisoftco
چهارشنبه 14 بهمن 1388, 19:57 عصر
دوست عزیز کدی که برای اتصال توی قسمت Form_Activate هستش رو ببر به قسمت Form_Load چون که توی قسمت اکتیویت وقتی فرم فعال شد دیتابیس رو باز میکنه، بخاطر همون چون قبلا دیتابیس باز بوده نمیتونه دوباره بازش کنه.

یاهم یک راه دیگه داری :
قبل از


strCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ketab1.mdb;Persist Security Info=False"


این کد رو بنویس :


If strCon.State = 1 Then strCon.Close


این کد چک میکنه میبینه که آیا دیتابیس بازهسته یا نه اگه باز بود می بنده.

موفق باشین