metin1 kutusunda aralarında - (çizgi) işareti olan isimleri ayrı ayrı metin kutularına yazdırmak istiyorum metin kutusu yetersiz olduğu durumlarda yeni metin kutusunu otamatik eklemek istiyorum
yardımcı olursanız sevinirim teşekkürler kolay gelsin
emin değilim ama
Excel formlarında olmasına rağmen
Access fromlarda, herhangi bir formu tasarım modunda açmadan, yeni komtrol eklenemiyor.
tam olarak yapmak istediğiniz ne?
neden hepsini farklı metin kutularına aktarmak istiyorsunuz?
bir formda isimler kutusuna birden fazla isimi aralarında - işaretini koyarak yazmak zorunda kalıyoruz ama raporlar iken isimleri ayrı ayrı yazmam gerekiyor
metin kutusu eklemek zorunda değiliz en fazla 6 isim oluyor 6 metin kutusunu görünmez yapıp isim sayısına göre görünür de yapılabilinir
ama liste kutusu, açılır kutu yada belki geçici bir tablo oluşturulup tabloya bağlı bir alt form aracılığıyla isteğinize yakın bir sonuç elde edilebilir.
ama tam olarak amacınızı bilmeden hangisi en uygunudur söylemek zor.
Public Function SplitT(Metin As String, Ayrac As String, Sayi As Integer)
SplitT = Split(Metin, Ayrac)(Sayi)
End Function
Private Sub Komut75_Click()
a = SplitT(Me.Metin1, "-", 0)
b = SplitT(Me.Metin1, "-", 1)
c = SplitT(Me.Metin1, "-", 2)
d = SplitT(Me.Metin1, "-", 3)
end sub
buna benzer birşey yapmaya çalışıyorum
bunda isim sayısı 4 ten eksik olursa hata veriyor
yani bir isim varsa sadece a=birinci isim diğerleri ise boş olacak
iki isim varsa a= ilk isim b= ikinci isim ve diğerleri boş olacak
inşallah anlatabilmişimdir
teşekkür ederim
öncelikle 10 metin kutusu ekleyin isimleri-->metin1,metin2,.... metin10
metin kutularının etiketlerinin isimleri de etiket1, etiket2,.....etiket10 olsun
buton75 tıklama olayının kodu
dilerim işinize yarar
Kod:
Private Sub Komut75_Click()
Dim DiziIsimBol() As String
Dim x As Integer
For x = 1 To 10
Me.Controls("metin" & x).Visible = False
Me.Controls("etiket" & x).Visible = False
Next x
If Nz(Me.Metin0, "") = "" Or IsNull(Me.Metin0) Then Exit Sub
DiziIsimBol = Split(Me.Metin0, "-")
For x = LBound(DiziIsimBol) To UBound(DiziIsimBol)
If x > 9 Then
MsgBox ("listedeki isim sayısı 10u aştı! sadece ilk 10 isim yazılacak")
Exit Sub
End If
Me.Controls("metin" & x + 1).Visible = True
Me.Controls("etiket" & x + 1).Visible = True
Me.Controls("metin" & x + 1) = DiziIsimBol(x)
Next x
End Sub
4 ten az olunca hata olması normal çünkü
split()(n) demek (n+1). elemanı al demektir, siz 3 yazdığınızda en az 4 eleman olmalı