Skip to main content

AccessTr.neT


Limit Değerin Üzerinde Olan Verileri Sayma

Limit Değerin Üzerinde Olan Verileri Sayma

#7
özür dilerim soruyu yanlış yorumlamışım, galiba şimdi anladım
Cevapla
#8
sonuç tablodaki alan1'e mi kaydedilecek?
Cevapla
#9
aşağıdaki kodu dener misiniz ? doğrudan alan1 verilerini güncelliyor
Sub VeriDuzen()
t1 = Timer
Dim ADO_RS As Object
Set ADO_RS = CreateObject("adodb.recordset")

SQL = "select [veri],[Kimlik] from Table1 order by [Kimlik]"

CurrentDb.Execute ("update table1 set [Alan1]=0")
ADO_RS.Open SQL, CurrentProject.Connection, 1, 3 ', 1

With ADO_RS 'loop
If Not .BOF And Not .EOF Then
.MoveFirst
While (Not .EOF)
If .Fields(0) <= 20 Then xSay = 0 Else xSay = xSay + 1: CurrentDb.Execute ("update table1 set [Alan1]=" & xSay & " where [Kimlik]=" & .Fields(1)) ' .Fields(1) = xSay
.MoveNext
Wend
End If
End With
Debug.Print Timer - t1
End Sub
Cevapla
#10
(30/09/2023, 13:24)berduş yazdı: aşağıdaki kodu dener misiniz ? doğrudan alan1 verilerini güncelliyor
Sub VeriDuzen()
t1 = Timer
Dim ADO_RS As Object
Set ADO_RS = CreateObject("adodb.recordset")

SQL = "select [veri],[Kimlik] from Table1 order by [Kimlik]"

CurrentDb.Execute ("update table1 set [Alan1]=0")
ADO_RS.Open SQL, CurrentProject.Connection, 1, 3 ', 1

    With ADO_RS 'loop
    If Not .BOF And Not .EOF Then
            .MoveFirst
            While (Not .EOF)
                If .Fields(0) <= 20 Then xSay = 0 Else xSay = xSay + 1: CurrentDb.Execute ("update table1 set [Alan1]=" & xSay & " where [Kimlik]=" & .Fields(1)) ' .Fields(1) = xSay
            .MoveNext
            Wend
    End If
    End With
    Debug.Print Timer - t1
End Sub

Hocam çok teşekkür ederim sayıyor fakat gün değişince saymasını yeniden başlatabilir misiniz? aşağıdaki gibi

[Resim: do.php?img=15397]
Cevapla
#11
Veriler tarih sıralı gidiyorsa sorun olmaz
Uygun bir zamanda ilgilenmeye çalışırım
Cevapla
#12
kodu aşağıdaki gibi düzenleyip dener misiniz?
Not: tarih alanlarında veri olduğu ve sıralı gittiği varsayılmıştır
Sub VeriDuzen()
t1 = Timer
Dim ADO_RS As Object
Set ADO_RS = CreateObject("adodb.recordset")

SQL = "select [veri],[Kimlik],[Tarih] from Table1 order by [Kimlik]"

CurrentDb.Execute ("update table1 set [Alan1]=0")
ADO_RS.Open SQL, CurrentProject.Connection, 1, 3 ', 1

With ADO_RS 'loop
If Not .BOF And Not .EOF Then
.MoveFirst
xSay = 0
xTrh = Int(.Fields(2))
While (Not .EOF)
If xTrh <> Int(.Fields(2)) Then xSay = 0: xTrh = Int(.Fields(2))
If .Fields(0) <= 20 Then xSay = 0 Else xSay = xSay + 1: CurrentDb.Execute ("update table1 set [Alan1]=" & xSay & " where [Kimlik]=" & .Fields(1)) ' .Fields(1) = xSay
.MoveNext
Wend
End If
End With
Debug.Print Timer - t1
End Sub
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task