Metin kutusuna atılan ad ve soyadın alt alta gelmesi

24/10/2009, 11:52

derebeyi

Arkadaşlar
Hegu'nun sorusuna benim Tc Kimlik Sorgulama örneğimi eklemek istiyoruz. Ben ekledim ama bir sorunum var. Tc Kimliğini yazdığımız kişinin ad ve soyad bilgileri ayrı ayrı geldiği için adı soyadı alanında birleştirmek istiyorum. Bunun için şu yöntemleri denedim:

1- trim() kullanarak boşluklarını aldım. Belki boşluk nedeniyle alt satıra atıyordur diye düşündüm ama ilgisi yok.

2- Bana gerekli verileri mevcut metin içerisinden instr$ ile aldığım için bir de instr ile almayı denedim. Durum değişmedi.

3- Verileri değişkenlere gönderdim. ad1 ve ad2 değişkenlerine aldığım verileri daha sonra hem & ile hem de + ile birleştirmeyi denedim sonuç yine değişmedi.

4- Verileri form üzerindeki başka metin kutularına ve etiketlere aktardım. Daha sonra ad ve soyad metinkutularını veya etiketlerini bir başka metin kutusunda ve etikette birleştirdim yine olmadı.

5- Ad ve soyad değerlerini değişkenden form üzerindeki iki metin kutusuna aktardım sonra da metin kutularından tekrara bir değişkene aktardım. Onu da msgbox ile ekrana getirdim. Msgbox penceresinde bile değer alt alta görüntülendi.

6- Acaba gelen ad ve soyad bilgisi benim bilmediğim bir şekilde sayı olarak mı algılanıyor diye
Daha bir sürü yol denedim. Bir yeri atladım ama nereyi atladığımı bulamıyorum. Sonuç olarak neden böyle olduğunu anlayamadım. Ne dersiniz?
Örnek ekledim. Tc kimlik alanına bir tc nosu yazığ sorgulayın ve çıkan değerleri "aktar ve kapat" butonuyla ana forma aktarın. Göreceğiniz gibi Ad ve Soyad alt alta geliyor.
24/10/2009, 13:48

Seruz

Hem adı, hemde soyadının sonuna Alt+Enter'a tekabül eden, 2 karakter birden konmuş. ( Chr(13) & Chr(10) )
"Aktar ve Kapat" butonundaki ilgili kodları aşağıdaki şekilde değiştirince sorun kalmıyor.
Kod:
ad1 = Left$(Me.adi, Len(Me.adi) - 2)
ad2 = Left$(Me.soyadi, Len(Me.soyadi) - 2)
adsad = ad1 & " " & ad2
24/10/2009, 14:52

derebeyi

Teşekkürler Seruz
Yardımlarınla hallettim.
24/10/2009, 16:05

Bilgisayarcı

Kod:
Private Function Duzenle(ByRef str1, ByRef str2)
  str1 = Replace(str1, Chr(13), "")
  str1 = Replace(str1, Chr(10), "")
  str2 = Replace(str2, Chr(13), "")
  str2 = Replace(str2, Chr(10), "")
End Function

çağırırken de
Kod:
ad1 = Me.adi
ad2 = Me.soyadi
Duzenle ad1, ad2

şeklinde kullanmak yeterli olacaktır.

İlk önce soruya bakıp çözmüştüm. Sonradan cevap yazarken yazılanları okudum.
Seruz hocanın yazdığı kod doğru. chr(13),chr(10) da doğru, son 2 karekteri silersek bu da doğru ve hızlı. Fakat ileride başına da koyarlarsa gibi bir sıkıntı olabilir. Bu kod onu da kapsar. Ha dersen ki yaparlar mı böyle birşey sanmıyorum