AccessTr.neT

Tam Versiyon: Alt form yeni kayıtta hareket kısıtlamak.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5 6
Merhabalar, basit bir cari programı üzerinde çalışıyorum. Program açılınca anaform ekrana gelecek. Kullanıcı Üst formdan firmamızı ve cariyi seçerek alt forma geçecek ve burada cariye ait bir hareket girecek. İşte burada kullanıcının seçeceği senaryolara göre bazı hareketler tanımlamayı düşünüyorum. Mesela seçilen carinin türü satıcı ise tarihi doldurunca otomatik açıklamaya numaralı fatura yaz ve alacak sütununa konumlan gibi. Ancak bu olayların tetiklenmesi için kullanıcının hareketlerini kısıtlamam gerekiyor, mesela evrak sütununa uğramadan geçmesin gibi.
Mouse ile istediği kolona konumlanamasın kullanıcı, illaki enter tuşunu kullanıp istediğim bütün sütunlara uğrasın ki olaylar tetiklensin. ve son olarakta tarihi yazmadan tarih alanını terkedemesin. Böyle bir şey mümkünmü. yardım ederseniz sevinirim. Ben tarihin çıkıldığında olayında bir şeyler denedim fakat tamda beceremedim aslında.
Sayın denizl,

Bahsettiğiniz taleplerinize yönelik olarak aşağıda uygun görülen açıklamalar yapılmıştır.

1)
Alıntı:...Program açılınca anaform ekrana gelecek...

ifadeniz için;ARAÇLAR-BAŞLANGIÇ seçimi yaparak SEÇENEKLER penceresine geliniz.ilk açılan pencere olarak ekranda beliren GEÇERLİ VERİTABANI üzerindeki UYGULAMA SEÇENEKLERİ başlığı altında yer alan FORM GÖRÜNTÜLE satırının yanındaki açılan kutu denetiminden ANAFORM ifadesini seçip TAMAM ile bu pencereyi kapatıp kaydediniz.

Böylece,istediğiniz talebiniz gerçekleşmiş olacak,bir sonraki uygulamanızı açıp kapattığınızda.

2)
Alıntı:...seçilen carinin türü satıcı ise...

ifadeniz için;cari türünün satıcı olmasını ancak sizin bildirmeniz ile buna vakıf olunabilir.çünkü;bu hususa dair bir yorum yapma imkanı sağlayacak veri söz konusu değildir.ilgili tabloları belirttiğiniz alanlara göre bir düzenlemede bulunmak sureti ile tekrar düzenlemeniz gerekmektedir bu nedenle.kaldı ki,bazı taleplerinizin yerine getirilmesi için,ilgili tabloların belirttiğiniz şekilde yapılandırılmasının yanı sıra birkaç veri de barındırmalı ki elde edilmek istenen sonuçların da rahat bir şekilde değerlendirilerek incelenebilmesi de sağlanabilsin.

3)
Alıntı:... kullanıcının hareketlerini kısıtlamam gerekiyor...

ifadeniz için;aslında bahsettiğiniz bütün bu kısıtlama isteklerinizin yolu,kaydetme ya da herhangi bir işlem yapma öncesinde tüm alanların kontrolü yapılarak hem boş alan kalmasın kontrolünün tamamlanması ve tanımlanmasının sağlanması hem de veriler girildikçe farklı istenen yönlendirmeler varsa bu yönlendirmeler için istenen denetimlere odaklanılmasının gerçekleştirilmesi için,BOŞ ALAN KONTROLÜ ve ODAKLANMA işlemlerinin yapılmasıdır.

Site arama sayfasında,”boş alan” ya da “boş kayıt” veya “boş kontrol” benzeri ifadeleri ve ayrıca “odaklanma” ifadelerini arama yapmak sureti ile edineceğiniz çeşitli konulardaki bilgi ve örnekleri inceleyiniz.

uygulamanızda herhangi bir soruna veya hataya maruz kalacak olursanız,bu hata veya sorunların gerek isimlerini ayrıntılı belirterek ya da sorunları net ifade ederek ve gerekse de ekran görüntüleri dahi eklemek sureti ile,çözümler arayabilirsiniz.

katılımcılar tarafından,açacağınız konuda uygun görülecek olan gerekli bilgi ya da örnek paylaşımlarının yapılması da mümkün olacaktır.

Son olarak,uygulamanızı 2.maddede yazılı hususa göre tekrar düzenleyip,her bir tablonuzda birkaç veri içerecek şekilde tekrar eklemeyi ihmal etmeyiniz.bilginize...iyi çalışmalar,saygılar.
 
