ekteki bms.mbd form3'te tagdescription değerine göre tagvalue seçiliyor. ilk okuma tarihi ve son okuma tarihi buna göre değişiyor, her ikisinde de satır kaynağı olarak farklı sorgu çalışıyor. Buraya kadar istediğim gerçekleşiyor fakat yapamadığım nokta şu: tagvalue değeri boş olduğunda(ör.AI_001_01) yada fatura tablosunda bu değere uyan hiç kayıt yoksa ilkokuma tarihindeki satır kaynağı sonokuma tarihindeki sorguyu çalıştırsın. Yardımlarınız için şimdiden teşekkürler
comboboxtaki liste boş olduğu durumda diğer sorguyu çalıştırmak
dikkat edersen her iki sorgunda
WHERE (((Sorgu1.TagName)=Forms!Form3!tagvalue))
WHERE (((Sorgu2.[Tag Value])=Formlar!Form3!tagvalue))
tagvalue ye başvuru yapıyor o nedenden dolayı her iki durumdada boş kayıt gelecektir
fakat
illada ben tagvalue alanı boş olduğu zaman ne varsa o gelsin diyorsan ki buna dikkat et ve bunu bir kenara yaz eğer formdaki alan boş ise kendinde ne varsa onu varsayılan olarak kabul et örneği bunu daha çok biz aktif aramada kullanıyoruz neyse uzatmaya gerek yok bu sorguyu ilkokuma alanındaki sorgu ile değiştir
SELECT TOP 1 Sorgu2.[Son Okuma Tarihi], Sorgu2.[Tag Value], Sorgu2.[Son Okuma Değeri], Sorgu2.[Fatura No]
FROM Sorgu2
WHERE (((Sorgu2.[Tag Value])=IIf(IsNull([Formlar]![Form3]![tagvalue]),[Tag Value])))
ORDER BY Sorgu2.[Fatura No] DESC;
WHERE (((Sorgu1.TagName)=Forms!Form3!tagvalue))
WHERE (((Sorgu2.[Tag Value])=Formlar!Form3!tagvalue))
tagvalue ye başvuru yapıyor o nedenden dolayı her iki durumdada boş kayıt gelecektir
fakat
illada ben tagvalue alanı boş olduğu zaman ne varsa o gelsin diyorsan ki buna dikkat et ve bunu bir kenara yaz eğer formdaki alan boş ise kendinde ne varsa onu varsayılan olarak kabul et örneği bunu daha çok biz aktif aramada kullanıyoruz neyse uzatmaya gerek yok bu sorguyu ilkokuma alanındaki sorgu ile değiştir
SELECT TOP 1 Sorgu2.[Son Okuma Tarihi], Sorgu2.[Tag Value], Sorgu2.[Son Okuma Değeri], Sorgu2.[Fatura No]
FROM Sorgu2
WHERE (((Sorgu2.[Tag Value])=IIf(IsNull([Formlar]![Form3]![tagvalue]),[Tag Value])))
ORDER BY Sorgu2.[Fatura No] DESC;
meşhur çin atasözü "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Eşref Bey verdiğiniz cevap istediğim sonucu vermedi. Kolay anlaşılsın diye resimden anlatmaya çalıyım. Şekil 1'de seçilen Tag Value (AI_001_01) değerine ait FATURA tablosunda hiçbir kayıt yok, dolayısı ile İlk okuma tarihi'ndeki liste de boş geliyor. Ben böyle bir durumda Şekil 2'deki gibi bu listenin içeriğinin son okuma tarihindeki listeyi getirmesini istiyorum.(bu arada son okuma listesindeki değerler Tag Definationtablosundan alınıyor). Umarım anlatabilmişimdir. Teşekkürler.
sn nadinb, eşref hocanın verdiği kod işinize yaramayabilir ama size yol gösterir.
Tablolarınızın ve sorgularınızın ne işe yaradığını (saat 06:47) anlayamadığım için sorguda eşref hocanın sorgusunu kriteri farklı olarak kullandım.
tagdescription açılır kutusunun güncellenme sonrasında olayına aşağıdaki kod eklendi.
ilkokuma açılırkutusundaki kayıtsayısı "0" dan farklı ise yani kayıt var ise kendi satır kaynağı, eğer "0" dan farklı değil ise yani boş ise sonokuma açılır kutusunun satır kaynağı,
kodu ekleyip deneyin, ben çalışıp çalışmadığını anlayamadım,
autoexec makrosunu iptal edip yerine açılışta çalışan kod ekledim, Access penceresini gizlemek istiyorsanız dersler bölümünde anlatıldı. Uygulama açıldığında bms dosyası nerede olursa olsun bağlı tabloları kendisi yükleyecek şekilde düzenledim.
Ayrıca belirteyim, tablo, sorgu ve form yapısı çok kötü ve uygulama bozulmuş, forma yeni bir nesne ekleyince bir daha açılmıyordu. Uygulamanızdaki hataları düzelterek ekledim, eksiklik var ise veya eklenenleri istemiyorsan sadece formdaki kodu kullanın.
Tablolarınızın ve sorgularınızın ne işe yaradığını (saat 06:47) anlayamadığım için sorguda eşref hocanın sorgusunu kriteri farklı olarak kullandım.
tagdescription açılır kutusunun güncellenme sonrasında olayına aşağıdaki kod eklendi.
Kod:
If Me.ilkokuma.ListCount <> 0 Then
Me.ilkokuma.RowSource = "SELECT TOP 1 Sorgu2.[Son Okuma Tarihi], Sorgu2.[Tag Value], Sorgu2.[Son Okuma Değeri], Sorgu2.[Fatura No] FROM Sorgu2 WHERE (((Sorgu2.[Tag Value])=Formlar!Form3!tagvalue)) ORDER BY Sorgu2.[Fatura No] DESC; "
Else: Me.ilkokuma.RowSource = "SELECT Sorgu1.TagTimeStamp, Sorgu1.TagName, Sorgu1.TagValue FROM Sorgu1 WHERE (((Sorgu1.TagName)=Forms!Form3!tagvalue)) ORDER BY Sorgu1.TagTimeStamp, Sorgu1.TagName; "
End If
kodu ekleyip deneyin, ben çalışıp çalışmadığını anlayamadım,
autoexec makrosunu iptal edip yerine açılışta çalışan kod ekledim, Access penceresini gizlemek istiyorsanız dersler bölümünde anlatıldı. Uygulama açıldığında bms dosyası nerede olursa olsun bağlı tabloları kendisi yükleyecek şekilde düzenledim.
Ayrıca belirteyim, tablo, sorgu ve form yapısı çok kötü ve uygulama bozulmuş, forma yeni bir nesne ekleyince bir daha açılmıyordu. Uygulamanızdaki hataları düzelterek ekledim, eksiklik var ise veya eklenenleri istemiyorsan sadece formdaki kodu kullanın.
Sn. sledgeab,
Dediklerinizi uygulamaya çalıştım ama istediğim sonucu alamadım bende farklı bir çözüm yoluna gittim ancak otomatik açılışta koyduğunuz kodları ben çalıştıramadım hata veriyor nerde hata yaptığımı kontrol edebilirmisiniz rica etsem
Dediklerinizi uygulamaya çalıştım ama istediğim sonucu alamadım bende farklı bir çözüm yoluna gittim ancak otomatik açılışta koyduğunuz kodları ben çalıştıramadım hata veriyor nerde hata yaptığımı kontrol edebilirmisiniz rica etsem
Sayın Nadinb
Programınızda eksik referanslar olduğu için bu sorunu yaşıyorsunuz. Gönderdiğim resimdeki referanslar sledgeab'ın size gönderdiği çalışmasındaki referans tablosunun resmidir. Ordaki referansları projenize yüklemelisiniz. Sanırım sizde orada geçen referanslar mevcut değil, bu nedenle sledgeab'ın gönderdiği güzel çalışmayı da çalıştıramadınız galiba. Önce onun çalışmasını görün derim. Bunun için de resimde görülen referansları yükleyin. Eksik referanslar bizim sitede mevcut. Referans kütüphanesinden gereken dosyaları alabilirsiniz. Ondan sonra sizin projenizi yine istiyorsanız kullanın, ama referanslar olmadan çalışmaz.
Ekte bu projede kullanılan tüm referansların gerken dosyalarını gönderiyorum. Gereken yerlere kopyalayın. Nerede olmaları gerektiği referans tablosunda görülüyor. Programı açtığınızda ALT+F11 yaparsanız Tool menüsünde referans görülecektir. Oradan projede kullanılan referanslar görülür ve eksik olanların karşısında Missing yazar. Missing olan satırlarda istenen dosyaları ve yollarını göreceksiniz.
Kolay gelsin.
Programınızda eksik referanslar olduğu için bu sorunu yaşıyorsunuz. Gönderdiğim resimdeki referanslar sledgeab'ın size gönderdiği çalışmasındaki referans tablosunun resmidir. Ordaki referansları projenize yüklemelisiniz. Sanırım sizde orada geçen referanslar mevcut değil, bu nedenle sledgeab'ın gönderdiği güzel çalışmayı da çalıştıramadınız galiba. Önce onun çalışmasını görün derim. Bunun için de resimde görülen referansları yükleyin. Eksik referanslar bizim sitede mevcut. Referans kütüphanesinden gereken dosyaları alabilirsiniz. Ondan sonra sizin projenizi yine istiyorsanız kullanın, ama referanslar olmadan çalışmaz.
Ekte bu projede kullanılan tüm referansların gerken dosyalarını gönderiyorum. Gereken yerlere kopyalayın. Nerede olmaları gerektiği referans tablosunda görülüyor. Programı açtığınızda ALT+F11 yaparsanız Tool menüsünde referans görülecektir. Oradan projede kullanılan referanslar görülür ve eksik olanların karşısında Missing yazar. Missing olan satırlarda istenen dosyaları ve yollarını göreceksiniz.
Kolay gelsin.
İnadına, ille de Accesstr.net...
Konuyu Okuyanlar: 2 Ziyaretçi