AccessTr.neT
İki kodun birleştirimesi - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: İki kodun birleştirimesi (/konu-iki-kodun-birlestirimesi.html)

Sayfalar: 1 2 3


İki kodun birleştirimesi - volkan1 - 29/04/2011

Private Sub a_Click()
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Dim DK As Long
Dim SA As Long
Set db = CurrentDb()
strSQL = "SELECT * TBL_SEYIR_SURESI"
Set rs = db.OpenRecordset(strSQL)
Me.b = 0
DK = 0
SA = 0
If rs.EOF = True Then GoTo 90
rs.MoveFirst
Do Until rs.EOF
SA = SA + Nz(Left(rs!TOPLAM_SEYIR_SURESI, 2), 0): DK = DK + Nz(Mid(rs!TOPLAM_SEYIR_SURESI, 4, 2), 0)
100
rs.MoveNext
Loop
90
Me.b = (SA + Int(DK / 60)) & ":" & (DK - (Int(DK / 60) * 60))
End Sub

 Between [Forms]![SEYIR_SURE_SORGU]![araa1] And [Forms]![SEYIR_SURE_SORGU]![araa2]

Bu iki koddan ilki hatasız saat toplamını veriyor. İkincisi ise seçilmiş tarih aralığını. Bu kodu düzenleyerek sonuçta seçilmiş tarih arallığında saat toplamı aldırabilirmiyim.Tşk.


Cvp: İki kodun birleştirimesi - ayhan2122 - 29/04/2011

Lütfen örnek ekleyiniz ...


Cvp: İki kodun birleştirimesi - volkan1 - 29/04/2011

Örneğim aşağdaki linkte 1.mesaldadır.

https://accesstr.net/konu-4-referansli-sonuc-aldirmak.html

Konu çözülmemiş olup kod düzenlemesi ile çözebilirmiyim diye 2. bir konu açtım ve kodlarımı ekledim sıkıntım konuda anlattığım gibidir.


Cvp: İki kodun birleştirimesi - ayhan2122 - 29/04/2011

Aşağıdaki kodu uygulayınız.

Kod:
Private Sub hesap_Click()
'ayhan2122
Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Dim DK As Long
Dim SA As Long
    Set db = CurrentDb()
    strSQL = "SELECT TBL_SEYIR_SURESI.* " & _
             "FROM TBL_SEYIR_SURESI " & _
             ";"

    Set rs = db.OpenRecordset(strSQL)
    Me.sonuc = 0
    DK = 0
    SA = 0
    If rs.EOF = True Then GoTo 90
    rs.MoveFirst
    Do Until rs.EOF
          
If (aysecim = 1 Or rs!AYLAR = aykutu) And _
   (unsursec = 1 Or rs!GOREV_UNSURU = unsurkutu) And _
   (gorevsec = 1 Or rs!GOREV_1 = gorevkutu) And _
   (tarıhsec = 1 Or (rs!KALKIS_TARIHI >= CDate(araa1)) And rs!KALKIS_TARIHI <= CDate(araa2)) _
Then
        SA = SA + Nz(Left(rs!GOREV_1_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_1_SURE, 4, 2), 0)
        SA = SA + Nz(Left(rs!GOREV_2_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_2_SURE, 4, 2), 0)
        SA = SA + Nz(Left(rs!GOREV_3_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_3_SURE, 4, 2), 0)
End If
100
    rs.MoveNext
    Loop
90
Me.sonuc = (SA + Int(DK / 60)) & ":" & (DK - (Int(DK / 60) * 60))
End Sub




Cvp: İki kodun birleştirimesi - volkan1 - 30/04/2011

Sayın Ayhan2122;

Kod çok güzel çalışıyor. Bu kod ile 8 tane alternatif yazma olayınıda çözmüşsünüz. Teşekkürederim.

Ancak tarih seç kısmını boş geçmiyor. Null hata veriyor. Aslında büyük bir sorun değil. Sadece alternatifi 1e 2 ye 3e düşürüp tarih aralığını kullanmazsak sıkıntı oluyor. Yani her daim tarih sec aralığını araa1 ve araa2 yi dolu tutmam gerekiyor.

Bunun bir çözümü varmıdır. Yok ise böylede kalabilir. Tekrar Teşekkürler.


Cvp: İki kodun birleştirimesi - ayhan2122 - 30/04/2011

Null durumunda hata vermemesi için aşağıdaki kodu kullanın.

Kod:
Private Sub hesap_Click()
On Error GoTo hesap_Click_HATA

Dim rs As DAO.Recordset
Dim db As Database
Dim strSQL As String
Dim DK As Long
Dim SA As Long
    Set db = CurrentDb()
    strSQL = "SELECT TBL_SEYIR_SURESI.* " & _
             "FROM TBL_SEYIR_SURESI " & _
             ";"

    Set rs = db.OpenRecordset(strSQL)
    Me.sonuc = 0
    DK = 0
    SA = 0
    If rs.EOF = True Then GoTo 90
    rs.MoveFirst
    Do Until rs.EOF
          
If (aysecim = 1 Or rs!AYLAR = aykutu) And _
   (unsursec = 1 Or rs!GOREV_UNSURU = unsurkutu) And _
   (gorevsec = 1 Or rs!GOREV_1 = gorevkutu) And _
   (tarıhsec = 1 Or (rs!KALKIS_TARIHI >= CDate(araa1)) And rs!KALKIS_TARIHI <= CDate(araa2)) _
Then
        SA = SA + Nz(Left(rs!GOREV_1_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_1_SURE, 4, 2), 0)
        SA = SA + Nz(Left(rs!GOREV_2_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_2_SURE, 4, 2), 0)
        SA = SA + Nz(Left(rs!GOREV_3_SURE, 2), 0): DK = DK + Nz(Mid(rs!GOREV_3_SURE, 4, 2), 0)
End If
100
    rs.MoveNext
    Loop
90
Me.sonuc = (SA + Int(DK / 60)) & ":" & (DK - (Int(DK / 60) * 60))
hesap_Click_CIKIS: Exit Sub
hesap_Click_HATA: MsgBox "Tarih aralıklarını belirtiniz"
                           Resume hesap_Click_CIKIS
End Sub