Veri Kontrolu

1 2
11/10/2009, 14:00

yakcaglayan

Arkadaşlar selam,
bir konuda takıldım. yardımlarınız bekliyorum.
yapmak istediğim :
1.text bir dosyayı okuyorum ve bir tabloya yazıyorum
2.aktarım yaptıktan sonra tablonun bazı sütunların bilgilerini update ediyorum ,
3. Bos olan sütunları sabit birkaç değerle dolduruyorum
bunları tek bir macroya sıraladım ve otomatik yapıyorum.
Şimdi bütün bu bir dizi işlemin ( txt aktar, update vb) doğru bir şekilde olup olmadığını kontrol etmek istedim.
Bunun için bir form yaptım ve forma checkboxlar koydum. ayrıca gizlediğim texkboxlar var.

eğer taploda veri varsa tikli olsun , eğer "donem " alanı doluysa tikli olsun , eğer ID alanı dolu ise tikli olsun gibi, herhangi birisi olmadıysa tik koymasın . sanırım anlatabildim. beceremedim. siz değerli üstadlardan yardım bekliyorum. bu yapıda ısrarcı değilim elbette başka önerilerede açığım.
teşkkürler.
11/10/2009, 17:26

mehmetdemiral

Sayın yakcaglayan
Burda birşeyi atladığınızı sanıyorum. Bu kayıtları birbirinden ayırdetmemizi sağlayacak bir kriter yok ki?. Sütunlarınızın hangisine bakacağız? "Dönem" deseniz hepsi aynı dönem, ID deseniz neye göre bakılacak? Anlatabildim mi bilmiyorum ama neye göre analiz edeceğiz bu tabloyu. Bence siz her kayda benzersiz bir id sayı ekleyin, en büyüğünü kontrol ettirin, her aşama için tablonuza işlemok alanı koyun, her işlem yapıldığında oraya check atsın veya sayısal değer gönderin. Sonra da bu "bir taşla iki kuş"a dönüşen bir durum olacaktır.
11/10/2009, 20:39

yakcaglayan

evet haklısınız mehmetdemiral,
aslında kriterim şu ben sadece bu bahsettiğim alanların dolu olup olmadığını, satırların tamamını update edip etmediğimi kontrol etmek istiyorum.
Değilse veride bir kriter aramıyorum.benim için bu alanları tam doldurmuşmuyum , update edemediğim (yani null) olan varmı?

özetle,
-txt yi sorunsuz aldım mı(okuyıp , yazdım mı?) toblo doldumu?
-txt den gelmeyen alanlar var "dönem" mesela bu alanı sonradan yani txt okuyup yazdıktan sonra update ediyorum. tüm satırları update etmişmiyim dönemi boş kalan satır varmı?
-aynısı ID alanı içinde gecerli.

ilgilinizie şimdiden tşk.
aslında daha açık bir ifadeyle basit bir sistem log modulu düşündüm.
12/10/2009, 19:32

Taruz

Merhaba..

Onay kutularının Denetim Kaynaklarını boşaltır ve formunuzun Açıldığında olayında bu kodu kullanırsanız gerekli kontroller yapılıp onay kutuları güncellenir..

Kod:
Dim a, b, c As String
    a = DCount("*", "TBL_GDATA")
    b = DCount("DONEM", "TBL_GDATA")
    c = DCount("ID", "TBL_GDATA")
    If a > 0 Then Check32 = -1
    If a = b Then Check36 = -1
    If a = c Then Check38 = -1
12/10/2009, 22:52

yakcaglayan

Sayın Taruz ,
öncelikle yardımın için teşekkür etmeliyim.
kodu aldım ve dediğiniz gibi FormLoad ekledim.
TBL_GDATA tablosunudaki tüm kayıtarı da sildim.Test için
sonra eklediğim örnekteki kontrol formunu kapatıp açtım ama tüm checkboxlar tikli geldi. Dcount boş tobloda neyi count ederki?
eklediğiniz kod grubuna debug ederek satır satır baktım . Tanımladığınız a değerine emty atıyor. Acaba a > 0 derken emty değerini varsaymıyormu.?

tekrar teşekkürler.
13/10/2009, 00:06

mehmetdemiral

Sayın yakcaglayan

Kodları incelediyseniz sebebi gözünüzün önünde duruyor

Kod:
Dim a, b, c As String
    a = DCount("*", "TBL_GDATA")
    b = DCount("DONEM", "TBL_GDATA")
    c = DCount("ID", "TBL_GDATA")
    If a > 0 Then Check32 = -1
    If a = b Then Check36 = -1
    If a = c Then Check38 = -1
1. satır: a değişkenine tüm kayıtlar sayılarak atandı
2. satır: b değişkenine DÖNEM alanındaki kayıt sayısı atandı
3. satır: c değişkenine ID alanındaki kayıt sayısı atandı
4. satır: Eğer a sıfırdan büyükse onay32 işaretlensin
5. satır: Eğer a=b ise(Buraya dikkat) onay 36 işaretlensin
6. satır: Eğer a=c ise(Buraya da dikkat) onay 38 işaretlensin

Şimdi, hiç kayıt yoksa a = 0
o zaman
b = 0
c = 0

a=b olduğunda göre onay36 işaretlenir
a=c olduğuna göre onay38 de işaretlenir. Gayet normal bir durum değil mi? İlk kutu kodun başına şart koyulduğu için işaretlenmiyor:

If a > 0 Then Check32 = -1

Aynı şekilde diğer kodların başına da bir if..then ile şart getiriseniz ve "eğer 0 değilse çalış" derseniz kodlar sorunsuz çalışır.
1 2