09/08/2021, 21:11
eksik sayıyı sıra olarak atama
09/08/2021, 21:39
lemoncher2
(09/08/2021, 21:11)berduş yazdı: Her yeni kayıda yılın eklenmesi yeterli olur bence ama eski kayıtlar için de yıl güncellemesi gerekecek 1 defa yıl güncellemesi yapıldıktan sonra yeni kayıtlarda bu sorun olmaz.
Eski kayıtların yıl güncellenmesi de yapılmaması gerekiyor ama hangi yıl olarak kaydedilmişse o şekilde kalması gerekmekte
09/08/2021, 22:05
berduş
kast ettiğim o değil yanılmıyorsam dosyanızdaki tabloda yer alan kayıtların henüz yıl alanı yok yıl alanı olmayan eski kayıtlar için bir defaya mahsus olarak düşünmüştüm ama dosyanızın son halini ekleyin ona göre bir çözüm bulmaya çalışırız kodda sadece recordseti tanımlarken bu yılın kayıtlarını çağırırsak sorun çıkmaz diye düşünüyorum
konunuz tekrar sorulara taşınmıştır
dosyanızı ekleyebilirsiniz.
konunuz tekrar sorulara taşınmıştır
dosyanızı ekleyebilirsiniz.
09/08/2021, 22:06
lemoncher2
(09/08/2021, 22:05)berduş yazdı: kast ettiğim o değil yanılmıyorsam dosyanızdaki tabloda yer alan kayıtların henüz yıl alanı yok yıl alanı olmayan eski kayıtlar için bir defaya mahsus olarak düşünmüştüm ama dosyanızın son halini ekleyin ona göre bir çözüm bulmaya çalışırız kodda sadece recordseti tanımlarken bu yılın kayıtlarını çağırırsak sorun çıkmaz diye düşünüyorum
Sizin çalışmanıza bahsettiğim şekilde bir ekleme yaptım. Yeni Kayıt Butonuna tıklayıp deneyebilirmisiniz.
09/08/2021, 23:24
berduş
tarihi 'Format(Date, "yyyy") yerine aşağıdaki gibi de ekleyebilirsiniz aynı şey
Me.Metin481 = Year(Date)
modül kodunu aşağıdaki gibi düzenleyip dener misiniz?
Me.Metin481 = Year(Date)
modül kodunu aşağıdaki gibi düzenleyip dener misiniz?
Function Yok() As Long
Dim Kayit As Recordset, Sayac As Long
Set Kayit = CurrentDb.OpenRecordset("Select Rapor_No_Dosya from Tablo1 where (Rapor_No_Dosya)>0 and [Rapor_Yili]=" & Year(Date) & " order by Rapor_No_Dosya") '<== değişen
If Kayit.RecordCount = 0 Then Yok = 1: Exit Function
Kayit.MoveFirst
Sayac = 0
Do Until Kayit.EOF
Sayac = Sayac + 1
If Sayac <> Nz(Kayit(0), 0) Then Yok = Sayac: Exit Do
Kayit.MoveNext
Loop
If Yok = 0 Then Yok = Kayit.RecordCount + 1 '<==eklenen
Kayit.Close: Set Kayit = Nothing
End Function
09/08/2021, 23:35
lemoncher2
(09/08/2021, 23:35)lemoncher2 yazdı: [quote="berduş" pid="181683" dateline="1628540679"]
tarihi 'Format(Date, "yyyy") yerine aşağıdaki gibi de ekleyebilirsiniz aynı şey
Me.Metin481 = Year(Date)
modül kodunu aşağıdaki gibi düzenleyip dener misiniz?
Function Yok() As Long
Dim Kayit As Recordset, Sayac As Long
Set Kayit = CurrentDb.OpenRecordset("Select Rapor_No_Dosya from Tablo1 where (Rapor_No_Dosya)>0 and [Rapor_Yili]=" & Year(Date) & " order by Rapor_No_Dosya") '<== değişen
If Kayit.RecordCount = 0 Then Yok = 1: Exit Function
Kayit.MoveFirst
Sayac = 0
Do Until Kayit.EOF
Sayac = Sayac + 1
If Sayac <> Nz(Kayit(0), 0) Then Yok = Sayac: Exit Do
Kayit.MoveNext
Loop
If Yok = 0 Then Yok = Kayit.RecordCount + 1 '<==eklenen
Kayit.Close: Set Kayit = Nothing
End Function
Sanırım çalışıyor şuan hocam elinize sağlık bilgisayarın tarihini değiştirmek suretiyle deneyebilirim sanırım
kaydet butonunda If Nz(Me.Rapor_No_Dosya, 0) = 0 Then Me.Rapor_No_Dosya = Yok bu kodu kullanıyorum
Şimdi denedim de rapor_No_Dosya sayılarını aynı sayılar olacak şekilde veriyor.
Tablo1 deki tüm kayıtları sildim. Form üzerinden 6 adet kayıt ekledim. Tablo1 üzerinden 3. kaydı sildim. Form üzerinden 6. kaydı seçip değiştir diyip tekrar işlem yapmadan kaydet dediğimde eksik sayıyı sıra olarak atamadı