özür dilerim soruyu yanlış yorumlamışım, galiba şimdi anladım
Limit Değerin Üzerinde Olan Verileri Sayma
sonuç tablodaki alan1'e mi kaydedilecek?
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, 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
Veriler tarih sıralı gidiyorsa sorun olmaz
Uygun bir zamanda ilgilenmeye çalışırım
Uygun bir zamanda ilgilenmeye çalışırım
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
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
Konuyu Okuyanlar: 1 Ziyaretçi