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.