PDA

View Full Version : سوال: اشکال کد - زمان اشتباه



Dr.Bronx
یک شنبه 21 مهر 1387, 02:13 صبح
سلام
این کد رو ببینید در آخر توضیحات رو می دم

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).Valu e)
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 توی یک تکس باکس نشون می ده
حالا مشکل کجاست
زمان رو درست نشون نمی ده
http://i33.tinypic.com/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
ممنون اگه مورد دیگه ای هم بود بگین توضیح بدم
قبلا از راهنمایی شما متشکرم

Dr.Bronx
یک شنبه 21 مهر 1387, 13:07 عصر
کسی نیست کمکم کنه تو این مورد ؟
خود کد اشکال نداره اشکال در محاسبه زمان هست
فقط نمی دونم کجاش

Dr.Bronx
یک شنبه 21 مهر 1387, 13:33 عصر
من به یه چیز جالب برخوردم
من قبلا این مشکل رو با Mbt925 حل کرده بودم
و تاپیکش هم حل شده اعلام شد
برنامه ای که اونجا بود و درست کار می کرد هم توی ضمیمه گذاشتم
ولی دقیقا همون کدها همونجوری توی برنامه خودم دیگه کار نمی کنه
در صورتی که توی این برنامه کار می کنه
:متفکر::متفکر:
پس اشکال کجاست !؟؟!؟
فایل کامل و درست (http://barnamenevis.org/forum/attachment.php?attachmentid=22208&d=1219441790)
این هم تاپیک قبل
:عصبانی++:http://barnamenevis.org/forum/showthread.php?t=119157