Seçenek Düğmesi Metin Değerini Kaydetme

1 2
12/04/2016, 16:31

Allback

Merhaba,

Çalışan gözlemlerinde kullanacağım bir form tasarladım. Formda 3 durumlu seçenek düğmelerim var.

Kaydetme sorgusuyla seçenek düğmelerinden seçilenleri veritabanına kaydedebiliyorum ama seçilen düğmenin sayısal değerini kaydediyor. Ben metin değeri olarak kaydetmek istiyorum.

Yani üç durumlu düğmelerim, "OK", "NOT OK" ve Gözlem Yapılmadı" şeklinde, "OK" olanı seçince veritabanına 1 diye kaydediyor.

Veritabanına OK olarak kaydetmesini sağlayabilir miyim?

Bir de tüm soruların cevabı "Gözlem Yapılmadı" olarak seçili olursa kaydetme başarısız hatası vermesini nasıl sağlarım. Kayıt oluşması için en az 1 gözlem noktasında "OK" veya "NOT OK" olacak şekilde gözlem yapılmış olmalı
12/04/2016, 18:43

atoz112

sayın Allback,

öncelikle,kendi adıma örnek uygulamanızı inceleme imkanım ve zamanım olmaması nedeni ile sadece yazdıklarınızdan değerleri almak sureti ile ilk etapta bir cevap verebilmek adına şu yöntemlerden birini kullanabilirsiniz.

YÖNTEM 1
seçenek grubunun TIKLANDIĞINDA olay yordamına
Kod:
Me.secenekgrubu_adi = IIf(Me.secenekgrubu_adi = 1, "OK", IIf(Me.secenekgrubu_adi = 2, "NOT OK", "Gözlem Yapılmadı"))

yazabilirsiniz.kaç adet seçenek grubu mevcutsa her biri için de uygulanmalı.

YÖNTEM 2
seçenek grubunun TIKLANDIĞINDA olay yordamına
Kod:
Select Case Me.secenekgrubu_adi
Case "1"
Me.secenekgrubu_adi = "OK"
Case "2"
Me.secenekgrubu_adi = "NOT OK"
Case "3"
Me.secenekgrubu_adi = "Gözlem Yapılmadı"
End Select

bilginize...iyi çalışmalar,saygılar.
sayın Allback,

Alıntı:Bir de tüm soruların cevabı "Gözlem Yapılmadı" olarak seçili olursa kaydetme başarısız hatası vermesini nasıl sağlarım. 

ifadenize yönelik olarak;

kaydetme butonu içeriğine

Kod:
if Me.secenekgrubu1_adi=3 and Me.secenekgrubu2_adi=3 .......v.s.... then
MsgBox("kaydetme başarısız")
Me.Undo
Exit Sub
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
end if

(belki daha geçerli olabilecek alternatif kodlamaların da olması söz konusu olsa da) benzeri bir kod yazılabilir.

bilginize...iyi çalışmalar,saygılar.
13/04/2016, 08:42

Allback

(12/04/2016, 18:43)atoz112 yazdı: sayın Allback,

öncelikle,kendi adıma örnek uygulamanızı inceleme imkanım ve zamanım olmaması nedeni ile sadece yazdıklarınızdan değerleri almak sureti ile ilk etapta bir cevap verebilmek adına şu yöntemlerden birini kullanabilirsiniz.

YÖNTEM 1
seçenek grubunun TIKLANDIĞINDA olay yordamına

Kod:
Me.secenekgrubu_adi = IIf(Me.secenekgrubu_adi = 1, "OK", IIf(Me.secenekgrubu_adi = 2, "NOT OK", "Gözlem Yapılmadı"))

yazabilirsiniz.kaç adet seçenek grubu mevcutsa her biri için de uygulanmalı.

YÖNTEM 2
seçenek grubunun TIKLANDIĞINDA olay yordamına

Kod:
Select Case Me.secenekgrubu_adi
Case "1"
Me.secenekgrubu_adi = "OK"
Case "2"
Me.secenekgrubu_adi = "NOT OK"
Case "3"
Me.secenekgrubu_adi = "Gözlem Yapılmadı"
End Select

bilginize...iyi çalışmalar,saygılar.

Sn. Atoz

Yukarıdaki iki alternatifi de denedim. Veritabanına kayıt ederken, istediğim gibi kayıt ediyor ama seçenek grubunda yaptığım seçim gözükmüyor. 

Tıklandığında olayına yazdım olmadı, güncelleştirme sonrasında olayına yazdım yine olmadı.
13/04/2016, 11:01

atoz112

sayın Allback,

bahsettiğiniz yeni eklemeler akabinde hazırlamış olduğunuz bu örnek uygulamanızı ekleyiniz.bu yeni hali üzerinden devamlılık sağlanmış olması adına.teşekkürler.

