امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
اشکال کد - زمان اشتباه
نویسنده پیام
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #1
اشکال کد - زمان اشتباه
سلام
این کد رو ببینید در آخر توضیحات رو می دم
کد:
Private Sub Command1_Click()
' Dim dd As Integer
    Dim lngSec As Long
Dim lngSum As Long
Dim i As Long
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox "I?C I? ??C?ECE .???I ?C IC?? C?E", vbCritical + vbOKOnly + vbSystemModal, "I?C !"
Adodc1.Recordset.Close
Adodc1.Recordset.Open
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh

Else
Adodc1.Recordset.MoveFirst
For i = 1 To Adodc1.Recordset.RecordCount
  'On Error GoTo dd
    lngSec = Con_Time_To_Second(Adodc1.Recordset.Fields(4).Value)
    lngSum = lngSum + lngSec
    Adodc1.Recordset.MoveNext
Next

  
LSLabel7.Caption = Con_Secont_To_Time(lngSum)
Adodc1.Recordset.MoveFirst
End If
End Sub

Public Function Con_Time_To_Second(ByVal strTime As String) As Long
On Error Resume Next

    Dim strTemp() As String
    Dim i As Integer

    strTemp = Split(strTime, ":")
    Con_Time_To_Second = 0
    
    For i = 0 To UBound(strTemp)
        Con_Time_To_Second = Con_Time_To_Second + (Val(strTemp(i)) * (60 ^ (UBound(strTemp) - i)))
    Next

End Function
Public Function Con_Secont_To_Time(ByVal Second As Long) As String
On Error Resume Next

    Dim s As Long, M As Long, H As Long
    Dim Manfi As Boolean

    If Second < 0 Then
        Manfi = True
        Second = Second * (-1)
    End If

    H = Second \ 3600
    M = (Second Mod 3600) \ 60
    s = (Second Mod 3600) Mod 60
    
    Con_Secont_To_Time = H & ":" & IIf(M > 9, M, "0" & M) & ":" & IIf(s > 9, s, "0" & s)
    
    If Manfi = True Then
        Con_Secont_To_Time = Con_Secont_To_Time & "-"
    End If

End Function
خوب - اول با عرض خسته نباشید خدمت همه
این کد ها مربوط میشه به یک قسمت از برنامه که میاد یک فیلد از یک دیتا گرید رو جمعش رو که مقادیر اون ساعت هست مثلا 10:40:50 توی یک تکس باکس نشون می ده
حالا مشکل کجاست
زمان رو درست نشون نمی ده
[تصویر:  10y15bq.jpg]
یک فیلد هست به نام جمع کل ساعت که باید جمعش نشون داده بشه
بانک اطلاعاتی اکسس هست
این هم از قسمت لود
کد:
Private Sub Form_Load()
Skin1.ApplySkin frmkarkard.hWnd
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\DBE.mdb"
Adodc1.RecordSource = "Data"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from ekhtelaf"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
'-----------------------
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\DBE.mdb"
Adodc2.CommandType = adCmdText
Adodc2.RecordSource = "select * from dbsabt"
Adodc2.Refresh
Adodc1.Recordset.MoveFirst
ممنون اگه مورد دیگه ای هم بود بگین توضیح بدم
قبلا از راهنمایی شما متشکرم

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
۲۱-مهر-۱۳۸۷, ۲۳:۱۵:۱۲
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #2
RE: اشکال کد - زمان اشتباه
دوست عزيز

كافيه 3 تا متغيير به شكل زير تعريف كنيد :

Dim TimeIn , TimeOut , TotalTime As Date

بعد براي هر ركورد از ديتابيس كه خواستيد ،زمان رو به صورت زير محاسبه كنيد :

TotalTime = TimeOut - TimeIn
Text1 = TotalTime

به همين شيرني! ديگه احتياجي به اون همه تابع و تبديل و محاسبه نيست!!Wink

