Skip to main content

AccessTr.neT


Sıra Numarası Verme İşlemi Nasıl Yapılmadı

Sıra Numarası Verme İşlemi Nasıl Yapılmadı

#3
Demekki.yeni olay otomatik sayı almıyor
200418003 sayısı yerine hangisi olması gerek sizce

201418003

200419003

200418004
Benzersiz sayı üretimini takip eden Otomatik sayı alanı değil mi
Alan veri türü o olmadığına göre siz takip edeceksiniz  sorular şunlar
*Yeni numara kaç olmalı ?
*Hali hazırda bu numara var mı ?
*Bu yok ama başka tablolarda bunun ile ilişkili kayıt var mı

Bu üç sorudan hangisine cevap buladıysanız onun üzerine odaklanmak lazım
Kod:
Me.txtolay_sıra_no = Format(Date, "yymmdd") & DLookup("yeniolay", "Srg_Olay_Sayisi")
bu kod satırı ile Access yeni numaranın 
200418004
Olması gerektiğini nasıl anlayabilir

Siz ona 
tablodaki kaydı tarihin sonuna ekle
Gibi birşeyler diyorsunuz (+1) bile demezseniz o ne yapsın
Kod:
Msgbox DLookup("yeniolay", "Srg_Olay_Sayisi")
bu satır ile 004 sayısını alabiliyor musunuz
Kod:
Mid([olay_no],7,11)
ile 7 rakamdan itibaren 11 hane al demek
Eğer 00000 böyle olacak ise
Kod:
Mid([olay_no],7, 5)
olmalı değil mi
Kod:
Format(Mid([olay_no],7,11)+1,"00000")
satırını kullanarak
Kod:
004
Elde edeceksiniz. 
Kod:
Format(Mid([olay_no],7,3)+1,"000")
olması gerekmiyor mu

Kod:
Mid([olay_no],7,3)
bunun sayı olduğu kesin mi
Kod:
İf(isNumeric(Mid([olay_no],7,3))) Then

Kod:
Dim arti_bir as Integer
arti_bir = Cint(Mid([olay_no],7,3))+1


Falan filan gibi şeyler ile 
Kod:
004
Elde edebiliyorsanız tarih ile birleştirebilirsiniz
Kod:
SELECT TOP 1 tbl_disiplinolayi.olay_no, Format(Mid([olay_no],7,11)+1,"00000") AS yeniolay, Left([olay_no],6) AS tarih
FROM tbl_disiplinolayi
WHERE (((Left([olay_no],6))=Format(Date(),"yymmdd")))
ORDER BY Format(Mid([olay_no],7,11)+1,"00000") DESC;

bu kod bloğu ile 003 sayısını bulup bir ekleyip 004 elde edip tarihin sonuna ekleyeceksiniz kriteriniz 
Kod:
(((Left([olay_no],6))=Format(Date(),"yymmdd")))
değil mi Bunu Dmax ile kullansanız
Kod:
DMax("UnitPrice", "Order Details", "OrderID = 10248")
o zaman
Kod:
DLookup("yeniolay", "Srg_Olay_Sayisi")
bunu kullanmanızada gerek kalmaz

Kod:
dim eski_sayi,yeni_sayi
eski_sayi = iff(isnumeric(dmax(......)),  .....  ,  .....
yeni_sayi = eski_sayi + 1
Me.txtolay_sıra_no = Format(Date, "yymmdd") & yeni_sayi

gibi bir şeyler yazsanız daha kolay olabiilir
ama bana soracak olursanız sen nasıl yapardın diye eğer
200418001
değerini bir yerlerde kanunen zoraki kullanmam gerekmiyorsa
tarihi zaman ile birlikte kullanırdım sadece


Kod:
Me.txtolay_sıra_no = Now
yazardım kafamda rahat olurdu
@benbendedeilem
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
RE: Sıra Numarası Verme İşlemi Nasıl Yapılmadı - Yazar: accessman - 24/04/2020, 04:45
Task