Kod yazmadan istediğiniz sayıda form açın.

1 2 3
04/09/2011, 01:48

mehmetdemiral

Arkadaşlar, sitemizin eski adminlerinden olan bir uzmanımızın hazırladığı ve "accesstr.net üyelerinine armağan ettiği" bir çalışmayı biraz geliştirerek ana formu üzerine yerleştirdiğim 24 butonun (124 de olabilirdi) tek satır kod yazmadan 24 tane formu açmasını sağladım. Madde madde çalışmayı tanıtalım:

1- Çalışmamızın ana menüsünde buton yerine etiketler kullanılıyor ve kullanılan modül sayesinde etiketler renkli ve 3 boyutlu hareketli butonlara dönüşüyor. Tasarım ekranında etiketleri orijinal haliyle görüyorsunuz ancak çalıştırdığınızda etiketler renkli 3 boyutlu butonlara dönüşüyor, zemin renkleri falan modülden ayarlanıyor.

2- Etiketlerin adlarının lbl1...lbl24 biçiminde sıralanması zorunludur. Ayrıca etiketlerin üzerindeki yazılacak olan yazı da formunuzun adını taşımak zorundadır. Aksi taktirde düğme hata verecektir.

3-Etiketlerin caption'larını okutup bir değişkene atayarak bu değişkeni de açılacak form adına atayarak formları açtırdım. 3 satırlık kod, yerleştireceğiniz tüm etiketler için yeterlidir, yeter ki üzerinde yazan isim aynı zamanda formun ismi olsun. Yazdığım fonksiyon şöyle:

Kod:
Public Function MouseClick(ctl As Control)
  
  Dim degisken As String
  degisken = ctl.Caption
  DoCmd.OpenForm degisken

End Function

Bu demektir ki, bir denetim masası ya da ana menü yaparak tüm formların adlarını da üzerlerine yazarsak, tek satır kod yazmadan tüm formlarımızı açtırabiliriz. Ben 24 tane yaptım, daha fazlasını da copy-paste ile 48 tane yapıp siz denersiniz artık.

Bu çalışmayı incelemeyen pişman olur, benden söylemesi... + Repleri de unutmayalım bu arada)
04/09/2011, 02:08

Yandemir

güzel çalışma teşekkürler.
04/09/2011, 02:11

mehmetdemiral

Teşekkürler Murat. Senin gibi bir ustadan övgü almak sevindirici
04/09/2011, 02:13

boolean_

Teşekkürler hocam güzel bir örnek.
04/09/2011, 02:21

mehmetdemiral

Murat, rep verirken şöyle yazmışsın: "vardı bu örnek bende ama iyi oldu hatırladım yeniden. " Bu örnek zaten sitede mevcut. Ben birkaç programımda da ana menüde kullanmıştım. Yeni olan, benim ilave ettiğim şey, formları açmak için kullanmayı akıl ettiğim yöntemdir. Orijinal olan, benim kattığım şey, ctl.caption değerini değikene atayıp aynı isimdeki formları açtırma fikridir. Aslında o da Ozan'ın yapmamı istediği bir çalışmada ortya çıktı. Ozan "60 tane form var, her birine kod yazmadan nasıl yaparım abi" diye sorunca bu fikir çaktı kafamda. Çalışmanını aslında ctl.Caption değeri msgbox ile veriliyordu. HErkes bununla nasıl form açtırırız diye sormuştu. Ben de
Kod:
Select Case ctl.Caption
Case "form1"
DoCmd.OpenForm "form1", acNormal

biçimini önermiştim. Şimdi ise kod yok, degiskene atanan ctl.caption değeriyle aynı adı taşıyan form otomatik açılıyor. Değişim bu yani)
04/09/2011, 02:26

benremix

Mehmet hocam emek ve paylaşım için teşekkürler. Saygılar...
1 2 3