AccessTr.neT

Tam Versiyon: Kayıt Numarası
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba;

kayıt numarasını toplam kayıt sayısını bulup, üzerine +1 ekleyerek KayitNo bolumune giriş yapıyorum.

fakat benim istediğim KayıtNo bolumundeki en son kayıt numarasına (LKMS18-0500024) +1 ekleyip , yeni kayıt numarası verdirmek.
yani demek istediğim aradan herhangi bir kayıt silindiğinde , yeni kayıt numarası bundan etkilenmeden son kayıt numarasına göre devam etmesi.

nasıl yapabiliriz?
Sayın sidd, 

Sorunuza çözüm bulmak adına hazırladığım kod için yaklaşık 30 dakika uğraştım.
Lütfen sizde uğraşıp örnek uygulamanızdaki verileri copy-paste yaparak hazırlamayın, örnek uygulamanızdaki veriler tutarlı olsun, atanacak sayı birbirinden farklı olmalı ancak örnek uygulamanızda aynı kayıt no birden fazla defa kullanılmış.


cboFirmaTipi açılan kutusunun güncelleştirme sonrasında olayına aşağıdaki kodu ekle,

Dim SQL1 As String
Dim rs As Recordset
Dim GKayit, GDizi, GSayi As Integer
Dim GKFirmaTipi, GSonSayimiz As String
                       
SQL1 = "SELECT KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1) AS GFir, Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') AS GKNo FROM tblKayitlar GROUP BY KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1), Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') ORDER BY Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000');"
                 
Set rs = CurrentDb.OpenRecordset(SQL1)

If rs.RecordCount > 0 Then

   Do Until rs.EOF = True
   
       If rs!FirmaTipi = Me.cboFirmaTipi Then
       GSonSayimiz = rs!GKNo
       End If
   rs.MoveNext
   Loop
   
Else

GSonSayimiz = 0

End If

Select Case Me.cboFirmaTipi
   
       Case 1
           GKFirmaTipi = "LKMS"
       Case 2
           GKFirmaTipi = "YBMS"
       Case 3
           GKFirmaTipi = "ACNT"
   
   End Select

Me.txtKayitNo = GKFirmaTipi & Mid(Year(Date), 3, 2) & "-" & Format(GSonSayimiz + 1, "0000000")


Kaydet butonundaki

Me.txtKayitNo = FirmaTipId & yil & "-" & ay & Format(KayitSayi, "0####")

Kodunu sil.
(23/05/2018, 16:27)ozanakkaya yazdı: [ -> ]Sayın sidd, 

Sorunuza çözüm bulmak adına hazırladığım kod için yaklaşık 30 dakika uğraştım.
Lütfen sizde uğraşıp örnek uygulamanızdaki verileri copy-paste yaparak hazırlamayın, örnek uygulamanızdaki veriler tutarlı olsun, atanacak sayı birbirinden farklı olmalı ancak örnek uygulamanızda aynı kayıt no birden fazla defa kullanılmış.


cboFirmaTipi açılan kutusunun güncelleştirme sonrasında olayına aşağıdaki kodu ekle,

Dim SQL1 As String
Dim rs As Recordset
Dim GKayit, GDizi, GSayi As Integer
Dim GKFirmaTipi, GSonSayimiz As String
                       
SQL1 = "SELECT KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1) AS GFir, Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') AS GKNo FROM tblKayitlar GROUP BY KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1), Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') ORDER BY Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000');"
                 
Set rs = CurrentDb.OpenRecordset(SQL1)

If rs.RecordCount > 0 Then

   Do Until rs.EOF = True
   
       If rs!FirmaTipi = Me.cboFirmaTipi Then
       GSonSayimiz = rs!GKNo
       End If
   rs.MoveNext
   Loop
   
Else

GSonSayimiz = 0

End If

Select Case Me.cboFirmaTipi
   
       Case 1
           GKFirmaTipi = "LKMS"
       Case 2
           GKFirmaTipi = "YBMS"
       Case 3
           GKFirmaTipi = "ACNT"
   
   End Select

Me.txtKayitNo = GKFirmaTipi & Mid(Year(Date), 3, 2) & "-" & Format(GSonSayimiz + 1, "0000000")


Kaydet butonundaki

Me.txtKayitNo = FirmaTipId & yil & "-" & ay & Format(KayitSayi, "0####")

Kodunu sil.
Çok teşekkürler Ozan Bey, emeğinize vaktinize sağlık.
haklısınız ogrenmek için gelişigüzel yazılmıs bir örnekti, numaraları sırasıyla düzenledim.
verdiğiniz kodlar işe yaradı, tekrar çok teşekkürler.
(23/05/2018, 16:52)sidd yazdı: [ -> ]
(23/05/2018, 16:27)ozanakkaya yazdı: [ -> ]Sayın sidd, 

Sorunuza çözüm bulmak adına hazırladığım kod için yaklaşık 30 dakika uğraştım.
Lütfen sizde uğraşıp örnek uygulamanızdaki verileri copy-paste yaparak hazırlamayın, örnek uygulamanızdaki veriler tutarlı olsun, atanacak sayı birbirinden farklı olmalı ancak örnek uygulamanızda aynı kayıt no birden fazla defa kullanılmış.


cboFirmaTipi açılan kutusunun güncelleştirme sonrasında olayına aşağıdaki kodu ekle,

Dim SQL1 As String
Dim rs As Recordset
Dim GKayit, GDizi, GSayi As Integer
Dim GKFirmaTipi, GSonSayimiz As String
                       
SQL1 = "SELECT KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1) AS GFir, Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') AS GKNo FROM tblKayitlar GROUP BY KayitNo, FirmaTipi, Left([KayitNo],InStr(1,[KayitNo],'-')-1), Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000') ORDER BY Format(Mid([KayitNo],InStr(1,[KayitNo],'-')+1),'0000000');"
                 
Set rs = CurrentDb.OpenRecordset(SQL1)

If rs.RecordCount > 0 Then

   Do Until rs.EOF = True
   
       If rs!FirmaTipi = Me.cboFirmaTipi Then
       GSonSayimiz = rs!GKNo
       End If
   rs.MoveNext
   Loop
   
Else

GSonSayimiz = 0

End If

Select Case Me.cboFirmaTipi
   
       Case 1
           GKFirmaTipi = "LKMS"
       Case 2
           GKFirmaTipi = "YBMS"
       Case 3
           GKFirmaTipi = "ACNT"
   
   End Select

Me.txtKayitNo = GKFirmaTipi & Mid(Year(Date), 3, 2) & "-" & Format(GSonSayimiz + 1, "0000000")


Kaydet butonundaki

Me.txtKayitNo = FirmaTipId & yil & "-" & ay & Format(KayitSayi, "0####")

Kodunu sil.
Çok teşekkürler Ozan Bey, emeğinize vaktinize sağlık.
haklısınız ogrenmek için gelişigüzel yazılmıs bir örnekti, numaraları sırasıyla düzenledim.
verdiğiniz kodlar işe yaradı, tekrar çok teşekkürler.

Ozan Bey, numalarndırma ACNT da farklı, LKMS de farklı, YBMS de farklı oluyor, orneğin 5 tane ACNT varsa, yeni kayıda 6 noyu veriyor,  10 tane LKMS varsa, yeni kayıda 11 noyu veriyor , ben genel olarak son rakamı vermesini istiyorum.
yani toplam 24 kayıt varsa, 25.noyu versin, hangi kodla basladığı onemli olmasın, onu nasıl yaparız.
birde eklenen örneklere, örnek, deneme, deneme1, deneme2, denem son, deneme önceki  gibi kelimeler yazmak yerine, konunun içeri ile alakalı birşeyler yazılsa daha iyi olur. mesela örneğinizin ismi de kayıt numarası olabilirdi,
Örneğinizin düzenlenmiş hali ektedir, inceleyip olumlu-olumsuz bildirimde bulununuz.