Form Açılırken Nesneye Değer Atayamazsınız Hatası

1 2 3
07/10/2018, 23:32

Oğuz Türkyılmaz

Formda Senet Düzenle Butonuna tıkladığımda böyle bir hata mesajı ile karşılaşıyorum. Nedeni ve çözümü ile ilgili bilgi verebilirmisiniz.




08/10/2018, 00:44

ozanakkaya

Merhaba, bu kodu daha önceki sorunuzdaki düzenmeye göre ben yazmıştım.

O örnekte, senet düzenle formunun kayıt kaynağı farklı idi. Şu anki "FRM_SENETDUZENLE" isimli formunuzun kayıt kaynağı "TBL_KIRASOZLESMESI" isimli tablo. "TBL_SENETDUZENLE" isimli tablo formun kayıt kaynağında belirtilmemiş.

Formun kayıt kaynağının;

SELECT * FROM TBL_KIRASOZLESMESI LEFT JOIN TBL_SENETDUZENLE ON TBL_KIRASOZLESMESI.Kimlik = TBL_SENETDUZENLE.SOZLESMENO; 

şeklinde olması gerekiyor.

Ayrıca, önceki uygulamaya göre 

GTaksit = Me.SENETTUTAR / Me.SENETADEDI

şeklinde kod eklenmişti. Şu anki formda SENETTUTAR isminde bir denetim yok. 
Koddaki Me.SENETTUTAR kısmının Me.BirYillikKiraKarsiligiRakamİle ile değiştirilmesi gerekli.

Formunuzda değişiklik yaptığınızda, kodların da değiştirilmesi gerekiyor. 

Me.SENETADEDI kısmı da yok. Bunun da (doğru anladıysam) Me.TAKSIDADEDI kodu ile değiştirilmesi gerekli.
SENETVADEBASLANGICI'nın VADEBASLANGIC ile değiştirilmesi gerekli.

Yine önceki uygulamada yapılan düzenlemede, formda sağ taraftaki 12 etiket ve 12 metin kutusunun isimlerini Etiket1, Metin1, ..... Etiket12, Metin12 şeklinde düzenlemiştim. 

Controls("Etiket" & X).Visible = True şeklindeki kod buna bağlı olarak çalışıyordu.

Siz yeni etiket ve yeni metin kutuları eklemişsiniz. Etiket1, etiket2 farklı yerde kaldığı için form açıldığında yanlış denetimler gizleniyor. Hesaplama yapılmıyor.

Önceki uygulamada formdaki Senet oluştur butonunun tıklandığında olayına kod yazılmış, Hesap Yap fonksiyonunun çalıştırılması sağlanmıştı. Ancak sizin şu anki butonda Katıştırılmış Makro var. Benim kodda eser yok. Katıştırılmış Makro'dan uzak durun. Vba kodu yazmaya çalışın.
08/10/2018, 01:29

Oğuz Türkyılmaz

(08/10/2018, 00:44)ozanakkaya yazdı: Merhaba, bu kodu daha önceki sorunuzdaki düzenmeye göre ben yazmıştım.

O örnekte, senet düzenle formunun kayıt kaynağı farklı idi. Şu anki "FRM_SENETDUZENLE" isimli formunuzun kayıt kaynağı "TBL_KIRASOZLESMESI" isimli tablo. "TBL_SENETDUZENLE" isimli tablo formun kayıt kaynağında belirtilmemiş.

Formun kayıt kaynağının;

SELECT * FROM TBL_KIRASOZLESMESI LEFT JOIN TBL_SENETDUZENLE ON TBL_KIRASOZLESMESI.Kimlik = TBL_SENETDUZENLE.SOZLESMENO; 

şeklinde olması gerekiyor.

Ayrıca, önceki uygulamaya göre 

GTaksit = Me.SENETTUTAR / Me.SENETADEDI

şeklinde kod eklenmişti. Şu anki formda SENETTUTAR isminde bir denetim yok. 
Koddaki Me.SENETTUTAR kısmının Me.BirYillikKiraKarsiligiRakamİle ile değiştirilmesi gerekli.

Formunuzda değişiklik yaptığınızda, kodların da değiştirilmesi gerekiyor. 

Me.SENETADEDI kısmı da yok. Bunun da (doğru anladıysam) Me.TAKSIDADEDI kodu ile değiştirilmesi gerekli.
SENETVADEBASLANGICI'nın VADEBASLANGIC ile değiştirilmesi gerekli.

Yine önceki uygulamada yapılan düzenlemede, formda sağ taraftaki 12 etiket ve 12 metin kutusunun isimlerini Etiket1, Metin1, ..... Etiket12, Metin12 şeklinde düzenlemiştim. 

Controls("Etiket" & X).Visible = True şeklindeki kod buna bağlı olarak çalışıyordu.

Siz yeni etiket ve yeni metin kutuları eklemişsiniz. Etiket1, etiket2 farklı yerde kaldığı için form açıldığında yanlış denetimler gizleniyor. Hesaplama yapılmıyor.

