ad soyad alanını sorguda ayırma

Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
merhaba
arkadaşlar tabloda tek alanda bulunan ad soyad verisini sorguda ad ve soyad olarak (iki isimli kayıtlar da var) nasıl ayırabilirim. forumda araştırdım konu ile ilgili kod var ama bu kodu sorguda nasıl kullanabileceğimi bilmiyorum
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
Merhaba abkbek,
Formada ayırmak istersen sana bir örnek göderiyorum
İyi akşamalar
 
Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
Sayın akd,

formda tamam, ama ben tabloda yeni alanlar kullanmadan sadece sorgu ile ayırıp bunu rapora yansıtmak istiyorum. direk sorgudaki fonksiyonlarla nasıl yapabilirim?
 

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,114
Excel Vers. ve Dili
2003
tabloda 2 alan daha açacaksın
 
Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
Sayın akd,
onu anladım, ancak ben yukarıda da ifade ettiğim gibi tabloya alan eklemeden sorgu sonucunda nasıl yapılabilir, çünkü bu söylediğim excel'de mümkün, dolayısıyla excel'in yaptığını acces sorgusu mutlaka yapar mantığı ile düşünerek sorguda nasıl yapılabileceğini öğrenmek istiyorum
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın abkbek,

İşiniz haloldu sanırım.

Fonksiyonlar:

Kod:
Public Function Ad(strName As String) As String
    Dim intLoc As Integer
        intLoc = InStr(1, strName, " ")
        Ad = Left(strName, intLoc)
End Function
Public Function Soyad(strName As String) As String
    Dim intLoc As Integer
        intLoc = InStr(1, strName, " ")
        Soyad = Right(strName, Len(strName) - intLoc)
End Function

Sorguda ise Tabloda tüm adın yazıldığı alan FullName ise o zaman SQL cümlesi:

Kod:
SELECT tblTable.FullName, Ad([FullName]) AS Ad, Soyad([FullName]) AS Soyad
FROM tblTable;
Olmalı.

İyi çalışmalar:)
 
Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
Sayın Modalı,
inanın size nasıl teşekkür edeceğimi bilemiyorum. yarın sabah erkenden mesaiye gideceğim ama bu problemi çözmeden uyuyamazdım. gönderdiğiniz kod ile çözüldü. bir kez daha sonsuz şükranlarımı sunuyorum.
saygılarımla iyi çalışmalar dilerim.
 
Katılım
4 Eylül 2006
Mesajlar
109
Excel Vers. ve Dili
Access 2002-2003 tr
Arkadaşlar, yukardaki kodlar yabancı isimler için doğru bir ayırma olabilir, çünkü onlar aynı alanda önce soyad sonra isimlerini yazıyorlar. Ayırmada yukarıdaki kodlara göre sorun çıkmıyor. Bizde 4 kelime içeren ad soyad var. Son kelimeyi soyad olarak ayırması diğer üçünü de ad olarak yazması gerekir. Yukarıdaki kodlar bu isteğe cevap vermiyor ki. Daha önce sayın modalı üç ismi ayıran kodu isteğe uygun olarak

http://www.excel.web.tr/showthread.php?t=21727
adresinde vermişti. Ben de 4 ismi formülle ayıran bir örnek eklemiştim. Kod üzerinde 4 isim ayırma olarak uğraşmadım ama InStr fonksiyonuyla sol taraftaki boşluğu buluyoruz da sağ taraftaki boşluğu kısa yoldan bulacak bir fonksiyon varmıdır bilemem ama, öyle bir işleç varsa kısa bir kod veya formül yetecektir.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

sende soyismi ayır kalanını ad olarak yaz kodlar muhteşem gerisi sana kalmış ama ondada sanırım kızlık soyadınıda kullanan olunca problem çıkar ama öyle biri yoksa hiçbir problem olmadan çalışır
 
Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
Arkadaşlar Sayın modalı'nın gönderdiği düzeltmeleri ben kendi örneğime uyarladım (çok küçük değişikliklerle) ve yukarıda bahsedilen 4 isimli de dahil olmak üzere her türlü ayrımı (ayırmak istediğiniz soyad bilgisi en sonda olmak kaydıyla) yapıyor. incelemek isteyenler için en son düzeltilmiş örnek dosyayı ekte gönderiyorum.
 
Katılım
4 Eylül 2006
Mesajlar
109
Excel Vers. ve Dili
Access 2002-2003 tr
Arkadaşlar, ad fonksiyonunu form üzerinde kullanırken hata veriyor. Name kelimesine çeviriyor. Fonksiyonun adını "ada" ve soyad fonksiyonunu da benzerlik olsun diye " soyada" olarak değiştirdim. Bu konu form ve sorgu üzerinde çözüldü zannederim. Emeği geçenlere teşekkürler.:hey:
 
Son düzenleme:
Üst