Formda tarih formatını ve alan kilitlemeyi nasıl yapabilirim?
#1
Değerli dostlarım;

İyi akşamlar.

Ekte yolladığım dosyadaki formda yapamadıklarım için yardımınızı rica edeceğim..

1- Form ilk açıldığında "Toplam Gider" Metin21 kutusu aktif, diğer tüm metin kutuları pasif olsun.

2- Tarih metin kutusuna tarih girdiğimde; bu kez Metin21 pasif, diğer tüm metin kutuları aktif olsun.

3- Formda tarih metin kutularına ay, gün ve yılı girerken, araya her seferinde manuel olarak nokta koyuyorum. Tarih biçimi nasıl olmalı ki, bu noktalarla uğraşmayayım?

4- Form arayüzüm çok kaba bir görünümde, bu konuda ne yapılabilir? Düşüncelerinizi öğrenmek isterim.

5- Formdaki hesaplamaları formül ile yaptım. Ancak kodla nasıl yapılabileceğini öğrenmek istiyorum.

Yardımlarınız için önceden teşekkürler.

Selam ve sevgiler..



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba sn. assenucler..

Alanları kilitlemek için sn.metinse'nin daha önce bizlerle paylaştığı kodları biraz revize ederek kullanabiliriz..

Formun VBA sayfasında boş bir kısma bu sub ları yazın..:

Visual Basic
  1. Private Sub AlanKapali()
  2. Dim ctl As Control
  3. For Each ctl In Me.Form.Controls
  4. Select Case ctl.ControlType
  5. Case acTextBox 'Bütün textbox bak
  6. ctl.Enabled = False
  7. ctl.BackColor = 16764057
  8. Case acComboBox 'bütün comboboxları konrol et
  9. ctl.Enabled = False
  10. ctl.BackColor = 16764057
  11. End Select
  12. Next
  13. SONTARIH.Enabled = True
  14. ILKTARIH.Enabled = True
  15. End Sub
  16.  
  17. Private Sub AlanAcik()
  18. Dim ctl As Control
  19. For Each ctl In Me.Form.Controls
  20. Select Case ctl.ControlType
  21. Case acTextBox
  22. ctl.Enabled = True
  23. ctl.BackColor = 16777215
  24. Case acComboBox
  25. ctl.Enabled = True
  26. ctl.BackColor = 16777215
  27. End Select
  28. Next
  29.  
  30. End Sub



Not: Bu alanları pasif yapar.. Kilitlemek için Enable yerine Locked kullanın.. True değerini de False olarak değiştirin..

Sonrasında forumun Geçerli Olduğunda Olayına şu kodu yazın..:

Visual Basic
  1. AlanKapali
  2. Metin21.Enabled = True
  3. Metin21.BackColor = 16777215



Tarih girdiğinizde tersi olması için SONTARIH ve-veya ILKTARIH metin kutularının Odaklanıldığında olayına da bu şeklde yazın..

Visual Basic
  1. AlanAcik
  2. Metin21.Enabled = False



Bu şekilde 1 ve 2 numaralı sorunlarınızı çözmüş oluruz..

Diğer sorunuz, tarih formatı içinse SONTARIH ve ILKTARIH metin kutularının Veri / Giriş Maskesi özelliğine bu maskı yazın..:

Kod:
99.99.00;0;_

Tarih girerken 12.06.2009 yerine 120609 girin.. Benimde kullandığım oldukça pratik bir masktır bu.. Sadece giriş yaparken bu formatta kullandığımızı, görünür biçimin yine 12.06.2009 şeklinde olduğunu belirtelim..
Kodları VBA sayfasından vermenize gerek yok bence.. Bu haliyle gayet iyi.. Ama yöntem olarak şöyle düşünün..:

Visual Basic
  1. Me.M23_muaf = Nz(DSum("[GIDER_FATURAODENEN]", "[GIDERTOPLAMPAYLARI_SRG]", "HAREKETTUR_ID = 7"), 0)



Bu aşamadaki en büyük farklılık noktalı virgül yerine VBA da virgül kullanılıyor..
Selamlar..



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Taruz hocam;

İyi akşamlar.

Bizlere bu çok güzel ve süper siteyi yeniden kazandırdığınız için sizleri biz kez daha kutlar ve tebrik ederken; yardımınız için bir kez daha teşekkür ederim.

En içten sevgi ve saygılarımla..



  Alıntı
Bu mesajı beğenenler:
#4
Ben de size bu güzel sözlerinizden dolayı teşekkür ederim sn. assenucler.. Smile

İyi akşamlar..



  Alıntı
Bu mesajı beğenenler:
#5
Selamlar. Konu biraz eski biliyorum fakat kdoun çok kullanışlı olduğunu düşünüyorum. Kendi formuma aşağıdaki kodu eklediğimde kayıtlar arasında gezinme veya arama yapmam mümkün olmuyor. Kod;

Private Sub AlanKapali()
Dim ctl As Control
For Each ctl In Me.Form.Controls
Select Case ctl.ControlType
Case acTextBox
ctl.Locked = True
ctl.BackColor = 16777153
Case acComboBox
ctl.Locked = True
ctl.BackColor = 16777153
End Select
Next
End Sub
Private Sub AlanAcik()
Dim ctl As Control
For Each ctl In Me.Form.Controls
Select Case ctl.ControlType
Case acTextBox
ctl.Locked = False
ctl.BackColor = 12189695
Case acComboBox
ctl.Locked = False
ctl.BackColor = 12189695
End Select
Next
End Sub


Şimdi benim Sorum Şu;

Bu kodu, sadece form üzerinde bulunan metin kutularını kilitleyecek şekilde nasıl uyarlarım?

Yardımcı olursanız sevinirim.



  Alıntı
Bu mesajı beğenenler:
#6
Kendim hallettim. Kodu Üreten arakadaşa teşekkürler.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [VBA] ülke Seçtiğimde Telefon Numaraları Formatını Değiştirmek. MRRES 2 257 15-12-2025, 18:16
Son Mesaj: MRRES
  Sorgu Içerisinde Boş Alan Varsa 0 (sıfır) Ile Doldurmak denizfatihi 3 515 15-08-2024, 14:38
Son Mesaj: beab05
  [SORGU] çarpraz Sorguda Sütun Değeri Olarak Birden çok Alan Seçebilir Miyiz? abkbek 2 410 13-08-2024, 21:18
Son Mesaj: abkbek
  [VBA] Pc. Tarih Formatını Değiştirme ates2014 8 644 09-01-2024, 09:18
Son Mesaj: ates2014
  [VBA] Bir Tabloda Alan Türü Uzun Metin Olan Iki Ayrı Alanı Karşılaştırmak abkbek 13 1.187 10-11-2023, 22:26
Son Mesaj: abkbek
  [SORGU] Farklı Tablolarda Yer Alan Satış Bilgilerini Toplama Sorgusu Lidervet 1 481 09-11-2023, 00:54
Son Mesaj: dsezgin
  Formda Otomatik Sıra No Verme Nasil Olur? mart02 2 482 15-09-2023, 09:21
Son Mesaj: akd27
access-sql-9 Text Kutusundaki Rakamı Alt Formda Bulan Hesap Sutunun Tüm Satırlarına Nasıl Eklenir bilservisci 7 917 29-08-2023, 22:19
Son Mesaj: bilservisci

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi