Skip to main content

AccessTr.neT


Dcount İle Aynı Kişi Varsa Eklenmesin

Dcount İle Aynı Kişi Varsa Eklenmesin

#49
Ben sizin için basitleştireyim. Pprkramı öyle göndereyim.

Maalesef. Her şey bir biriyle örüntülü
Son Düzenleme: 07/04/2020, 17:07, Düzenleyen: SeferŞANLI.
Cevapla
#50
elbette benim için basitleştirmeyeceksiniz ama kendiniz 
yapmak istediğinizi 
takıldığız yerleri bulabilmek için ufak ufak parçalara böleceksiniz
acaba id mi yanlış
yoksa id boş mu geliyor vs vs
ekle tuşuna bastığınızda kod satırına giden veriler msgbox da ne gösteriyor
olan öğretmenid meselesinde olduğu gibi acabasiz veri olarak ne gönderiyorsunuz
debug kullanımını bilmiyorum ama her kod satırını adım adım çalıştırıp hatayı bulmak lazım
ben debug bilmediğim için her satır arasına msgbox yazarım ve neredeye kadar doğru nereden sonra yanlış oluyor bakarım
uzun bir işlem oluyor ama en azından sonuç veriyor
büyük güzel bir program yazmışsınız yüzüp kuyruğuna gelmişsiniz
az bir gayret ile sonuca ulaşırsınız diye umuyorum
mesela anaform veya altformdan gelmesi gereken bir bilgi için diyelim ki şu kod satırı için
Gogretmenid = Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form![ogrt_id]
formdan gelmesi gerektiğini düşündüğünüz veriyi karşısına yazarak deneyin mesela bu satırda "2" gelecek diye düşünüyorsanız
Gogretmenid = 2  'Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form![ogrt_id]
şeklinde yazın bakalım veri formdan doğru geliyor mu gelmiyor mu
mesele bu yani adım adım hatayı veya eksiği bulacaksınız
ben debug bilmiyorum muhtemelen hangi satırda eksik olduğunu gösteren daha kolay bir yol vardır
Cevapla
#51
Emin olun birçok yol denedim. Ama bilgim buraya kadar. Bunu biraz daha faklı düşünen birinin bakması gerek. Temeldeki mantığı kafamda oturdu ama zor benim için.

Mantık şu: savunması alınmış bir öğrencinin;Olaydaki öğrenciye, öğretmen iki defa görüş veremez.
Mesela siz öğretmen olun. Ahmet Hasan ile kavga etmiş.  Sizden Ahmet için bir görüş beyan etmenizi istediler. Sizde verdiniz. Sonra Hasan için istediler onuda yazılı verdiniz. Peki sizden aynı olay için tekrar Ahmet için görüş isteseler ne dersiniz. Yazıp verdim ya dersiniz.Ben bunu yapmaya çalışıyorum.


olay_id            ögrenci_id              öğretmen_id     
1                            1                            1
1                            2                              1


1                            1                              1              bu olamaz öğretmen-öğrenci-olay aynı



Yapılan bütün işlmeler görüş formunda
Son Düzenleme: 07/04/2020, 17:42, Düzenleyen: SeferŞANLI.
Cevapla
#52
"Bunu biraz daha faklı düşünen birinin bakması gerek" sözünüzün kinaye olmadığını farzediyorum
zira  @berduş un 
"farkli bakmayi basaran kisi gibi gostermeye calisan kişisiniz sadece" 
seklinde uzman bilirkişi görüşü var her neyse
aynı öğretmen olmasın problemini uzun bir şekilde açıklamaya çalışmıştım hatta örnek formda DCount satırında problem olmadığını söylemiştiniz
bu formu kopyalayın aslı bir yerde dursun
sonra asıl formdan sırayla taşıyarak yeni formu adım adım oluşturun 
size lazım olan görüş bildirilen olay , öğrenci, öğretmen veli vs
bunların bir kısmı hazır gelecek (olay, öğrenci vs)
bir kısmını siz seçeceksiniz (öğretmen, veli , öğrenci)
temelde yapınız aynı kalabilir kontroller falan ama kodları asılları yedekte kalmak şartıyla tamamen silin
sonra başlayın formun çalışma mantığına göre her kontrolun kodunu asıl kopyadan taşımaya
deneyebiliyorsanız deneyin her kodu
sonra diğer kontrol  
eğer böyle yapmazsanız muhtemelen bulamayacaksınız
çünkü eğer vaktim olsaydı ben böyle yaparak ancak size yardım edebilirdim
Son Düzenleme: 07/04/2020, 17:58, Düzenleyen: accessman.
Cevapla
#53
Elbetteki kinaye değil. Yani ben yapamıyorum. Diyorum. Hayatta en son isteyeceğim şeydir. Kinaye yapmak yada başka birşey.