Merhaba sayın atoz112, birinci madde soru değildi, istediğimi anlatmak için belirtmiştim. ikinci maddeyi de henüz programa eklemedim,  bu sorunu aştığımda ekleyeceğim. Sorun hakkında geçen zaman içinde bende kafa yormaya devam ediyorum. Şöyle bir yol buldum. altformun enter olayına
DoCmd.GoToRecord , , acNewRec
Form_AnaformAlt.hrktarih.SetFocus  bu iki kodu ekledim. Böylece cari firmayı seçip entere bastığımda alt formda yeni kayda gidiliyor ve tarih alanına odaklanılıyor. Sonra alt formda hrktarih_Exit olayına Me.hrkevrak.SetFocus kodunu ekledim. Böylece kullanıcı ne yaparsa yapsın tarihten çıktığı anda benim istediğim yere yani evrak alanına odaklanacak. son olarakta hrkevrak_Exit olayına
If IsNull(Me.hrktarih) Then
Me.hrktarih.SetFocus
End If kodlarını ekledim. Tarih doldurulmadıysa geri dönülecek. Aslında istediğim tamda buydu.Kullanıcı alt forma girer girmez tarih alanına odaklanacak. çıkıldığında olayına yazdığım kod sayesinde kullanıcı başka bir sütuna geçmek istese bile geçemeyecek mecburen evrak alanına uğrayacak. Ancak cariyi seçtiğimizde belirtilen kayda gidilemez hatası alıyorum, bunu nasıl önleyebilirim. Çalışmanın son hali ektedir.
güncel..
Sayın Denizl,

Uygulamanız ile ilgili bir çalışma yapmaksızın sadece çalışmasını izlemek üzere incelendiğinde bazı sorunlara maruz kalındığı ve kodlarınız bir düzenlemeye gidilmesinin şart olduğu gözlenmiştir.aşağıda bu hususlara değinilerek,dikkatinizi bunlara çekmek ile birlikte,üzerinde birlikte değerlendirmek sureti ile sizin de uygun bulduğun takdirde istişare etmenin gerekliliği ve tavsiyelerde bulunmanın önemli olduğu düşünülmüştür.

1) Hem Anaform adlı formun üzerinden AnaformAlt adlı alt formun Girildiğinde olay yordamı hem de AnaformAlt adlı alt formun kendi Açıldığında olay yordamı içerisine iki kez yeni kayıt açma anlamındaki 
Kod:
DoCmd.GoToRecord , , acNewRec

kod ifadesini yazmışsınız.Sadece bir kerelik olmak üzere,ilgili alt formun Yüklendiğinde olay yordamı içerisine bu yeni kayıt kodunu ve tercihinize göre de istenilen denetime odaklanmayı sağlamanız yeterlidir.

a)       
Kod sayfasında Anaform adlı formun kod sayfasına geçiniz ve
Kod:
'Private Sub AnaformAlt_Enter()
'DoCmd.GoToRecord , , acNewRec
'Form_AnaformAlt.hrktarih.SetFocus
'End Sub

kod satırını etkisizleştiriniz ya da iptal edip siliniz.

b)
Kod sayfasında AnaformAlt adlı formun kod sayfasına geçiniz ve
Kod:
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
Me.hrktarih.SetFocus
End Sub

kod ifadelerini bu şekilde düzenleyiniz.böylece,
Alıntı:...cariyi seçtiğimizde belirtilen kayda gidilemez hatası alıyorum...

sorununuzu da çözmüş olursunuz.

2) AnaformAlt adlı alt formun Güncelleştirme Sonrasında olay yordamı içerisindeki KAYDETME üzerine yazılı kod çalışmasının sonuç dönüşünde hata söz konusu.

“Kaydedilsin mi” sorusu ile kararı,tercihe bırakılırken,HAYIR işaretlenmek istendiğinde bu kod ifadelerine göre bir kodlama olmadığından dolayı yine kaydetme işlemi gerçekleşmektedir. Option Compare Database  kod satırı ilgili kod sayfasında mevcut olduğu için kod yazımında hata söz konusu olsa bile uyarı vermeyeceğinden dolayı çalışmanın gerçekleşmesine devam edilmektedir.olası muhtemel hataları görmek ve müdahale edebilmek için,bu kodun yerine Option Explicit kod satırını eklemeyi alışkanlık edinmeye gayret gösteriniz,daha faydalı olması adına.

bu konuda,site arama sayfasında,"Option Explicit" ifadesini aratmak sureti ile bilgiler edinebilirsiniz.

Kaydetme üzerine yazılan kod ifadelerini kontrol etmeniz ve site içi aramalarda tercihli mesajlarda nasıl bir kodlamanın gerektiğine dair araştırıp bilgiler ya da örnekler edinebilirsiniz.

Bilginize…iyi çalışmalar,saygılar.
 
sayın atoz112, ilginize çok teşekkür ediyorum. AnaformAlt_Enter() olayını iptal ettim. Form_Open olayına ilgili kodları yazdım. evet artık hata vermiyor, ancak alt forma geçince yeni kayda konumlanmıyor. Örneğin son halini ekledim, örnek üzerinde bakabilirmisiniz.
Sayfalar: 1 2 3 4 5 6