Skip to main content

AccessTr.neT


Satır Ve Sütun Koşullu Değerlendirme

Satır Ve Sütun Koşullu Değerlendirme

#7
aşağıdaki kodu dener misiniz?
Dim GSayi As Integer
Dim GTarih As Date

For GSayi = 1 To 30
GTarih = DateAdd("d", GSayi - 1, DateSerial(Year(Date), 7, 1))
CurrentDb.Execute "update tbl_PERSONEL set Tarih" & GSayi & "= '' " 'where SICILNO=" & rs(0)
Controls("Tarih" & GSayi & "_Etiket").Caption = Format(GTarih, "dd mmm")
Next GSayi

' Exit Sub
Dim rs As ADODB.Recordset

Set db = CurrentDb
Set rs = New ADODB.Recordset 'db.OpenRecordset("tbl_IZINLER") 'myTable is a MS-Access table created previously
txtSQL = "SELECT SICILNO, IZINBASLANGICTARIHI, IZINBITISTARIHI " & _
"FROM tbl_IZINLER order by SICILNO;"
rs.Open txtSQL, CurrentProject.Connection, 3, 1

'populate the table
rs.MoveLast
rs.MoveFirst
'Debug.Print rs.Fields.Count
Do While Not rs.EOF
' Debug.Print (rs(0)) 'myField is a field name in table myTable
For GSayi = 1 To 30
GTarih = DateAdd("d", GSayi - 1, DateSerial(Year(Date), 7, 1))
If GTarih >= rs(1) And GTarih <= rs(2) Then CurrentDb.Execute "update tbl_PERSONEL set Tarih" & GSayi & "='X' where SICILNO=" & rs(0)
Next GSayi
rs.MoveNext
Loop
Cevapla
#8
Çok teşekkür ederim.

Harika çözüm.
temre, 18-02-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#9
Bende başka türlü yapmıştım.Tarihler vs.. otomatik geliyordu işinize yarar belki.
Ama mausun tekerleğini oynatınca formdaki id felan değişiyor ama kodlara çalışmıyor aramada ve alttaki kayıtlara gitmelere tıklayınca kod çalışıyor.

[Resim: do.php?img=11113]
https://resim.accesstr.net/do.php?img=11113

Private Sub Form_Current()
    Dim basTarih, bitisTarih, i As Byte, fark As Integer

    If Me.ID = "" Or IsNull(ID) Then Exit Sub
    If Me.ID = DLast("ID", "tbl_PERSONEL") Then Exit Sub
    If IsNull(Me.SICILNO.Value) Or Me.SICILNO.Value = "" Then GoTo son

    basTarih = Dlookup ("IZINBASLANGICTARIHI", "tbl_IZINLER", "[SICILNO]=" & Me.SICILNO.Value)
    bitisTarih = Dlookup ("IZINBITISTARIHI", "tbl_IZINLER", "[SICILNO]=" & Me.SICILNO.Value)
   
    If IsNull(basTarih) Or basTarih = "" Then GoTo son
    If IsNull(bitisTarih) Or bitisTarih = "" Then GoTo son
    fark = CLng(bitisTarih) + 1 - CLng(basTarih)

    For i = 1 To 30
        Controls("Tarih" & i & "_Etiket").Caption = basTarih - 1 + i
        Controls("Tarih" & i).Value = "X"
        If i = fark Then Exit For
    Next
   
    For i = i To 30
        Controls("Tarih" & i & "_Etiket").Caption = basTarih - 1 + i
    Next
    Exit Sub
son:
    For i = 1 To 30
        Controls("Tarih" & i & "_Etiket").Caption = Empty
        Controls("Tarih" & i).Value = Empty
    Next

End Sub

Private Sub txtsicilNo_Change()
    Dim say As Integer, rs As Object
    say = DCount("[SICILNO]", "tbl_PERSONEL", "[SICILNO]=" & Val(txtsicilNo.Text))
   
    If say > 0 Then
        Set rs = Me.Recordset.Clone
         rs.FindFirst "[SICILNO] = " & Val(Me.txtsicilNo.Text) & ""
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End If
    Set rs = Nothing
End Sub
.rar Satır ve Sütun Kontrollü Değerlendirme.rar (Dosya Boyutu: 36,47 KB | İndirme Sayısı: 2)
Cevapla
#10
(27/06/2021, 01:35)feraz yazdı: Bende başka türlü yapmıştım.Tarihler vs.. otomatik geliyordu işinize yarar belki.

[Resim: do.php?img=11113]
https://resim.accesstr.net/do.php?img=11113

Private Sub Form_Current()
    Dim basTarih, bitisTarih, i As Byte, fark As Integer

    If Me.ID = "" Or IsNull(ID) Then Exit Sub
    If Me.ID = DLast("ID", "tbl_PERSONEL") Then Exit Sub
    If IsNull(Me.SICILNO.Value) Or Me.SICILNO.Value = "" Then GoTo son

    basTarih = Dlookup ("IZINBASLANGICTARIHI", "tbl_IZINLER", "[SICILNO]=" & Me.SICILNO.Value)
    bitisTarih = Dlookup ("IZINBITISTARIHI", "tbl_IZINLER", "[SICILNO]=" & Me.SICILNO.Value)
   
    If IsNull(basTarih) Or basTarih = "" Then GoTo son
    If IsNull(bitisTarih) Or bitisTarih = "" Then GoTo son
    fark = CLng(bitisTarih) + 1 - CLng(basTarih)

    For i = 1 To 30
        Controls("Tarih" & i & "_Etiket").Caption = basTarih - 1 + i
        Controls("Tarih" & i).Value = "X"
        If i = fark Then Exit For
    Next
   
    For i = i To 30
        Controls("Tarih" & i & "_Etiket").Caption = basTarih - 1 + i
    Next
    Exit Sub
son:
    For i = 1 To 30
        Controls("Tarih" & i & "_Etiket").Caption = Empty
        Controls("Tarih" & i).Value = Empty
    Next

End Sub

Private Sub txtsicilNo_Change()
    Dim say As Integer, rs As Object
    say = DCount("[SICILNO]", "tbl_PERSONEL", "[SICILNO]=" & Val(txtsicilNo.Text))
   
    If say > 0 Then
        Set rs = Me.Recordset.Clone
         rs.FindFirst "[SICILNO] = " & Val(Me.txtsicilNo.Text) & ""
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End If
    Set rs = Nothing
End Sub

Teşekkür ederim Sn.feraz

Örneğinizden faydalanacağım.

Saygılar.
temre, 18-02-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#11
Rica ederiz abey.Kolay gelsin.
Cevapla
#12
Rica ederim
Iyi çalışmalar
Not: çalışmada önce personel tablosundaki tüm izin tarihleri siliniyor, istenirse sadece belirli bir doneminki de silinebilir.
Not2: siz doğrudan 30 gün için ayarlamışsınız ama aya gore 28-31 arası olması gerekmez mi?
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task