۲۲-مهر-۱۳۸۷, ۰۰:۵۹:۱۲
وب سایت ارسال‌ها
پاسخ
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #3
RE: اشکال کد - زمان اشتباه
کد:
Dim TimeIn , TimeOut , TotalTime As Date
با سلام
اول این که این کد می شه گفت اشتباه
چون فقط تابغ Totaltime رو از نوع Date قرار میده
درستش اینجوریه البته هر دو حالت رو می گم

کد:
Dim Timein as date,dim timeout as date,dim totaltime as date

یا هم که جدا جدا

کد:
dim timein as date
dim timeout as date
dime totaltime as tate

حالا جدا از این مسئله من منظور شما رو متوجه نشدم چیه
اگه میشه یک نمونه قرار بدین یا اگه امکان داره واضح تر بگین
ممنون

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
(آخرین ویرایش در این ارسال: ۲۲-مهر-۱۳۸۷, ۰۲:۳۷:۵۰، توسط Dr.Bronx.)
۲۲-مهر-۱۳۸۷, ۰۲:۳۶:۰۳
ارسال‌ها
پاسخ
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #4
RE: اشکال کد - زمان اشتباه
یه مطلب خارج از بحث:
چرا تو رکورد شماره 3 ساعت خروج کمتر از ساعت وروده ولی ساعت کل کاری مثبته؟
حالا وارد بحث بشیم:
هیچ مشکلی تو کد نبود. همه چی تمیز بود، جز اینکه با VB نوشتی. تنها مشکل این بود.
وقتی با VB کد نویسی می کنی یه اشکالات عجیبی پیش میاد که تا برنامه رو خط به خط اجرا نکنی و تو هر خط مقدار متغیرها رو چک نکنی حل نمیشه.
آخر سر هم یه خطا تو کدنویسی خودت پیدا می کنی و می بینی هیچکس تقصیری نداشته.

پیشنهاد می کنم گه با اجرای خط به خط و کنترل مقادیر متغیرها خطا رو متوجه نشدی اون قسمت از برنامه رو از پروژه جدا کن تو بانک هم اطلاعات غیرواقعی بذار یا ااصلا بانک رو خالی کن بعد آپلود کن تا روش کار بشه.
ولی امروز فرداست که بگی مشکل حل شد فلان جا ...


۲۳-مهر-۱۳۸۷, ۰۷:۵۳:۵۴
ارسال‌ها
پاسخ
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #5
RE: اشکال کد - زمان اشتباه
نقل قول: چرا تو رکورد شماره 3 ساعت خروج کمتر از ساعت وروده ولی ساعت کل کاری مثبته؟
عجب !! دقت نکرده بودم
بررسی می کنم - ممنون از توجهت

نقل قول: هیچ مشکلی تو کد نبود. همه چی تمیز بود، جز اینکه با VB نوشتی. تنها مشکل این بود.
وقتی با VB کد نویسی می کنی یه اشکالات عجیبی پیش میاد که تا برنامه رو خط به خط اجرا نکنی و تو هر خط مقدار متغیرها رو چک نکنی حل نمیشه.
آخر سر هم یه خطا تو کدنویسی خودت پیدا می کنی و می بینی هیچکس تقصیری نداشته.

