AccessTr.neT

Tam Versiyon: Müteselsil Sipariş Numarası Verme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5 6 7 8 9 10 11 12 13
(06/04/2020, 15:10)accessman yazdı: [ -> ]O arkadaş bırak demiş peki ben ona ne demişim hemen savunmaya geçip terslemiş miyim
ben savunmaya geçmiyorum ki, kaldı ki siz mesajlaşma panosunda "ingilizcem yeterli degil" dedigimde doğrudan bana "bu kadarcik ingilizce bilmeyen biraksin" dediniz. o zaman ne tersledim sizi ne de sorularınıza cevap yazmayı bıraktım. Uyarım kendim için de değil zaten, soru soran insanların motivasyonunu bozuyorsunuz tavrinizla. Ama tabi ki siz bu cümleyi de alıp katledeceksiniz.
Neyse üstadlarım 3 günlük dünyada üzmeyin birbirinizi.

Alternetif koları ekledim.İstenilen kadar harf girilebilir.select casede belki hata olabilir format iiçin.

Kod:
Private Sub Tsipno_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next

    Dim Hrf As String
    Dim hafizayaAl, i As Integer
    Dim kacKarakter, rakam
    Const accessKarakterSayisi = 12
    Dim fark, formatAl

    hafizayaAl = Tsipno.Value
    kacKarakter = Len(hafizayaAl)
    fark = accessKarakterSayisi - kacKarakter
    Hrf = hafizayaAl
   
    Set baglan = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")
    baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\veritabani.mdb"

    SqlMax = "SELECT Siparis_No FROM SiparisKayitlari WHERE left(Siparis_No," & Len(hafizayaAl) & ") = '" & _
    hafizayaAl & "' and IsNumeric(right(Siparis_No, " & fark & "))group by Siparis_No order by Siparis_No desc"

    rs.Open SqlMax, baglan, 1, 1
   

    Select Case fark
        Case 11: formatAl = "00000000000"
        Case 10: formatAl = "0000000000"
        Case 9: formatAl = "000000000"
        Case 8: formatAl = "00000000"
        Case 7: formatAl = "0000000"
        Case 6: formatAl = "000000"
        Case 5: formatAl = "00000"
        Case 4: formatAl = "0000"
        Case 3: formatAl = "000"
        Case 2: formatAl = "00"
        Case 1: formatAl = "0"
    End Select
   
    If rs.RecordCount > 0 Then
        For i = 1 To Len(rs(0))
            If Mid(rs(0), i, 1) > 0 And IsNumeric(Mid(rs(0), i, 1)) Then
                rakam = rakam & Mid(rs(0), i, 1)
            End If
        Next
        gecici = IIf(IsNull(rs(0)), 1, rakam + 1)
        Tsipno = Hrf & Format(gecici, formatAl)
    Else
        gecici = IIf(IsNull(rs(0)), 1, rakam + 1)
        Tsipno = Hrf & Format(gecici, formatAl)
    End If
   
    Hrf = vbNullString
    rs.Close
    baglan.Close
    Set rs = Nothing
    Set baglan = Nothing
End Sub
Sayin @kanakan52
1 - harf sayısı sabit mi değişken mi?
2 - rakam sayısı sabit mi?
3 - harf + rakam sayısı sabit mi?
(06/04/2020, 16:56)berduş yazdı: [ -> ]Sayin @kanakan52
1 - harf sayısı sabit mi değişken mi?
2 - rakam sayısı sabit mi?
3 - harf + rakam sayısı sabit mi?


Hocam selamlar,

Çözdük ya sorunu Img-grin

Yine de cevap vereyim,

Harf sayısı değişken, A olur Y olur X olur, ben karar vericem,

Sayı değişken şöyle ki

A ya basarsam veritabanındaki A ile başlayan serinin sonunun +1 ini getirecek
X e basarsam veritabanındaki X ile başlayan serinin sonunun +1 ini getirecek
Kast ettiğim AB, BZE gibi 2-3 harf olabilir mi? Eğer çözüldüyse cevaplanmışlara taşıyalım.
Hocam merhaba,

Hocam kullanır mıyım bilmiyorum, ekstra zahmet vermeyecekse onuda görmek isterim.
Sayfalar: 1 2 3 4 5 6 7 8 9 10 11 12 13