AccessTr.neT
Otomatik Artan Numaranın Başına Serı No Vermek - 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ığı: Otomatik Artan Numaranın Başına Serı No Vermek (/konu-otomatik-artan-numaranin-basina-seri-no-vermek.html)

Sayfalar: 1 2 3


Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - berduş - 21/03/2020

Biçimde tırnağı siz eklemişsiniz


Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - feraz - 21/03/2020

(21/03/2020, 13:46)Oğuz Türkyılmaz yazdı: Alanın türü önceden Metindi fakat yazılan kodun gereği eski bir kayıttaki makbuz numarası daha sonraki bir tarihde tekrar girilirse eski kaydı değiştirdiğinden bu alanı Sayıya çevirdim ve Kullanıcı aynı numarayı bir daha yanlışlıkla vermesin diye bu şekilde olmasını düşündüm. Fakat bu kodda aşağıdaki hatayı verdi Sayı alanına GM- yazdırmaya çalıştık diye sanırım.

[Resim: do.php?img=9916]

[Resim: do.php?img=9915]


Private Sub Form_Load()

Dim GelirSql As String
Dim x As Integer
Dim Gveri As Integer

GelirSql = "Select * from T_HesapHareketleri "

   GelirRS.Open GelirSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  
If GelirRS.RecordCount <> 0 Then
   GelirRS.MoveFirst
   
    AlanDoldur
End If


Dim fat As Control
   For Each fat In Me.Form.Controls
        Select Case fat.ControlType
            Case acTextBox
                fat.Value = ""
                    Case acComboBox
                        fat.Value = ""
                            Case acCheckBox
                                fat.Value = "0"
        End Select
    Next

Tarih_TXT.SetFocus


If Me.OpenArgs <> 0 Then
   
    Tarih_TXT.SetFocus
   
    GelirRS.MoveFirst
   
    For Gveri = 0 To GelirRS.RecordCount - 1

        AlanDoldur
        GelirRS.MoveNext

            If Me.MakbuzNo_TXT = Me.OpenArgs Then
                Exit For
            End If
    Next Gveri
   
'Me.KeyPreview = True

End If

Me.MakbuzNo_TXT.SetFocus
'Me.MakbuzNo_TXT = Nz(DMax("MakbuzNo", "T_HesapHareketleri"), 0) + 1
Me.MakbuzNo_TXT = "GM-" & Nz(DMax("MakbuzNo", "T_HesapHareketleri"), 0) + 1

Tarih_TXT = Date

End Sub
Başka bir konudaki ileri geri gibi tuşlarda boşların atlanması için sayın berduş hocacın eklediği where kodu eklenmemiş görüyor gözlerim.


Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - berduş - 21/03/2020

MakbuzNo_TXT =  "GM-"  & Nz(DMax("clng(mid(MakbuzNo,4))", "T_HesapHareketleri"), 0) + 1
denemedim hatalı olabilir
Not: önce tüm kayıtları silip sonra kullanmaya başlayın
MakbuzNo alan i metin olmali


Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - Oğuz Türkyılmaz - 21/03/2020

(21/03/2020, 14:57)feraz yazdı:
(21/03/2020, 13:46)Oğuz Türkyılmaz yazdı: Alanın türü önceden Metindi fakat yazılan kodun gereği eski bir kayıttaki makbuz numarası daha sonraki bir tarihde tekrar girilirse eski kaydı değiştirdiğinden bu alanı Sayıya çevirdim ve Kullanıcı aynı numarayı bir daha yanlışlıkla vermesin diye bu şekilde olmasını düşündüm. Fakat bu kodda aşağıdaki hatayı verdi Sayı alanına GM- yazdırmaya çalıştık diye sanırım.

[Resim: do.php?img=9916]

[Resim: do.php?img=9915]


Private Sub Form_Load()

Dim GelirSql As String
Dim x As Integer
Dim Gveri As Integer

GelirSql = "Select * from T_HesapHareketleri "

   GelirRS.Open GelirSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  
If GelirRS.RecordCount <> 0 Then
   GelirRS.MoveFirst
   
    AlanDoldur
End If


Dim fat As Control
   For Each fat In Me.Form.Controls
        Select Case fat.ControlType
            Case acTextBox
                fat.Value = ""
                    Case acComboBox
                        fat.Value = ""
                            Case acCheckBox
                                fat.Value = "0"
        End Select
    Next

Tarih_TXT.SetFocus


If Me.OpenArgs <> 0 Then
   
    Tarih_TXT.SetFocus
   
    GelirRS.MoveFirst
   
    For Gveri = 0 To GelirRS.RecordCount - 1

        AlanDoldur
        GelirRS.MoveNext

            If Me.MakbuzNo_TXT = Me.OpenArgs Then
                Exit For
            End If
    Next Gveri
   
'Me.KeyPreview = True

End If

Me.MakbuzNo_TXT.SetFocus
'Me.MakbuzNo_TXT = Nz(DMax("MakbuzNo", "T_HesapHareketleri"), 0) + 1
Me.MakbuzNo_TXT = "GM-" & Nz(DMax("MakbuzNo", "T_HesapHareketleri"), 0) + 1

Tarih_TXT = Date

End Sub
Başka bir konudaki ileri geri gibi tuşlarda boşların atlanması için sayın berduş hocacın eklediği where kodu eklenmemiş görüyor gözlerim.
örnek uygulama eski bir kopyadan  o yüzden yeni kodlar yok.


Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - Oğuz Türkyılmaz - 21/03/2020

(21/03/2020, 15:06)berduş yazdı:
MakbuzNo_TXT =  "GM-"  & Nz(DMax("clng(mid(MakbuzNo,4))", "T_HesapHareketleri"), 0) + 1
denemedim hatalı olabilir
Not: önce tüm kayıtları silip sonra kullanmaya başlayın
MakbuzNo alan i metin olmali

Sn.@berduş elinize sağlık şunu sormak istiyorum Kodunuzdaki  Nz(DMax("clng(mid(MakbuzNo,4)) GM- nin 4 haneye kadar değer alacağınımı belirtiyor yada çıkan sayının başına 0 ilavesi içinmi 0003, 0004 gibi tam anlamadım.

[Resim: do.php?img=9919]



Cvp: Otomatik Artan Numaranın Başına Serı No Vermek - berduş - 21/03/2020

GN- 3 hane bizim için önemli olan sayısal değer 4. karakterden başladığı için mid(ifade,4) yaptık
sorun çözüldü mü? iyice kontrol ettiniz mi