bilginize...iyi çalışmalar,saygılar.
13/04/2016, 11:11

Allback

(13/04/2016, 11:01)atoz112 yazdı: sayın Allback,

bahsettiğiniz yeni eklemeler akabinde hazırlamış olduğunuz bu örnek uygulamanızı ekleyiniz.bu yeni hali üzerinden devamlılık sağlanmış olması adına.teşekkürler.

bilginize...iyi çalışmalar,saygılar.

Uygulamanın son halini ekte paylaşıyorum.
13/04/2016, 11:56

atoz112

Sayın Allback,

Öncelikle bir hususu daha doğrusu naçizane bir tavsiyeyi hatırlatmak veya dikkatinizi çekmek adına açıklamak isterim.aslında bunu,ilk mesajda yazmam gerekiyordu fakat yoğunluktan dolayı belirtmeyi unutmuşum.bunun için özür dilerim.

İster seçenek grubu değerleri isterse de combobox (Açılan Kutu) ya da Listbox değerleri üzerinden olsun,tablolarınıza bu denetimlerden edinilen SAYI değerlerinin (ID değerlerinin) Metin (String) değer içermesi veya kaydetmesi yerine yine aynı değerleri göstererek kaydedilmesi daha geçerli ve tercih edilmesi gerekli olarak benimsenmesi daha uygundur.

Nedeni de şu;SAYI değeri olarak kaydedildiğinde BYTE olarak 1 ya da değere göre 2-3 karakterlik kayıt işlemi yapacakken,METİN değeri olarak kaydedildiğinde o değerin karakter sayısı kadarlık her bir kayıt alanına yazması demektir.ilk zamanlarda belli olmaz fakat zaman içerisinde yoğun kayıt yapılması durumunda tablolarda Metin değerleri olarak kayıtlı olduğunda,uygulamanın kapasitesinin arttığını fark edeceksinizdir.

Kast edilen şu,ÖRNEĞİN;
Uygulamanızdan yola çıkarak belirtilecek olunursa,seçenek değerine göre tabloya ilgili sonuç için 1 değerini yazıp tek karakterlik kayıt yapması mevcutken,bunun yerine karakter sayısı bakımından anlaşılması adına “GÖZLEM YAPILMADI” ifadesinin yazılması ile 16 karakter yazmak durumunda olunacak.ve bunu da tablodaki kayıt sayısı zamanla arttığında bunu tekrarlayacağı için bir süre sonrasında uygulamanın kapasitesini artırdığı görülecektir.elbette ki,öyle süper veya aşırı bir artışa nende olmayabilir fakat burada asıl değinilmek istenen bilerek bu artışa nende olacak şekilde uygulamaya yük bindirmemek ve bunlardan kaçınmak üzere uygun ve geçerli şekilde kayıt işlemini yerine getirmektir.doğru kullanıma yönlendirmeye teşvik etmektir.

Bu nedenle,öneri olması adına,bu hali ile kalması daha uygun demek istiyorum.gecikmeli de olsa bu uyarıyı yapmak istedim sadece.fakat ille de olması isteniyorsa,elbette buna dair çalışma yapılabilir.

Uygulamanızı (bir önceki mesajda da belirttiğim gibi inceleme imkanım olmamıştı fakat bu son eklediğiniz uygulamayı incelediğimde sorunuza (talebinize) bir yanıt vermeden öncesinde şu hususuı açıklamak yerinde olacaktır kanısındayım.

Alıntı:Veritabanına kayıt ederken, istediğim gibi kayıt ediyor ama seçenek grubunda yaptığım seçim gözükmüyor.

İfadenize yönelik olarak;
Tabloya kaydediyorsunuz fakat kayıtları görmek için buna dair bir işlev mevcut değil.yaptığınız kayıtların sonuçlarını görebilmeniz için ya formun kayıt kaynağını ilgili tablo olarak göstermeli ve ilişkisiz denetimleri kendi alanları ile ilişkilendirmelisiniz satır kaynağında ya da bir alt form veya listbox dahil ederek (ister mevcut form üzerinde isterseniz de ayrı bir formda) bu sonuçları göstermelisiniz.

Bu hali ile;kayıtları hangi seçime,işleme veya tetikleyici duruma göre gösterebilirsiniz ki.bu nedenle,bu çalışmayı da dahil etmelisiniz ki,istediğiniz görsel kayıt durumunu da formda sunabilesiniz.

Son olarak;
Lütfen ALINTI yapmak istediğiniz takdirde tüm mesajı değil sadece gerekli gördüğünüz kısmını yeni bir mesaj yazacak olursanız mesajınıza dahil etmeye özen gösteriniz.teşekkürler.bilginize…iyi çalışmalar,saygılar.
1 2