AccessTr.neT

Tam Versiyon: İsimleri Ayırma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4
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ı
Sayfalar: 1 2 3 4