Skip to main content

AccessTr.neT


Fonksiyonda İki Kritere Göre Düzeltme

Fonksiyonda İki Kritere Göre Düzeltme

Çözüldü #1
Kod:
Public Function NobetHaftaIciSonu(kimo, Zaman As Long, Hangi As String) As Integer
Dim Veri As New ADODB.Recordset, Sayac, Hft(1), Hane As Long
Veri.Open "SELECT TblNobet.* FROM TblNobet " & _
"WHERE (((TblNobet.OgretmenId)=" & kimo & ") AND ((Format(" & IIf(CLng(Right(Zaman, 2)) > 0, "[donem],'yyyymm'", "[donem],'yyyy'") & "))=" & IIf(CLng(Right(Zaman, 2)) > 0, Zaman, Left(Zaman, 4)) & ")) Order By [donem]", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
If CLng(Right(Zaman, 2)) = 0 Then Debug.Print Veri.Source
If Veri.RecordCount = 0 Then Exit Function
Do Until Veri.EOF
    For Sayac = 1 To 31
        If Veri("G" & Sayac) = "N" Then
            Hane = IIf(Eval(Weekday(DateSerial(Left(Zaman, 4), Right(Zaman, 2), Sayac), vbMonday) & " In (5,6,7)"), 1, 0)
            Hft(Hane) = Hft(Hane) + 1
        End If
    Next Sayac
Sayac = 1
Veri.MoveNext
Loop
Veri.Close
Set Veri = Nothing
NobetHaftaIciSonu = Hft(IIf(Hangi = "N", 0, 1))
End Function


Kod:
If Veri("G" & Sayac) = "N" Then
burada N harfine göre veri araması yapıyor; peki hem "N" hemde "B" için nasıl bir düzenleme olması gerekir.

Kod:
If Veri("G" & Sayac) = "N"  or "B" Then
yazdım ama hata alıyorum.
Cevapla
#2
If Veri("G" & Sayac) = "N" or Veri("G" & Sayac) ="B" Then
Cevapla
#3
Teşekkür ederim Sayın Hocam. Konu çözüldü. Kod çalıştı.
Cevapla
#4
burada eval() fonksiyonunu da kullanabilirdiniz onu neden kullanmadınız? mesajınızdaki kodda kullanmışsınız:
Hane = IIf(Eval(Weekday(DateSerial(Left(Zaman, 4), Right(Zaman, 2), Sayac), vbMonday) & " In (5,6,7)"), 1, 0)

If Eval("'" & Veri("G" & Sayac) & "' in (""N"",""B"")") Then
gibi
Cevapla
#5
Hocam bu kodlar sizin kodlar idi, ben revize ederek çalışmamda kullanıyorum. Siz de taktir edersiniz ki o kadar ileri düzeyde değilimImg-grin
Cevapla
#6
siz de ben de 2014 yılında başlamışız ve bu işin eğitimini almamışız yani sorun düzeyde değil amaçta gibime geliyor
öğrenmeye yada anlamaya çalışmıyorsunuz gibime geliyor
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task