Be dediğinizi anlamadım. Sayın berduşla alakalı bir durum yok. Bu olayda ben kimsenin bilgisini, yaklaşımını emeğini yadırgayacak bir ifadede bulunmadım. Öyle bir durum varsa peşinen özür dilerim. Sadece durumu izah ediyorum. Bilgisini, zamanını emeğini esirgemeyen, paylaşan, olumlu olumsuz eleştir yapan herkese saygı duyuyorum. En içten dileklerim bunu ifade ediyorum. Olay çözülmez ise de kalıverir. Yapacak bir şey yok.
Son Düzenleme: 07/04/2020, 18:03, Düzenleyen: SeferŞANLI.
Cevapla
#54
daha öncede ifade ettiğim gibi emek harcayarak herkesin işini görebilecek güzel bir program yazmışsınız
bu anlattığm şekilde biraz daha emek sarfetmezseniz belki de kimse uğraşmayacak
çünkü siz her kodun her değerin nereden geldiğini bildiğiniz ve sıfırdan yazdığınız halde formu baştan ele almazsanız
hiç bilmeyen birisi dediğiniz gibi biribiriyle örüntülü bu kadar form, alt form, tablo nun içinden nasıl çıkacak 
olay sadece son kodda bitmiyor

Private Sub btn_aktar_Click()
Gogrnoid = Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form![ogrenci_id]
Gogrid = Forms![frm_goruskisiler]![ogrenciler].Form![ogr_id]
Gogretmenid = Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form![ogrt_id]

Select Case cercevesecim
Case 1
For Each GItem In Me.listekisiler.ItemsSelected
Gadsoyad = Me.listekisiler.Column(1, GItem)
Gogrno = Me.listekisiler.Column(0, GItem)


If DCount("gorus_id", "tbl_gorusler", "[olay_id] = " & olay_is_no & " And [ogrenci_id]= " & Gogrnoid & " And [ogretmen_id]= " & Gogretmenid) <> 0 Then
        MsgBox (Gadsoyad & "Bu Kişi Daha Önce Eklenmiş !")
    Else
        DoCmd.SetWarnings False
        Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form.Requery
        DoCmd.RunSQL "INSERT INTO tbl_gorusler (ogrenci_id,olay_id,adi_soyadi,ogretmen_id) VALUES (' " & [Gogrnoid] & "',' " & olay_is_no & "','" & Gadsoyad & "',' " & Gogrno & "' )"
        DoCmd.SetWarnings True
    End If
Next GItem

Me.frm_gorusu_alinanlar.Requery
Case 2
For Each GItem In Me.listekisiler.ItemsSelected
Gadsoyad = Me.listekisiler.Column(1, GItem)
Gogrno = Me.listekisiler.Column(0, GItem)
If DCount("gorus_id", "tbl_gorusler", "[olay_id] = " & olay_is_no & " And [ogrenci_id]= " & Gogrnoid & " And [ogretmen_id]= " & Gogretmenid) <> 0 Then
MsgBox (Gadsoyad & "Bu Kişi Daha Önce Eklenmiş !")
    Else
        DoCmd.SetWarnings False
        Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form.Requery
        DoCmd.RunSQL "INSERT INTO tbl_gorusler (ogrenci_id,olay_id,adi_soyadi,ogretmen_id)) VALUES (' " & [Gogrnoid] & "',' " & olay_is_no & "','" & Gadsoyad & "',' " & Gogrno & "' )"
        DoCmd.SetWarnings True
    End If
Next GItem
Me.frm_gorusu_alinanlar.Requery
Case 3
For Each GItem In Me.listekisiler.ItemsSelected
Gadsoyad = Me.listekisiler.Column(1, GItem)
Gogrno = Me.listekisiler.Column(0, GItem)
If DCount("gorus_id", "tbl_gorusler", "[olay_id] = " & olay_is_no & " And [ogrenci_id]= " & Gogrnoid & " And [ogretmen_id]= " & Gogretmenid) <> 0 Then
MsgBox (Gadsoyad & "Bu Kişi Daha Önce Eklenmiş !")
    Else
        DoCmd.SetWarnings False
        Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form.Requery
        DoCmd.RunSQL "INSERT INTO tbl_gorusler (ogrenci_id,olay_id,adi_soyadi,ogretmen_id) VALUES (' " & [Gogrnoid] & "',' " & olay_is_no & "','" & Gadsoyad & "',' " & Gogrno & "' )"
        DoCmd.SetWarnings True
    End If
Next GItem
Me.frm_gorusu_alinanlar.Requery
Case 4

For Each GItem In Me.listekisiler.ItemsSelected
Gadsoyad = Me.listekisiler.Column(1, GItem)
Gogrno = Me.listekisiler.Column(0, GItem)
If DCount("gorus_id", "tbl_gorusler", "[olay_id] = " & olay_is_no & " And [ogrenci_id]= " & Gogrnoid & " And [ogretmen_id]= " & Gogretmenid) <> 0 Then
Else
        DoCmd.SetWarnings False
        Forms![frm_goruskisiler]![frm_gorusu_alinanlar].Form.Requery
        DoCmd.RunSQL "INSERT INTO tbl_gorusler (ogrenci_id,olay_id,adi_soyadi) VALUES (' " & [Gogrnoid] & "',' " & olay_is_no & "','" & Gadsoyad & "' )"
        DoCmd.SetWarnings True
    End If
Next GItem
Me.frm_gorusu_alinanlar.Requery


End Select
End Sub
Son Düzenleme: 07/04/2020, 18:16, Düzenleyen: accessman.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da