PDA

View Full Version : سوال: تغییر تصویر با تغییر بازه تاریخ



Milad_ATM
جمعه 11 مهر 1399, 07:36 صبح
سلام


If (Now() - Me.ExpiredDate <= 15 And Now() - Me.ExpiredDate >= 0) Then Me.RedTag.Visible = True
ElseIf (Now() - Me.ExpiredDate > 15) And (Now() - Me.ExpiredDate <= 30) Then
Me.OrangeTag.Visible = True
Else
Me.GreenTag.Visible = True
End If

همونطور که در کد میبینید ،میخوام درصورتی که تاریخ زیر 15 باشه یک تصویر رو visible کنم حالت دوم بین 15 تا 30 یک تصویر دیگه و در غیر اینصورت تصویر سوم...
منتها در هر حالت فقط شرط سوم اجرا میشه
ممنون میشم راهنمایی کنید

eb_1345
جمعه 11 مهر 1399, 10:19 صبح
سلام


If (Now() - Me.ExpiredDate <= 15 And Now() - Me.ExpiredDate >= 0) Then Me.RedTag.Visible = True
ElseIf (Now() - Me. > 15) And (Now() - Me.ExpiredDate <= 30) Then
Me.OrangeTag.Visible = True
Else
Me.GreenTag.Visible = True
End If

همونطور که در کد میبینید ،میخوام درصورتی که تاریخ زیر 15 باشه یک تصویر رو visible کنم حالت دوم بین 15 تا 30 یک تصویر دیگه و در غیر اینصورت تصویر سوم...
منتها در هر حالت فقط شرط سوم اجرا میشه
ممنون میشم راهنمایی کنید
سلام
اول بگو در برنامه ات از تاریخ میلادی استفاده می کنید که تاریخ ExpiredDate را از زمان فعلی Now() کم کرده اید ؟

Milad_ATM
جمعه 11 مهر 1399, 10:40 صبح
بله ، به این شکل هست :
152232

eb_1345
جمعه 11 مهر 1399, 11:09 صبح
بله ، به این شکل هست :
152232
برای کسر دو تاریخ باید هر دو بصورت عددی باشند .در تصویر تاریخ ExpiredDate بصورت حروف است . که اول این تاریخ حروفی باید به تاریخ عددی تبدیل شود .
بفرما که این تاریخ رو به چه صورتی وارد تکست باکس فوق می کنید و فرمت آن به چه صورتی است ؟

Milad_ATM
شنبه 12 مهر 1399, 06:11 صبح
فرمت :
152236

نحوه ورود تاریخ به تکست باکس:

Me.ExpiredDate = Me.CalibrationDate2 + Me.CalibrationPeriod2

در واقع با تغییر بازه میخوام این تگ که بصورت تصویر هست تغییر کنه :
152237
مرسی

padide55
شنبه 12 مهر 1399, 09:26 صبح
If (Now() - Me.ExpiredDate <= 15 And Now() - Me.ExpiredDate >= 0) Then Me.RedTag.Visible = True
ElseIf (Now() - Me. > 15) And (Now() - Me.ExpiredDate <= 30) Then
Me.OrangeTag.Visible = True
Else
Me.GreenTag.Visible = True
End If

خط دوم چرا بعد از me. چیزی نیست؟؟

ElseIf (Now() - Me. > 15) And (Now() - Me.ExpiredDate <= 30) Then

padide55
شنبه 12 مهر 1399, 09:30 صبح
تکلیف کد false هم تعریف کنید که بقیه باتن ها رو غیر فعال کنه . یعنی اگر یکی true باشه دو تای دیگه falseبشه

Me.RedTag.Visible = false
Me.OrangeTag.Visible = false
Me.GreenTag.Visible = false

padide55
شنبه 12 مهر 1399, 11:50 صبح
فایل نمونه رو ملاحظه بفرمایید.

eb_1345
شنبه 12 مهر 1399, 13:11 عصر
فایل نمونه رو ملاحظه بفرمایید.

آفرین به padide55 (https://barnamenevis.org/member.php?263869-padide55) :تشویق:
چون قرار است بصورت اتوماتیک این تغییر تصویر انجام شود بهتره این کدها در رویداد Form_Timer با مقدار مثلاً 1000 برای TimerInterval باشد و برای جلوگیری از پرش تصویر در رویداد فوق شرط مخفی بودن تصویری که قرار است آشکار شود اضافه شود



Private Sub Form_Timer()
Dim rooz As String
rooz = DateDiff("d", Date, [expiredDate])
If rooz >= 0 And rooz <= 15 And Me.RedTag.Visible = False Then
Me.RedTag.Visible = True
Me.OrangeTag.Visible = False
Me.GreenTag.Visible = False
ElseIf rooz > 15 And rooz <= 30 And Me.OrangeTag.Visible = False Then
Me.OrangeTag.Visible = True
Me.RedTag.Visible = False
Me.GreenTag.Visible = False
ElseIf rooz > 30 And Me.GreenTag.Visible = False Then
Me.GreenTag.Visible = True
Me.OrangeTag.Visible = False
Me.RedTag.Visible = False
End If
End Sub

Milad_ATM
یک شنبه 13 مهر 1399, 06:13 صبح
ضمن تشرک از دوستان بخصوص Padide55 ،فایل شما بدرستی کاری که مد نظر من بود انجام میده
اما در فایل خودم که پیوست هست درست کار نمیکنه

http://s15.picofile.com/file/8409903418/1.rar.html
- البته لازم به توضیح هست که پس از آپدیت Combo اول ،دوم و سوم به ترتیب با کدی که روی AfterUpdate ،مورد سوم هست تغییرات باید اتفاق اعمال بشه

padide55
یک شنبه 13 مهر 1399, 07:37 صبح
ضمن تشرک از دوستان بخصوص Padide55 ،فایل شما بدرستی کاری که مد نظر من بود انجام میده
اما در فایل خودم که پیوست هست درست کار نمیکنه

http://s15.picofile.com/file/8409903418/1.rar.html
- البته لازم به توضیح هست که پس از آپدیت Combo اول ،دوم و سوم به ترتیب با کدی که روی AfterUpdate ،مورد سوم هست تغییرات باید اتفاق اعمال بشه

مشکل شما در جمع کردن روز با تاریخ هست . شما به یک تاریخ خاص میخواید مثلا 365 روز اضاف کنید . بعد تاریخ مورد نظر میشه تاریخ انقضا .
فرمول اضافه نمودن روز به تاریخ (Me.ExpiredDate) رو اشتباه نوشتید .


این خط رو اصلاح کنید


Me.ExpiredDate = DateAdd("d", [CalibrationPeriod2], CalibrationDate2)

یک فیلد هم کنار باتن های رنگی ایجاد کنید که مقدار روز رو ببینید . یعنی مقدار rooz در فیلد fieldrooz بشینه که شما ببینید چه مقدار هست .اینجوری بصورت چشمی هم عدد متناظر با رنگ رو میبینید .

Dim rooz As String
rooz = DateDiff("d", Date, [expiredDate])
me.fieldrooz=rooz

و ادامه کدهای