پیشنهاد می کنم گه با اجرای خط به خط و کنترل مقادیر متغیرها خطا رو متوجه نشدی اون قسمت از برنامه رو از پروژه جدا کن تو بانک هم اطلاعات غیرواقعی بذار یا ااصلا بانک رو خالی کن بعد آپلود کن تا روش کار بشه.
ولی امروز فرداست که بگی مشکل حل شد فلان جا ...
می دونه درد من چیه
اینه که این درست بود
قشنگ کار می کرد
یهو از کار افتاد و عدد های عجیب غریب نشون داد
من هم چون اون قسمت تکمیل بود اصلا کاری بهش نداشتم و هفته پیش یهو دیدم اینجوریه
حالا مثله ............... تو گل گیر کردم
الان اون قسمت رو دارم جدا می کنم بزارم ایشالا با کمک شما حل بشه
شرمنده که روی راپید شیر هست
چون اینجا من جایی رو برای آپلود پیدا نکردم
http://rapidshare.com/files/154070151/Ti...k.rar.html

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
(آخرین ویرایش در این ارسال: ۲۴-مهر-۱۳۸۷, ۰۲:۴۱:۵۹، توسط Dr.Bronx.)
۲۴-مهر-۱۳۸۷, ۰۱:۵۴:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #6
RE: اشکال کد - زمان اشتباه
کد:
lngSec = Con_Time_To_Second(FormatDateTime(Adodc1.Recordset.Fields(4).Value, vbLongTime))
شما اگه برنامه رو خط به خط اجرا می کردی متوجه میشدی که مقدار فیلد Expr1 یه عدد اعشاری عجیب غریبه که باید به فرمت عادی تبدیل بشه. برای پیدا کردن تابعی که این تبدیل رو انجام بده هم کافی بود تا توی ObjectBrowser خود VBعبارت Time رو جستجو کنی.
حالا این یه خط کد رو بجای اولین خط توی حلقه For جایگزین کن ببین درست میشه یا نه؟
موفق باشی
نقل قول: اینجا من جایی رو برای آپلود پیدا نکردم
توی پاسخ سریع امکان آپلود نیست ولی اگر دکمه «پاسخ جدید» رو از سمت راست پایین یا بالای صفحه بزنی میتونی آپلود هم بکنی.
بعدش هم ما که مشکلی با RapidShare نداریم. از RapidBaz برا دانلود استفاده می کنیم.
بعد از ارسال پاسخ یه نکته یادم اومد که خالی از لطف نیست. تو برنامه هات از آدرس کامل فایل ها که شامل اسم درایو باشه استفاده نکن.
کد:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=DATA\DBE.mdb;Persist Security Info=False
بجای
کد:
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=E:\Personal Project\src\DATA\DBE.mdb;Persist Security Info=False


(آخرین ویرایش در این ارسال: ۲۴-مهر-۱۳۸۷, ۱۰:۱۹:۰۰، توسط mojtabamalaekeh.)
۲۴-مهر-۱۳۸۷, ۰۹:۳۹:۴۹
ارسال‌ها
پاسخ
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #7
RE: اشکال کد - زمان اشتباه
نقل قول: lngSec = Con_Time_To_Second(FormatDateTime(Adodc1.Recordset.Fields(4).Value, vbLongTime))
من واقعا نمی دونم چه جوری از شما تشکر کنم
وقعا ممنون
مشکلم حل شد
لطف بزرگی کردین ممنونم

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
۲۴-مهر-۱۳۸۷, ۱۵:۲۲:۴۲
ارسال‌ها
پاسخ
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #8
RE: اشکال کد - زمان اشتباه
با سلام مجدد
يه موردي براي همين قسمت از برنامه پيش اومد كه گفتم توي همين تاپيك بگم
به اين عكس دقت كنين
وقتي كه اون زمان توي گريد ساعت نداره مثلا 00:10:20 هستش مياد يك عدد 12 به اول ساعت اضافه مي كنه
چطوري مي تونم اين مشكل رو حل كنم
با تشكر
[تصویر:  2553rqg.jpg]

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
۰۷-آبان-۱۳۸۷, ۲۲:۲۱:۲۶
ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2635 تشکر در 730 ارسال )
ارسال: #9
RE: اشکال کد - زمان اشتباه
با سلام

فکر کنم این داره حالت نمایش رو عوض میکنه
مثلا چون شما از دیتابیس بصورت تاریخ زمان میخونین اونوهم با یک فورمت 24 ساعته نشون بدین اینشکلی :
کد:
Format(time, "HH:mm:ss")

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۰۸-آبان-۱۳۸۷, ۰۱:۱۲:۱۵
وب سایت ارسال‌ها
پاسخ
Dr.Bronx آفلاین
كاربر دو ستاره
**

