AccessTr.neT
Metin Ve Rakamlardan Seri Numarası Üretme - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Metin Ve Rakamlardan Seri Numarası Üretme (/konu-metin-ve-rakamlardan-seri-numarasi-uretme.html)

Sayfalar: 1 2


Metin Ve Rakamlardan Seri Numarası Üretme - Yunus Bozkurt - 12/06/2019

Şöyle bir şey yaptım ama "Invalid use of null " hatası alıyorum  aşağıdaki kodda yanlışlık var mı?

KYT0002 diye artarak  kayıt üretmesi lazım daha doğrusu tablonun en son kaytında ID alanında değer yoksa hata veriyor.

module

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
Function nurmaraAl(yb As String) As String
    Dim donenDeger As String
    Dim i As Integer
    donenDeger = ""
    For i = 1 To Len(yb)
        If Mid(yb, i, 1) >= "0" And Mid(yb, i, 1) <= "9" Then
            donenDeger = donenDeger + Mid(yb, i, 1)
        End If
    Next
 nurmaraAl = donenDeger
End Function



form olayı

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Form_Current()
Dim strOldID As String
    Dim lngCurrentNumber As Long
    Dim lngNextNumber As Long
    Dim strNextNumber As String
    Dim strNewID As String
    
    strOldID = DLast("[ID]", "t_Nakliyeler") 'tabloda ID Alanı boş değil
       
    lngCurrentNumber = nurmaraAl(strOldID)
    lngNextNumber = lngCurrentNumber + 1
    strNextNumber = String(4 - Len(CStr(lngNextNumber)), "0") & CStr(lngNextNumber)
    strNewID = "KYT" & strNextNumber
    Me.t_islemno = strNewID

End Sub




Cvp: Metin Ve Rakamlardan Seri Numarası Üretme - berduş - 12/06/2019

strOldID =dmax("Cint(mid([ID],4))") +1
strNewID = "KYT" & format(strOldID ,"0000")

gibi bir kodu deneseniz?


Cvp: Metin Ve Rakamlardan Seri Numarası Üretme - Yunus Bozkurt - 12/06/2019

Aynı hatayı türkçe veriyor bu sefer "Geçersiz Boş kullanımı"

  strOldID = DMax("Cint(Mid([ID],4))", "t_Nakliyeler") + 1

    strNewID = "KYT" & Format(strOldID, "0000")


Cvp: Metin Ve Rakamlardan Seri Numarası Üretme - berduş - 12/06/2019

çalışmanızı ekleyin inceleyelim.


Cvp: Metin Ve Rakamlardan Seri Numarası Üretme - berduş - 12/06/2019

en son kendi çalışmamda aşağıdaki kodu denedim çalıştı

Visual Basic Code
strOldID = DMax("Mid([dosyano],4)", "[denetim]") + 1
    strNewID = "KYT" & Format(strOldID, "0000")




Cvp: Metin Ve Rakamlardan Seri Numarası Üretme - Yunus Bozkurt - 12/06/2019

Visual Basic Code
 strNewID = "KYT" & Format(strOldID, "0000")
    strOldID = DMax("Nz([ID],0)", "t_Nakliyeler") + 1
    Debug.Print


bu şekilde type mismatch hatası veriyor


Visual Basic Code
strNewID = "KYT" & Format(strOldID, "0000")
    strOldID = DLast("Nz([ID],0)", "t_Nakliyeler") + 1
    Debug.Print


bu şelikde sadece KYT üretiyor numara vermiyor

bendeki  ilk kodu şu şekilde değiştirdim

Visual Basic Code
strOldID = DLast("[ID],0", "t_Nakliyeler") + 1

strOldID = DLast("Nz([ID],0)", "t_Nakliyeler") + 1 'yenisi