TC numaraları çift rakam

Katılım
1 Şubat 2008
Mesajlar
66
Excel Vers. ve Dili
türkçe
2003
metin yada sayı veri türü ile biçimlendirilmiş bir alana TC numarası yazılmak isteniyor.TC numaraları çift sayı olduğundan tek sayı girişini kod kullanmadan nasıl engelleyebilirim.selamlar
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

bu isteğiniz için birçok yol kullanabilirsiniz.. En kolayı da girilen sayıyı Mod fonksiyonu ile kontrol etmek olur sanırım..

Giriş yaptığınız denetimin güncelleştirme öncesine şu düzende bir kod yazarsanız sadece çift sayılara kayıt izni vermiş olursunuz..:

Kod:
[COLOR=#0600ff]If[/COLOR] [COLOR=#0600ff]Right[/COLOR][COLOR=#000000]([/COLOR][COLOR=#0600ff]Me[/COLOR].metin_kutusu_adi, [COLOR=#7d2252]1[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#0600ff]Mod[/COLOR] [COLOR=#7d2252]2[/COLOR]  [COLOR=#0600ff]Then[/COLOR]
MsgBox [COLOR=#fb0000]"TC Kimlik numarası Tek sayı olmaz"[/COLOR], vbCritical
[COLOR=#0600ff]Me[/COLOR].Undo
[COLOR=#0600ff]End[/COLOR] [COLOR=#0600ff]If[/COLOR]
Bu sadece tek-çift kontrolü yapar.. Eksik hane kontrolünü de eklemek isterseniz Len fonksiyonunu kullanarak kodu genişletebiliriz..
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Soruyu ilk okuduğumda anlayamadım, bu işlem için Kimlik doğrulama fonksiyonum var. Onu Kullanabilirsiniz.


Kod:
Public Function dogrula(kimlikNo As String) As String

Dim x, Top1, Top2, H1, H2 As Integer
ReDim A(11) As Variant

If Len(kimlikNo) <> 11 Then
    MsgBox "TC Kimlik No 11 Haneli olmalıdır", vbCritical, "UYARI"
    dogrula = "Yanlış veri"
    Exit Function
End If

For x = 0 To 10
     A(x) = CInt(Mid(kimlikNo, x + 1, 1))
Next x

Top1 = 3 * (A(0) + A(2) + A(4) + A(6) + A(8)) + (A(1) + A(3) + A(5) + A(7))

H1 = 10 - Top1 Mod 10

If H1 = 10 Then H1 = 0

Top2 = (A(0) + A(2) + A(4) + A(6) + A(8)) + 3 * (A(1) + A(3) + A(5) + A(7) + H1)

H2 = 10 - Top2 Mod 10

If H2 = 10 Then H2 = 0

If H1 = A(9) And H2 = A(10) Then
    dogrula = "Doğru TC Kimlik No"
Else
    dogrula = "Yanlış TC Kimlik No"
End If


End Function
İyi çalışmalar
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın Taruz,
Sayın Modalı;

Günaydın..

Katkılarınız için teşekkürler..

Selam ve sevgiler..
 
Katılım
1 Şubat 2008
Mesajlar
66
Excel Vers. ve Dili
türkçe
2003
mrhb

soru sahibi olarak bende ilgilenen arkadaşlara çok teşekkür ediyorum ve kod kullanmadan çözüm için örnek rica ediyorum
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Giriş yaptığınız metin kutusunun geçerlilik kuralı özelliğini de kullanabilirsiniz ama oraya da kod yazılması gerekli..

Kod kullanmadan nasıl olmasını istiyorsunuz anlamadım? Ya da size zararı nedir?
 
Katılım
1 Şubat 2008
Mesajlar
66
Excel Vers. ve Dili
türkçe
2003
mrhb

evet sayın hocam düşündüğüm yöntemde bu yani 'geçerlilik kuralı' hazırlamak yardımınızı rica ederim
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Sayın Taruz
Geçerlilik kuralına dogrula([TC Kimlik Numarası])
yazsak fonksiyon çalışır mı?
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Genelde TC kimlik numaraları metin olarak keydedilmektedirler. Sizde sayı. Bu yüzden:

Kod:
dogrula(Cstr(KimlikNo))
olarak deneyin.

İyi çalışmalar
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın Modalı ve Taruz;

Günaydın.. Katkılarınız için teşekkürler...
 
Katılım
3 Nisan 2007
Mesajlar
235
Excel Vers. ve Dili
2003 TR
Teşekkürler. Ancak, aynı hatayı yine aldım.
 
Üst