ارسال‌ها: 60
موضوع‌ها: 5
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 4
( 5 تشکر در 5 ارسال )
ارسال: #10
RE: اشکال کد - زمان اشتباه
من كد رو به اين حالت تغيير دادم ولي از من خطاي Type mismatch رو ميگيره
من راه ديگه اي پيدا نكردم به اون قسمت اينو اضافه كنم
کد:
lngSec = Con_Time_To_Second(Format(Time, "HH:mm:ss")(Adodc1.Recordset.Fields(4).Value, vbLongTime))

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پیغام Bronx
۰۸-آبان-۱۳۸۷, ۰۶:۴۹:۲۹
ارسال‌ها
پاسخ
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #11
RE: اشکال کد - زمان اشتباه
خطای نحوی داره چون بین دو تا پرانتز چیزی نیست "HH:mm:ss")(Adodc1.Reco
خطای منطقی داره چون بجای زمان ثبت شده تو دیتابیس از زمان فعلی سیستم استفاده شده Format(Time, "HH
طبق کد آقای ارفعی درستش اینه:
کد:
lngSec = Con_Time_To_Second(FormatDateTime(Adodc1.Recordset.Fields(4).Value, vbLongTime))
lngSec = Format(lngSec, "HH:mm:ss")
خیلی باحال بود آقا حامد با این قطعه کد تست کردم و جواب داد.
کد:
a = #9:18:01 AM#
    b = #9:19:06 AM#
    c = b - a
    MsgBox Format(FormatDateTime(c, vbLongTime), "HH:mm:ss")


۰۸-آبان-۱۳۸۷, ۰۷:۵۲:۱۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 24,285 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  محاسبه میان چند ساعت و زمان مختلف sepahbod 5 6,496 ۰۴-تير-۱۳۹۲, ۱۶:۴۰:۴۵
آخرین ارسال: Ghoghnus
  اشکال در فراخوانی CMD davoodx 0 1,645 ۱۸-مرداد-۱۳۸۹, ۱۸:۳۶:۵۳
آخرین ارسال: davoodx
  ازافه کردن کنترل به فریم در زمان اجرا mohamadpk 3 3,600 ۱۱-اسفند-۱۳۸۸, ۰۴:۰۵:۲۸
آخرین ارسال: mohamadpk
Exclamation چطوری تو اکتیویکس light picture view در زمان اجرا عکس بگذارم . silverm 1 2,162 ۰۳-اسفند-۱۳۸۸, ۰۸:۳۶:۱۹
آخرین ارسال: toopdanlod
  نحوه ساخت فرم جدید در زمان اجرا -- مشکل حل نشده dcamera 20 21,092 ۲۵-شهریور-۱۳۸۸, ۰۰:۱۷:۰۰
آخرین ارسال: dcamera
  اشکال در فرم ویرایش بعداز دوبار کلیک بر datagird mm_ley 14 10,251 ۱۵-فروردین-۱۳۸۸, ۱۴:۳۴:۰۱
آخرین ارسال: mm_ley
  اشکال در برگردان یک کد از C++ به VB6 djfalcon2005 1 2,083 ۱۱-آبان-۱۳۸۷, ۱۹:۳۶:۴۲
آخرین ارسال: djfalcon2005
  کار با کنترل ها در زمان اجرا yeketaz 0 1,221 ۱۷-تير-۱۳۸۷, ۱۵:۰۴:۲۲
آخرین ارسال: yeketaz
  حذف شئ در زمان اجرا hamed_Arfaee 6 4,577 ۱۴-تير-۱۳۸۷, ۱۰:۵۵:۲۲
آخرین ارسال: hamed_Arfaee

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS