Skip to main content

AccessTr.neT


Kayıt Numarası

Kayıt Numarası

Çözüldü #1
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?
.rar DENEME-A.rar (Dosya Boyutu: 61,69 KB | İndirme Sayısı: 5)
Cevapla
#2
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.
Cevapla
#3
(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.
Cevapla
#4
(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.
Cevapla
#5
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,
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#6
Örneğinizin düzenlenmiş hali ektedir, inceleyip olumlu-olumsuz bildirimde bulununuz.
.rar sonkayit-.rar (Dosya Boyutu: 60,73 KB | İndirme Sayısı: 20)
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da