Değerli hocalarım. Önceki örneklerimde dlast ile oluşturduğum basit deneme veritabanım çalışmaktaydı. Ancak kodları gerekli çalışmama eklediğim zaman Dlast komutunun bir yerden sonra işlev yerine getirmediği olayıyla karşı karşıya kaldım.
Normalde her sorumu basit örnek üzerinden sormaktaydım ancak basit örnekte çalışan kodlar benim uygulamamda çalışmıyor. Çalışma tablomun veri güvenliğini sağlayarak ekte dosya yüklemesini yaptım.
kayipsahiskayitekrani formunda bulunan sondeftersayisi metin kutusunun VARSAYILAN DEĞER' ine =DLast("defterno";"kayipsahislartablo") kodunu yazdım. Bir kaç kayıt normal gösterdikten sonra takıldı ve sayı artmadan öyle kaldı. Artması gereken sayı artmamakta ve sabit kalmaktadır.
İstediğim şey bu metin kutusunun tablodaki son defter no sayısını göstermesi.
Günlerdir neden olmadığını çözmeye çalışıyorum ancak sonuca ulaşamadım. Kayıtlardan son 4-5 tanesini sildim, metin kutusu düzeldi ancak yeni kayıt ekleyince yine sabit kaldı.Yardımınıza muhtacım. Saygılar.
Dlast Komutunda Hata
DLast("defterno";"kayipsahislartablo")
yerine DMax("defterno";"kayipsahislartablo")
kullanarak deneyin.
Hocam onu eklediğim zaman defter no da en yüksek sayıyı getiriyor doğrudur. Ancak yıllara göre değişkenlik gösteriyor. Örneğin 2021 yılında defter no 360 ile kapanmışken, 2022 yılında girilen veriler tekrardan 1 den başlayacak. Dmax komutu en yüksek defter no sayısını getiriyor.
Benim istediğim son kimlik (id) deki defter nosunun gelmesi. Dmax' ı burada uygulamak mümkün müdür bilemedim.
Benim istediğim son kimlik (id) deki defter nosunun gelmesi. Dmax' ı burada uygulamak mümkün müdür bilemedim.
Kriter olarak yılı ekleyin. Dlookup , Dlast, Dmax, Dmin kriterlerinize göre sonuç döndürür. Veya idnizi kriter olarak kullanın.
Burda çalışan kodlar benim programda çalışmıyor. tüm kodları inceledim. çözemedim. VBA üzerinden mi çalışsam acaba. Birkaç gün daha deneyerek çözmeye çalışacağım.
DLast, bir alanın "son" değerini döndüren bir işlevdir. "son" nasıl tanımlanır diye soracak olursak? Sorgunuzun ORDER BY kriterine göre. Bir sorgu kullanmıyorsanız,
o zaman hangi kaydın olacağına dair hiçbir tutarlılık veya garanti yoktur çünkü Access kayıtları belirli bir sıralama kriteri ile saklamaz. DMax, tablodan bir alanın maksimum değerini döndüren bir işlevdir. Bir sorgu veya indeks tarafından empoze edilen herhangi bir düzenden bağımsızdır, her zaman maksimum değeri döndürecektir. Bu sebeple programcılar nadiren DLast kullanırlar, DMax'ı kullanmayı tercih ederler.
Ve diğer husus default value ile form üzerinde hesaplama yapmak yerine form yüklenme, geçerli olma, açılma gibi olaylarında işlevlerin komplikasyonuna ve işlem sıralamasına göre early veya late binding ile kod üzerinden hesaplanan değer ataması ve requery işlemleri uygulanır. Bu sayede arka planda çalışan kodlarınızda tanımlayacağınız error handler size yaşadığınız sorun hakkında bilgi vereceğinden çözüm geliştirebilirsiniz.
o zaman hangi kaydın olacağına dair hiçbir tutarlılık veya garanti yoktur çünkü Access kayıtları belirli bir sıralama kriteri ile saklamaz. DMax, tablodan bir alanın maksimum değerini döndüren bir işlevdir. Bir sorgu veya indeks tarafından empoze edilen herhangi bir düzenden bağımsızdır, her zaman maksimum değeri döndürecektir. Bu sebeple programcılar nadiren DLast kullanırlar, DMax'ı kullanmayı tercih ederler.
Ve diğer husus default value ile form üzerinde hesaplama yapmak yerine form yüklenme, geçerli olma, açılma gibi olaylarında işlevlerin komplikasyonuna ve işlem sıralamasına göre early veya late binding ile kod üzerinden hesaplanan değer ataması ve requery işlemleri uygulanır. Bu sayede arka planda çalışan kodlarınızda tanımlayacağınız error handler size yaşadığınız sorun hakkında bilgi vereceğinden çözüm geliştirebilirsiniz.
Konuyu Okuyanlar: 1 Ziyaretçi