Limit Değerin Üzerinde Olan Verileri Sayma

1 2 3
30/09/2023, 10:59

berduş

özür dilerim soruyu yanlış yorumlamışım, galiba şimdi anladım
30/09/2023, 11:50

berduş

sonuç tablodaki alan1'e mi kaydedilecek?
30/09/2023, 13:24

berduş

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
30/09/2023, 15:20

die

(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


30/09/2023, 15:27

berduş

Veriler tarih sıralı gidiyorsa sorun olmaz
Uygun bir zamanda ilgilenmeye çalışırım
30/09/2023, 16:25

berduş

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
1 2 3