Skip to main content

AccessTr.neT


Metin Kutusu Birleştirmek Ve Text Özelliği

Metin Kutusu Birleştirmek Ve Text Özelliği

#13
Class demeyeyim ama modül olabilir belki, tüm formlarda kullanılabilecek belli başlı durumlarda aktif nesnenin rengini yada fontunu değiştirmek gibi, yada onfocus gibi odaklanildiginda kullanılabilecek genel geçer durumlar için modül oluşturup modüle eklenebilir fonksiyon formload olayında da çağrılarsa sorun çıkarmaz diye düşünüyorum tabi birkaç ufak degisiklikle
Cevapla
#14
(21/03/2020, 02:15)berduş yazdı: Class demeyeyim ama modül olabilir belki, tüm formlarda kullanılabilecek belli başlı durumlarda aktif nesnenin rengini yada fontunu değiştirmek gibi, yada onfocus gibi odaklanildiginda kullanılabilecek genel geçer durumlar için modül oluşturup modüle eklenebilir fonksiyon formload olayında da çağrılarsa sorun çıkarmaz diye düşünüyorum tabi birkaç ufak degisiklikle
Anladım gözüme çarpan bir durum daha var onuda birazdan soracağım Img-grin

Mobilden takip ettiğim için anlamaya çalışıyorum kodları.
Cevapla
#15
(20/03/2020, 23:15)berduş yazdı: öncelikle değiştiğinde çalışmasını istediğiniz metin kutularının IM/Tag özelliğine degistiginde yazın sonrada form load /form yüklendiğindeolayına aşağıdaki kodu ekleyin
Dim ctl As Control
    For Each ctl In Me
        If ctl.Tag = "degistiginde" Then
            ctl.OnChange = "=Degisti([" & ctl.Name & "])"
        End If
    Next ctl
sonrada ilgili forma aşağıdaki fonksiyonu ekleyin
Public Function Degisti(ByRef ctl As Control)
Dim ctl2 As Control
Me.Metin0 = ""
    For Each ctl2 In Me
        If ctl2.Tag = "degistiginde" Then
            If ctl2.Name = ActiveControl.Name Then _
              Me.Metin0 = Me.Metin0 & "|" & IIf(Len(Nz(Trim(ctl2.Text))) = 0, ".", Trim(ctl2.Text)) Else _
              Me.Metin0 = Me.Metin0 & "|" & Nz(Trim(ctl2), ".")
        End If
       
    Next ctl2
Me.Metin0 = Mid(Me.Metin0, 2)

End Function

metin0 değerini isgecmis ile değiştirin
Alttaki kodda ctl olarak parametre girmişiniz ve kullanmamışsınız function içinde ve bence gereksiz foreach kurmuşsunuz gibi sanki galiba..Çünkü zaten ilk yani üstteki kodda foreach ile döngü çalışırken control adlarını yolluyor function içine.Haksızmıyım?
Cevapla
#16
Fonksiyonda zaten ctl tanimli oldugundan ctl2 dediginiz gibi gereksiz  dogrudanctrl ile devam edilebilirdi ama 2. for each gerekli çünkü formloadda kullanılan for each metin kutularına olay atarken fonksiyonda kullanılani, değerleri metin kutusuna atıyor.
Cevapla
#17
(20/03/2020, 23:15)berduş yazdı: öncelikle değiştiğinde çalışmasını istediğiniz metin kutularının IM/Tag özelliğine degistiginde yazın sonrada form load /form yüklendiğindeolayına aşağıdaki kodu ekleyin
Dim ctl As Control
    For Each ctl In Me
        If ctl.Tag = "degistiginde" Then
            ctl.OnChange = "=Degisti([" & ctl.Name & "])"
        End If
    Next ctl
sonrada ilgili forma aşağıdaki fonksiyonu ekleyin
Public Function Degisti(ByRef ctl As Control)
Dim ctl2 As Control
Me.Metin0 = ""
    For Each ctl2 In Me
        If ctl2.Tag = "degistiginde" Then
            If ctl2.Name = ActiveControl.Name Then _
              Me.Metin0 = Me.Metin0 & "|" & IIf(Len(Nz(Trim(ctl2.Text))) = 0, ".", Trim(ctl2.Text)) Else _
              Me.Metin0 = Me.Metin0 & "|" & Nz(Trim(ctl2), ".")
        End If
       
    Next ctl2
Me.Metin0 = Mid(Me.Metin0, 2)

End Function

metin0 değerini isgecmis ile değiştirin

Yani alıntıdaki function koduna alttaki gibi gibi örnek olarak döngüsüz topluca yazılabilir.Yada array içine control adları alınıpta olabilir.Neyse kafaları karıştırmayayım sonuçta çözülmüş.


Me.isgecmis = Nz(Me.isyeri1.text, ".") & "|" & Nz(Me.iskolu1, ".") & "|" & Nz(Me.yapis1, ".") & "|" & Nz(Me.isgirtar1, ".") & "|" & Nz(Me.isciktar1, ".") _
    
& "|" & Nz(Me.isyeri2, ".") & "|" & Nz(Me.iskolu2, ".") & "|" & Nz(Me.yapis2, ".") & "|" & Nz(Me.isgirtar2, ".") & "|" & Nz(Me.isciktar2, ".") _
    
& "|" & Nz(Me.isyeri3, ".") & "|" & Nz(Me.iskolu3, ".") & "|" & Nz(Me.yapis3, ".") & "|" & Nz(Me.isgirtar3, ".") & "|" & Nz(Me.isciktar3, ".")
Cevapla
#18
Sanmıyorum. şu an hatırlamıyorum sayin @accessman in dosyasında tablo olup olmadığını, ama ben çalışmayı tablosuz ve ilişkisiz formda yaptım, ayrica sayin @accessman ilk mesajında .textin kullanılması gerektiğini belirtmişti yani metin kutusuna girilen yada silinen her harften sonra değerin isgecmis metin kutusuna atanması gerektiğini. Oysa sizin kodda son değer tek atanıyor, sadece ilk alan için anlık değişiklik dikkate alınıyor, diğerlerinde değil
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task