Otomatik Numara Verme Hatası

09/02/2016, 18:39

Allback

Merhaba,

Yaptığım işte standart adlandırma işleminin bir sistematiği var.

Bir standart iş standardı ise "G-[BölümAdı]", video standardı ise "V-[BölümAdı]", İşletme talimatı ise "KE-" diye başlıyor. (Örnek ben kalıp ekipman bölümünde olduğumdan yeni iş standardı yazarsam baş tarafı "G-Kalıp" oluyor.)

Standart hangi işle ilgili ise o işe tanımlı numara devamına ekleniyor (Mesela kalıp hazırlama işi diyelim tanımlı numarası da 2 olsun "G-Kalıp-2" oluyor.

Devamında 4 basamaklı bir numara daha geliyor. Bu da yapılan işin türünü belirtiyor. İş güvenliği ise 1, kalite ise 2, Problemlere Müdahale ise 3, operasyon ise 4 ile başlıyor (7'ye kadar gidiyor). Örneğin operasyon standardı olsun. 
"G-Kalıp-2-4001" oluyor. Kalıp hazırlama ile ilgili yeni bir operasyon standardı yazılırsa bu sondaki 4 basamaklı sayı 1 arttırılıyor. Örn: "G-Kalıp-2-4002" oluyor.

Şimdi sorum şu;

Daha önce sn.ozanakkaya'nın yardımlarıyla, formdaki seçtiğim kriterlere göre standart numarasını sistemin otomatik olarak vermesini sağlamıştık. 


Bugün farkettim ki, standart türü olarak "İŞ STANDARDI"nı seçersem ve kayıt ilk kez oluşuyorsa problem yok ama daha önce olan kayda "1" eklemesi gerekirken eklemeyi hatalı yapıyor.
Yani G-Kalıp-2-4006 nolu kayıt var diyelim. Sistemin yeni standart numarasını G-Kalıp-2-4007 yazması gerekirken 
G-Kalıp-2-7 yazıyor. 

"VİDEO STANDARDI" ve "İŞLETME TALİMATI" seçtiğimde hiçbir sorun olmuyor. Hatasız çalışıyor...

Yardımcı olursanız çok sevinirim.
09/02/2016, 21:19

ozanakkaya

Merhaba,
video ve işletme ile ilgili kısımda sıkıntı var mı bilmiyorum, siranohesapla kodunu aşağıdaki ile değiştirerek deneyiniz.



Sub SiraNoHesapla()


Dim STuru As String
'Dim SKlasoru As String
Dim SSonNo, SSnifi As Integer


If Me.std_türü = "İŞ STANDARDI" Then
    STuru = "G-"
ElseIf std_türü = "VİDEO STANDARDI" Then
    STuru = "V-"
ElseIf std_türü = "İŞLETME TALİMATI" Then
    STuru = (bolum_adi) & "-"
End If

Select Case Me.klasor_no
    Case "1"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "2"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "3"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "4"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "5"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "6"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "7"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "8"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "9"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "10"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "11"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "12"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "13"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "14"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "15"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "16"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "17"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "18"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "19"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
    Case "20"
        SKlasoru = (bolum_adi) & "-" & Me.klasor_no
End Select

SSonNo = Format(SSonNo, "0000")

If Me.std_türü = "İŞ STANDARDI" Then
    If Not IsNull(Me.std_türü) And Not IsNull(Me.std_klasörü) And Me.std_klasörü <> "" And Not IsNull(std_sinifi) And Me.std_sinifi <> "" Then
        Me.Metin41 = STuru & SKlasoru & "-" & Nz(Left(Me.std_sinifi, 1), 0)
        Recalc
        SSonNo = Nz(Left(Me.std_sinifi, 1), 0) & Format(Nz(DMax("[son_no]", "srg_siranobul"), 0) + 1, "000")
        Me.std_no = STuru & SKlasoru & "-" & SSonNo
    End If
ElseIf std_türü = "VİDEO STANDARDI" Then
    If Not IsNull(Me.std_türü) And Not IsNull(Me.std_klasörü) And Me.std_klasörü <> "" Then
        Me.Metin41 = STuru & SKlasoru
        SSonNo = Format(Nz(DMax("[son_no]", "srg_siranobul"), 0) + 1, "000")
        Me.std_no = STuru & SKlasoru & SSonNo
    End If
ElseIf std_türü = "İŞLETME TALİMATI" Then
    SSonNo = Nz(DMax("[son_no]", "srg_siranobul"), 0)
    Me.Metin41 = STuru
    Me.std_no = STuru & SSonNo & "0000" + 1
End If

End Sub
10/02/2016, 09:03

Allback

(09/02/2016, 21:19)ozanakkaya yazdı: Merhaba,
video ve işletme ile ilgili kısımda sıkıntı var mı bilmiyorum, siranohesapla kodunu aşağıdaki ile değiştirerek deneyiniz.
Teşekkür ederim Ozan Bey,
 Sorunsuz şekilde çalışıyor.