AccessTr.neT

Tam Versiyon: Sorgu tablosunda bazı alanların Tabloya gelmiyor
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Ana Tablodan Sorgu tablosu oluşturdum. Formdan girdiğim değerler  sorgu tablosunda görünüyor. Fakat sorgudaki bazı alanlar Ana tabloda neden görünmüyor.
Örneğin "sbakiye" alanındaki değerleri bir türlü getiremedim.
(24/03/2015, 17:08)53rize yazdı: [ -> ]Ana Tablodan Sorgu tablosu oluşturdum. Formdan girdiğim değerler  sorgu tablosunda görünüyor. Fakat sorgudaki bazı alanlar Ana tabloda neden görünmüyor.
Örneğin "sbakiye" alanındaki değerleri bir türlü getiremedim.

formunuzda sbakiye diye bi metin kutusu yok sbakiye metin kutusunu eklerseniz tabloyada kayıt olur bence
sayın 53rize,

EK'te;
bahsettiğiniz talebinize yönelik olarak gerekli düzenlemeleri tekrar yapılmış şekilde hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.bilginize.

iyi çalışmalar,
saygılar.
Sayın atoz112, sorunumu çözdünüz çok teşekkür ederim. Yalnız neden sorgu tablosundaki alanların bir kısmı geçiyorda bazıları geçmiyor. Öğrenme adına soruyorum. iyi çalışmalar saygılar.
sayın 53rize,

bahsettiğiniz bilgi talebi için aşağıdaki açıklamalar yeterli olacaktır.gerek ilk mesajınızda yazdığınız ifadelerde ve gerekse de uygulamanız ilk eklediğiniz hali ile incelendiğinde şu hususlar fark edilmiştir:

1)

Alıntı:Ana Tablodan Sorgu tablosu oluşturdum. Formdan girdiğim değerler  sorgu tablosunda görünüyor. Fakat sorgudaki bazı alanlar Ana tabloda neden görünmüyor.Örneğin "sbakiye" alanındaki değerleri bir türlü getiremedim.

ifadenize yönelik olarak;AnaA adlı sorgunuz formunuzdan tamamen bağımsız bir sorgu.dolayısı ile de buradaki değerlerin,oluşturulan hesaplama formülleri sonucu olarak kendi alanlarında göstermesi de doğaldır.

Ana adlı tablonuzdaki özellikle de (belirttiğiniz için ) sbakiye adlı alan boş gösterir.çünkü,sorgudaki hesaplama bu alana yansıtılmamıştır.bundan dolayı da,EVET içeriği itibarı ile sorguda gösterir ve HAYIR tabloda göstermez tanımlaması yapılmadığından.

2) Ana adlı formunuzun kayıt kaynağını farklı bir Sql sorgu ifadesi oluşturup göstermişsiniz.buradaki alan tanımlamaları için hazırlanan hesaplamalar da yetersiz kaldığından dolayı,size istenen sonuçları göstermemektedir.yine bahsi geçtiği için,özellikle de sbakiye alanı için de bu husus geçerlidir.

kaldı ki,bu formda Sube_bky adlı metin kutusunda göstermeyi istediğiniz sbakiye değeri için,denetim kaynağına
=[subeglr]-[Sube_gider] ifadesini yazmışsınız.

3) Ana adlı tablonuz tasarım olarak yapılandırılması incelendiğinde;sbakiye adlı alanın veri türünün Sayı olduğu görülmektedir.oysa bu alan sayı olarak değil Para Birimi olarak oluşturulmalıydı ki,parasal değer sonucu burada olması gerektiği gibi göstersin.

4) formunuzun kod sayfasında daha önceden Komut108 adlı bir buton oluşturup bunun içeriğini de

Kod:
Private Sub Komut108_Click()
Dim sql As String
sql = "INSERT INTO Ana ( kimlik, [sbakiye]) values (Forms!ana.kimlik , Forms!sube_bky)"
DoCmd.RunSQL sql
End Sub

olarak hazırlamışsınız fakat sonradan bu butonu formdan kodları kalmış halde iptal etmişsiniz.bu kod incelendiğinde,
INSERT INTO Sql sorgusu ile Ana adlı tabloya sbakiye değerini aktarmayı istemişsiniz.öncelikle belirtmek gerekir ki,bu kodun yazımı ve oluşturulma düşüncesi hatalı.

çünkü,ola ki böyle bir kullanım söz konusu olsaydı,gerçekleşecek olan şu olurdu;
Ana adlı tabloya yeni kayıtlar olarak,kimlik ve sbakiye olarak kaydetmek istendiğinde,hata verecekti,zira;kimlik alanı otomatik sayı olduğundan dolayı harici bir sayı yazdırmanıza izin verilmeyecekti bu alan için.

kaldı ki,tabloda yapılacak bazı ayarlamalar neticesinde bu kodun çalışır hale getirilmesi sağlansaydı bile,bahsi yapıldığı gibi;tabloda sadece kimlik ve sbakiye değerlerinin yer alacağı yeni kayıt ya da kayıtlar oluşacaktı.

bu Sql kodunu eklemekteki maksadınız elbette ki;sbakiye değerini formdaki hali ile aktarmakta zorlandığınızı düşünerek bir çare adına ilgili kimlik değerinin karşılığına denk gelmesi için sbakiye değerini bu şekilde aktarmak istediğiniz fark edilmekte.fakat,bu kullanılan Sql ifadesi hatalı seçim.bunun yerine UPDATE Sql sorgu ifadesini kimlik değerine göre WHERE kontrolü de yaptırarak tabloda bu alanı güncellemeniz daha geçerli olurdu.

NOT: UPDATE Sql sorgusunun kullanımını daha detaylı öğrenmeniz adına,site arama sayfasında UPDATE ya da GÜNCELLEME diye aratmak sureti ile içeriğinde daha bilgi ve örnekler barındıran konuları edinerek inceleyiniz.

bütün bu bahsi geçen hususların neticesinde,uygulamanızda SADECE formun,sorgunun içeriklerinde gerekli düzenlemeler yapılarak ve gerekli kodlamalar dahil edilerek,istediğiniz sonucun gösterilmesi ve sorununuzun giderilmesi sağlanmıştır.

NOT:bunların dışında kalanlara yönelik herhangi bir değişim ya da düzeltme yapılmamıştır.bilginize.

iyi çalışmalar,saygılar.
Sayın atoz112,Çok güzel açıklayıcı ve öğretici Bilgilendirmenizden dolayı çok teşekkür ederim. saygılarımla