Önceki uygulamada formdaki Senet oluştur butonunun tıklandığında olayına kod yazılmış, Hesap Yap fonksiyonunun çalıştırılması sağlanmıştı. Ancak sizin şu anki butonda Katıştırılmış Makro var. Benim kodda eser yok. Katıştırılmış Makro'dan uzak durun. Vba kodu yazmaya çalışın.
 Evet ozan bey ben formda değişiklik yaptım hepsinin farkındayım raporla uğraştığımdan buraya bakamadım, hesapla kısmına zaten gelemedim kayıt kaynağına yazılacak kodu bulamadığımdan. 
      Senet tutar bölümünü aslında örneğimde ben kira sözleşmesinin 1 yıllıkkirabedelirakamile alanından çekmek istemiştim siz uygulamada senet düzenle kısmında elle girilecek alan şeklinde yapmıştınız ben eğer bilgi ilk formda bir yerde varsa ve ben o bilgiyi 2.formda kullanacaksam 2.formun tablosuna ekleme yapmak istemediğimden sadece etiket ismini değiştirerek kullandım bu durumda zaten varolan bir bilgi için 6-7 defa daha tuşa basmak yerine o bilginin 1.formdan 2. forma otomatik çekilmesini ve giriş yapan kişinin mümkün olduğu kadar az zaman harcamasını hedefliyorum yanlışım varsa lütfen düzeltin çünkü bir yıllıkkirabedelirakamile alanındaki değer zaten toplam düzenlenecek senet tutarına eşit. Senet depozito olayınada zamanı gelince değinip nasıl çözeceğimi size danışacağım. 
Sizin neyi nerde yaptığınızı tespit etmek benim bu işi öğrenmemin anahtarı ve bu halinden itibaren adım adım ne yaptığınızı öğrenerek gitmek istiyorum gönderdiğiniz düzenlemede bazı ihtiyaçların çözümü eksik kalmıştı onları da sizlere danışarak anlamaya çalışarak yapmak istiyorum. Cebelleşmeden olmaz düsturundan hareketle, Söylediğiniz değişiklikleri yapıp Vba konularını içeren derslere başlayacağım vakit ayırdığınız için teşekkür ederim.
08/10/2018, 01:54

ozanakkaya

Sayın @Oğuz Türkyılmaz, önceki mesajınızda kırmızı ile yazdığınız mesaja istinaden,

Uygulamanın yapımcısı sizsiniz ve henüz tasarım aşamasında olduğunun farkındayım. Benim eklediğim hesaplamada, formdaki alanların hangi amaçla eklendiğini bilmediğim için bu şekilde yazıldı. Önceki formda yanlış hatırlamıyorsam taksit sayısı için 2 alan vardı. 

Hesaplamayı görebilmeniz ve hesaplamadaki kodların nasıl işlediğini görebilmeniz için o şekilde yazıldı. Siz hesap için farklı denetim (metin kutusu) kullanacaksanız kodu da ona göre değiştirmelisiniz. Bu değişiklikler sırasında kod yapısını çözebilir, sonraki modifikasyonlarda benzeri kod kullanabilirsiniz.

Formdaki yapı değişikliklerinde koddaki yapıyı da düzenlemeniz gerekir, yoksa kod çalışmaz. Uygulamanız ile ilgili herhangi bir sorun olduğunda çekinmeden yeni konu açarak sorun, "bu da sorulur mu acaba" demeyin.
08/10/2018, 03:19

Oğuz Türkyılmaz

(08/10/2018, 01:54)ozanakkaya yazdı: Sayın @Oğuz Türkyılmaz, önceki mesajınızda kırmızı ile yazdığınız mesaja istinaden,

Uygulamanın yapımcısı sizsiniz ve henüz tasarım aşamasında olduğunun farkındayım. Benim eklediğim hesaplamada, formdaki alanların hangi amaçla eklendiğini bilmediğim için bu şekilde yazıldı. Önceki formda yanlış hatırlamıyorsam taksit sayısı için 2 alan vardı. 

Hesaplamayı görebilmeniz ve hesaplamadaki kodların nasıl işlediğini görebilmeniz için o şekilde yazıldı. Siz hesap için farklı denetim (metin kutusu) kullanacaksanız kodu da ona göre değiştirmelisiniz. Bu değişiklikler sırasında kod yapısını çözebilir, sonraki modifikasyonlarda benzeri kod kullanabilirsiniz.

Formdaki yapı değişikliklerinde koddaki yapıyı da düzenlemeniz gerekir, yoksa kod çalışmaz. Uygulamanız ile ilgili herhangi bir sorun olduğunda çekinmeden yeni konu açarak sorun, "bu da sorulur mu acaba" demeyin.

Yapmamı istediğiniz tüm düzenlemeleri yaptım sadece 12 adet etiket ve metin kutusunun adını sizin koda yazdığınızı söylediğiniz şekilde değiştirimekte sorun yaşıyorum Etiket1 ismini verdiğimde  bu hata mesajı ile karşılaşıyorum. Bu kısmı nasıl aşarım.



08/10/2018, 03:47

ozanakkaya

Zaten hatanın sebebi yazıyor. Etiket1 isimli etiket var ise 2. Etiket1'i oluşturamazsınız. Önce Etiket1'in ismini Etiket1222 olarak değiştirin.
1 2 3