AccessTr.neT
Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - 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ığı: Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) (/konu-dmax-sorunu-veri-turu-kisa-metin-olan-tabloda.html)

Sayfalar: 1 2 3


Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - Rıfat KARA - 23/01/2018

Veri tabanında hem sayısal hem metin değeri içeren veri girişi yapmak zorunda olduğum RAPOR_NO isimli kısa metin biçiminde bir veri türü alanı var. 
Form üzerine giriş yapılan en büyük değeri hatırlatması amacıyla forma metin kutusu ekledim ve metin kutusu denetim kaynağına =DMax("[RAPOR_NO]";"ANA TABLO") yazdım.
Bu alan içerisinde kayıt 100 e geldiği zaman Dmax kayıt son en büyük değeri göstermemeye başladı.
Küçükten büyüğe sıralama yapmama rağmen 99 sayısını 100 den büyük olarak kabul ediyor. Sorununda buradan kaynaklı olduğunu düşünüyorum.
Rapor_No Alanına 0001, 0010, 0099, 99-EK, 0100, 101-EK, 1000 şeklinde kayıt girilirse sorun olmayacak biliyorum ancak tek veri girişi yapan ben değilim. Bunun daha pratik ve basit bir yöntemi var mı? (Not: En fazla 2500-EK tarzında veri girişi yapıyoruz.)
Hocalarım bu konuda yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.


Cvp: Dmax Sorunu (veri Türü Kısa Metin Olan Tabloda) - ozanakkaya - 23/01/2018

Merhaba,

Public Function ParseText(TextIn As String, X) As Variant
On Error Resume Next
Dim var As Variant
var = Split(TextIn, " ", -1)
ParseText = var(X)
End Function

Üstteki kodu modüle ekle, modülü kaydet,

Yeni sorgu oluştur, sorgunun Sql kaynağına aşağıdaki kodu ekle, sorguyu srg_sonsira adıyla kaydet,

SELECT Val(ParseText([RAPOR_NO],0)) AS SiraNo FROM [ANA TABLO] ORDER BY Val(ParseText([RAPOR_NO],0));

Formdaki SON RAPOR NO metin kutusunun denetim kaynağındaki kodu

=DMax("[SiraNo]";"srg_sonsira")

kodu ile değiştir.


Cvp: Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - Rıfat KARA - 23/01/2018

Ozan hocam dediğiniz işlemleri yaptım. Rapor_No'ya  0 eklenmiş gibi olmuyor. Sıralama istediğim gibi gerçekleşmedi malesef.
 SORGU SONRASI VE ÖNCESİ.rar isimli ekte eski hali, sizin dediklerinize göre düzenlenmiş hali ve 0 eklenmiş hali mevcut bi bakarsanız sevinirim.


Cvp: Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - ozanakkaya - 23/01/2018

Merhaba,
(23/01/2018, 09:36)Rıfat KARA yazdı: Rapor_No'ya  0 eklenmiş gibi olmuyor.

Bu cümleden malesef birşey anlayamadım. Sorgunun Sql kodunu aşağıdaki ile değiştir,
SELECT TOP 1 Val(ParseText([RAPOR_NO],0)) AS SiraNo, [ANA TABLO].RAPOR_NO
FROM [ANA TABLO]
ORDER BY Val(ParseText([RAPOR_NO],0)) DESC;

Metin kutusunun denetim kaynağına da
=DLookUp("[RAPOR_NO]";"SORGU_SON_SIRA")

Kodu ekle.

Çözüm olmaz ise, TEK ÖRNEK üzerinden, tablodaki veriye göre, metin kutusunda HANGİ DEĞERİN görünmesini istediğini yazınız.


Cvp: Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - Rıfat KARA - 23/01/2018

Ozan hocam son verdiğiniz kodlar ile veri girişi yapılan son en büyük değer görüntülenebiliyor.
Rapor_No'ya  0 eklenmiş gibi olmuyor derken tablodaki ve formdaki sıralama küçükten büyüğe göre olmuyor demek istedim.
Form üzerinde bir önceki kayıt dediğimde son kayıt no 101 olmasına rağmen önce 99 sonra 101 görünüyor. Aslında bu sıralamayı 1, 2, ....,9,10,...,99,99-EK,100,100-EK,101,102 şeklinde yapabilirseniz tüm sıkıntı otadan kalkacak dmax komutu çalışacak diye düşünüyorum.
Çok teşekkür ederim.
YENİ Sql KOD SONRASI.rar isimli dosyayı ekledim.


Cvp: Dmax Sorunu (Veri Türü Kısa Metin Olan Tabloda) - ozanakkaya - 23/01/2018

Merhaba
Uygulamadaki sorguyu düzenledim. 102 kaydedince son numarayı 102, 102 EK kaydedince son numarayı 102 EK olarak gösteriyor.

İnceleyip olumlu/olumsuz bildirimde bulununuz.