Skip to main content

AccessTr.neT


do while loop kullanılışı

do while loop kullanılışı

Çözüldü #4
yaptığım veritabanında yıl sonunda izin birleştirmesi için kullandım bu kodları.
Kod:
'Kayıt Aktarılacak Personel Sicillerini Alacağız

Dim dbsizinaktar As DAO.Database
Dim rstizinaktar As DAO.Recordset
Dim dbpathizinaktar As String

dbpathizinaktar = DLookup("yol", "yol")
Set dbsizinaktar = DBEngine.OpenDatabase(dbpathizinaktar)
Set rstizinaktar = dbsizinaktar.OpenRecordset("SELECT * FROM anatablo WHERE ((anatablo.GörevDurumu)='" & "GÖREVE BAŞLADI')")

With rstizinaktar
.MoveLast
.MoveFirst

Do While Not .EOF
'siciller sıralanıyor

Dim rstizinaktar1 As DAO.Recordset
Dim izin As Integer
izin = 0

' Kullandığı İzinler Hesaplanıyor
Set rstizinaktar1 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin WHERE (Izin.Sicili)=" & !Sicili)

If rstizinaktar1.RecordCount <> 0 Then
    With rstizinaktar1
    .MoveLast
    .MoveFirst
    Do While Not .EOF
    izin = izin + !KullandigiIzin
    
    
    .MoveNext
    Loop
    .Close
    End With
End If

'Hakettiği İzinler Hesaplanıyor

Dim rstizinaktar2 As DAO.Recordset

Dim izinhak As Integer
izinhak = 0

Set rstizinaktar2 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin WHERE (Izin.Sicili)=" & !Sicili)

If rstizinaktar2.RecordCount <> 0 Then
    With rstizinaktar2
    .MoveLast
    .MoveFirst
    Do While Not .EOF
    izinhak = izinhak + !HakettigiIzin
      
    
    .MoveNext
    Loop
    .Close
    End With
End If

'Yıllık İzin Girişi Yapılıyor

Dim rstizinaktar3 As DAO.Recordset
Set rstizinaktar3 = dbsizinaktar.OpenRecordset("SELECT * FROM Izin ")

    rstizinaktar3.AddNew
    rstizinaktar3!Sicili = !Sicili
    rstizinaktar3!Adi = !Adi
    rstizinaktar3!Soyadi = !Soyadi
    rstizinaktar3!GörevYeri = !GörevYeri
    rstizinaktar3!SubeBüro = !SubeBüro
    rstizinaktar3!IzinYili = Year(Date)
    rstizinaktar3!IzinTürü = "YILLIK İZİN GİRİŞİ"
    rstizinaktar3!BaslamaTarihi = Date
    'Toplam İzin hakkı - kullandığı izin hakkı yıllık izin hakkından büyükse
    If (izinhak - izin) > !YillikIzinGunu Then
    'yıllık izin hakkı olarak kalan izninden yıllık izin hakkını çıkarıyoruz
    rstizinaktar3!HakettigiIzin = (!YillikIzinGunu * 2) - (izinhak - izin)
    rstizinaktar3!Açiklama = "Yıllık İzin Hakkından Geçen Yılın Fazlalık İzni Düşülmüştür"
  
    Else
    'değilse normal izin hakkını giriyoruz
    rstizinaktar3!HakettigiIzin = !YillikIzinGunu
    End If
     rstizinaktar3!Onay = -1
    rstizinaktar3.Update
    rstizinaktar3.Close
    
.MoveNext
Next I
Loop

.Close
End With
dbsizinaktar.Close

İyiki Varsın Access Img-grin
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
do while loop kullanılışı - Yazar: accessman - 22/03/2009, 16:15
Cvp: do while loop kullanılışı - Yazar: okileturc - 22/03/2009, 16:29
Cvp: do while loop kullanılışı - Yazar: accessman - 23/03/2009, 00:29
Cvp: do while loop kullanılışı - Yazar: Nurullah_Serdar - 23/03/2009, 09:40
Cvp: do while loop kullanılışı - Yazar: Krizantem - 23/03/2009, 09:53
Task