Skip to main content

AccessTr.neT


tablo değerlerini kontrol

tablo değerlerini kontrol

Çözüldü #1
iyi günler
bir tablomuz var
içinde tarihler ve izlemler vs var
bu tablotu mantıksal olarak kontrol etmemeiz lazım
nasıl mı
bir tarihteki mesela canlı bebek sayısı
daha önce olan bir tarihdeki canlı bebek sayısından az olmamalı
aynı olabilir ama fazla olmamalı
şöyle düşünelim
bir kadının izleminde toplam gebelik sayısı geçen sene 4 ise
bu sene 4 veya daha fazla olmalı
bunu nasıl kontrol edebiliriz
yani tarihe bakacak izlem değerine bakacak
aynı izlem aynı kişi için daha önce daha büyük değer girilmiş mi bakacak
tabiki bunu 500 hastanın toplam 2500 izlemi için yapacak
bir diğer ifadeyle
bir kişi için bir alandaki değer
daha önceki tarihlerde
daha küçük girilmiş mi bakacak
eğer girilmişse hastanın tc nosunu ve ilgili kaydı bir tabloya ekleyecek

izlem.rar

bir döngü hastaları tc no ya göre tarayacak
bir döngü izlem tarihlerine göre tarayacak
işlemde önceki veya sonraki izlemdeki değeri karşılaştıracak
Kod:
Private Sub Komut0_Click()
On Error Resume Next
Dim kim, ne As String
Dim sor, bul As String

Dim rs As New ADODB.Recordset
Dim ds As New ADODB.Recordset

sor = "SELECT kadin_izlem.Kimlikno FROM kadin_izlem ORDER BY kadin_izlem.Kimlikno;"
rs.Open sor, CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    rs.MoveFirst
    kim = rs.Fields("Kimlikno")

    
bul = "SELECT kadin_izlem.Kimlikno, kadin_izlem.YapilmaTar, kadin_izlem.CanliDogum FROM kadin_izlem WHERE (((kadin_izlem.Kimlikno)= kim)) ORDER BY kadin_izlem.YapilmaTar;"
ds.Open bul, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    
    ds.MoveFirst
    ne = ds.Fields("Kimlikno")
        
    'rs.Update
    ds.Close
    rs.Close
End Sub

bu kodda nerede yanlışlık var
birinci döngüde elde ettiğim ki değeri msgboxda hastanın tc sini veriyor
ama ikinci Sql sorgusunda kriter olarak görmüyor
bul sorgu dizesinde kim değerini nasıl kullanabilirim
@benbendedeilem
Cevapla
Çözüldü #2
Sayın accessman,
Tablonuzdaki kayıtlı kişi aynı kişi ise (ki öyle gibi görünüyor) kişi bilgileri tablosu ile izleme bilgileri tablosunu ayırmanız gerekmektedir. Bu bilgileri sorguda birleştirip sorgulamayı sorgu üzerinden yapmalısınız.
Ben çalışmanızı bu hale getirdim gerisi üstadlara kalıyor...


izlem1.rar
mk70, 18-02-2010 tarihinden beri AccessTr.neT üyesidir.
Cevapla
Çözüldü #3
ilginiz için teşekkürler
@benbendedeilem
Cevapla
Çözüldü #4
çözümü ekliyorum
biraz zor oldu benim için ama güzel oldu
Kod:
Private Sub Komut0_Click()
On Error Resume Next
Dim sor, bul As String

Dim tc, tcE As String
Dim yt, ytE As Date
Dim tg, tgE As Integer
Dim ilerle As Integer
Dim hatasay As Integer

Dim rs As New ADODB.Recordset
sor = "SELECT kadin_izlem.Kimlikno, kadin_izlem.YapilmaTar, kadin_izlem.ToplamGebelik, kadin_izlem.CanliDogum, kadin_izlem.OluDogum, kadin_izlem.YasayanCocuk, kadin_izlem.OlenCocuk, kadin_izlem.DusukSayi, kadin_izlem.ZorlaDusuk FROM kadin_izlem ORDER BY kadin_izlem.Kimlikno, kadin_izlem.YapilmaTar;"
rs.Open sor, CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    rs.MoveFirst
ilerle = 1
hatasay = 0
Do
    
If ilerle <> 1 Then
    If tcE = rs.Fields("Kimlikno") Then
        If ytE < rs.Fields("YapilmaTar") Then
            If tgE > rs.Fields("ToplamGebelik") Then
            
            
            Dim ds As New ADODB.Recordset
            ds.Open "hatali", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
            ds.AddNew
            ds.Fields("Kimlikno") = rs.Fields("Kimlikno")
            ds.Fields("YapilmaTar") = rs.Fields("YapilmaTar")
            ds.Fields("YapilmaTarE") = ytE
            ds.Fields("ToplamGebelik") = rs.Fields("ToplamGebelik")
            ds.Fields("ToplamGebelikE") = tgE
            ds.Update
            ds.Close
            Set ds = Nothing
              
              
            End If
        End If
    End If
End If

    tcE = rs.Fields("Kimlikno")
    ytE = rs.Fields("YapilmaTar")
    tgE = rs.Fields("ToplamGebelik")

    rs.MoveNext
ilerle = ilerle + 1
Loop Until rs.EOF

    
    rs.Close
    
End Sub

@benbendedeilem
Cevapla
Çözüldü #5
örnegin kendisinide son haliyle ekleseydiniz keşke
Cevapla
Çözüldü #6
tc numaraları ile uğraşmak istemedim
@benbendedeilem
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task