A.S.C Filtre, Grafik ve Raporlama Eklentisi

[VBA] Access Class Textbox Change Olayı Text Hatası
#1
Merhaba.

Classs ile textbox verilerini birleştirmeyi başaramadım.
Visual Basic
  1. aa = aa & vbNewLine & kontrol.name



Yukarıdaki kodda kontrol.name yerine kontrol.Text yazarsam odaklanmadan dolayı hata veriyor.Çözüm nedir?
Saygılar.



Form Kodlar;

Visual Basic
  1. Option Compare Database
  2.  
  3. Private KontrolCollection  As Collection
  4.  
  5.  
  6. Private Sub Form_Load()
  7.  
  8.     Dim olay  As ClassTextboxSec
  9.     Dim kontrol As Access.Control
  10.  
  11.     Set KontrolCollection = New Collection
  12.  
  13.     For Each kontrol In Me.Controls
  14.         If kontrol.ControlType = acTextBox Then
  15.             Set olay = New ClassTextboxSec
  16.             olay.Initialize kontrol
  17.             KontrolCollection.Add olay, kontrol.name
  18.         End If
  19.     Next
  20.  
  21.     Set olay = Nothing
  22.     Set Control = Nothing
  23.  
  24. End Sub
  25.  
  26.  
  27. Private Sub Form_Unload(Cancel As Integer)
  28.  
  29.     Dim olay  As ClassTextboxSec
  30.     
  31.     On Error Resume Next
  32.     
  33.     For Each olay In KontrolCollection
  34.         olay.Terminate
  35.     Next
  36.  
  37.     Set olay = Nothing
  38.     Set KontrolCollection = Nothing
  39.  
  40. End Sub



Class kodlar;

Visual Basic
  1. Option Compare Database
  2.  
  3. Private Const olayTextBox  As String = "[Event Procedure]"
  4.  
  5. Private WithEvents ClassTextBox As Access.TextBox
  6.  
  7. Public Sub Initialize(TextBox As Access.TextBox)
  8.     Set ClassTextBox = TextBox
  9.     ClassTextBox.OnChange = olayTextBox
  10. End Sub
  11.  
  12.  
  13. Public Sub Terminate()
  14.     Set ClassTextBox = Nothing
  15. End Sub
  16.  
  17.  
  18. Private Sub ClassTextBox_Change()
  19.  
  20.     Dim kontrol As Control
  21.     Dim aa
  22.     
  23.     For Each kontrol In Forms("Form1")
  24.         aa = aa & vbNewLine & kontrol.name
  25.     Next
  26.     
  27.     MsgBox aa
  28.     
  29. End Sub




Eklenti Dosyaları
.rar   class Textbox change olayi.rar (Boyut: 48,75 KB / İndirilme: 5)



  Alıntı
Bu mesajı beğenenler:
#2
sn feraz Change olayını aşağıdaki gibi değiştirin, istediğiniz gibi çalışacaktır.
Visual Basic
  1. Private Sub ClassTextBox_Change()
  2.  
  3.    Dim kontrol As Control
  4.    Dim aa
  5.  
  6.    For Each kontrol In Forms("Form1")
  7.  
  8.        kontrol.Application.RunCommand acCmdSave
  9.        kontrol.Requery
  10.        aa = aa & vbNewLine & kontrol
  11.        
  12.    Next
  13.    
  14.    MsgBox aa
  15.    
  16. End Sub





  Alıntı
Bu mesajı beğenenler:
#3
Teşekkürler sayın  @onur_can.

Gifte gördüğünüz gibi textboxlara 1 den fazla karakter girilemiyor.

[Resim: MTVlNzcyZDQ1MGM1ZGQ.gif]



  Alıntı
Bu mesajı beğenenler:
#4
text kutusuna bir karakter girdiğinizde olay çalışıyor, Aslında 1 karakter girdikten sonra text kutusu seçili hale geldiği için siz 1 karakterden fazla girilmediğini düşünüyorsunuz. 1 karakter girdikten sonra çıkan pencereye tamam dedikten sonra metni seçili olmaktan kurtarıp yanına bir karakter daha girin. Bu şekilde birçok karakter girilebilir.



  Alıntı
Bu mesajı beğenenler:
#5
(22-03-2020, 14:44)onur_can demiş ki: text kutusuna bir karakter girdiğinizde olay çalışıyor, Aslında 1 karakter girdikten sonra text kutusu seçili hale geldiği için siz 1 karakterden fazla girilmediğini düşünüyorsunuz. 1 karakter girdikten sonra çıkan pencereye tamam dedikten sonra metni seçili olmaktan kurtarıp yanına bir karakter daha girin. Bu şekilde birçok karakter girilebilir.
Evet ama her defasında fare ile enson boş yere tıklamak gerekiyor textboxun.



  Alıntı
Bu mesajı beğenenler:
#6
ilgili kodu alttaki gibi değiştirince çözüldü Smile
Teşekkürler sayın @onur_can



Visual Basic
  1. Private Sub ClassTextBox_Change()
  2.      
  3.         Dim kontrol As Control
  4.         Dim aa
  5.         
  6.         aa = vbNullString
  7.         
  8.         For Each kontrol In Forms("Form1")
  9.             If kontrol.ControlType = acTextBox Then
  10.                 kontrol.Application.RunCommand acCmdSave
  11.                 aa = aa & "," & kontrol
  12.             End If
  13.         Next
  14.         
  15.         aa = Mid(aa, 2)
  16.         Forms("Form1").Controls("Metin13") = aa
  17.         If Len(ClassTextBox) > 0 Then
  18.             ClassTextBox.SelStart = Len(ClassTextBox)
  19.         Else
  20.             ClassTextBox.SelStart = 1
  21.         End If
  22.         
  23.  
  24.     End Sub





  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FONKSiYON] Access Optionbutton Class Yardım feraz 2 147 18-01-2020, 02:07
Son Mesaj: feraz
  [FORM] Access çalışmayı Durdurdu Hatası M_Kemal_Askeri 8 244 14-10-2019, 10:27
Son Mesaj: onur_can
  access runtime kurulma hatası tarkanay 2 149 11-09-2019, 12:51
Son Mesaj: tarkanay
  [TABLO] Excell'den access'e veri aktarma hatası ( Number formatı veri hatası) akkana 3 544 08-01-2019, 16:45
Son Mesaj: halily
  [FORM] Textbox içine açıklama eklemek asoha 2 387 10-10-2018, 08:33
Son Mesaj: asoha
  [VBA] Başka Textbox Yükseklik Değerini Alma alperalper 4 423 08-10-2018, 09:34
Son Mesaj: alperalper
  [FORM] formda textbox ta nokta girilirse virgüle çevirsin caytug 4 4.595 22-05-2018, 12:02
Son Mesaj: dsezgin
access-sql-2 Access2de kullanıcı adını formlarda, textbox veya labelda nasıl gösteririz? Mr.Midnight 4 661 24-01-2018, 13:00
Son Mesaj: Mr.Midnight

Foruma Git:


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