access için regex

Katılım
22 Mart 2006
Mesajlar
73
Acccess te giriş maskesi denilen kısı php deki Regular Expression (Regex) gibi mi çalışıyor.

Ben bu kısımda access için hazır email denetimi bulamadım. Bunu nerden bulabilirm ?

birde telefon numarası için (999) 000 00 00 böle bir maske var ama ben parantez istemediğim için parntezi sildim ama icraatta parantez hala var bunu nasıl kaldırabiirm
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın zodehala,

Telefon maskesi eğer tablo da konmuş ise o zaman uygulama bir soru soruyor ve verinin saklanma şeklini soruyor. Veri maskeli duruma göre mi saklansın veya düz olarak mı saklansın diye. Eğer tablodan maskeyi silip tekrar uygularsanız soruyu istediğiniz şekle göre cevaplayabilirsiniz. Ondan sonra aynı biçim forma da geçiyor. Siz formdaki biçimlemeyi değiştiriyor olabilirsiniz.

emaili maskelemek ise sanırım zor, çünkü karakter sayıları değişik olabiliyor. Ancak aşağıdaki kodlarla kontrol yapabilirsiniz.

Kod:
Private Sub txtEmail_BeforeUpdate(Cancel as Integer)
If Me!txtEmail Like "*[  !$%^&*()]*" Then
MsgBox "E-mail adresinizde uygun olmayan karakter var!",  vbOKOnly
Cancel = True
End If
If Me!txtEmail Not Like "*@*.*"  Then
MsgBox "E mail formatı şu şekilde olmalıdır: [EMAIL="name@server.doma"]name@server.doma[/EMAIL]in", vbOKOnly
Cancel = True
End  If
End Sub
İyi çalışmalar
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bir modüle aşağıdaki kodları yapıştırın. Bu modül -daha profesyonel bir biçimde- yazdığınız mail adresinin doğru olup olmadığını kontrol edecektir. İçinde türkçe karakter veya uygun olmayan karakter varsa uyaracaktır.


Function IsEmailAddress(ByVal strEmailAddr As String) As Boolean
Const cstrValidChars As String = "@_-.0123456789abcdefghijklmnopqrstuvwxyzİ"
Const cstrDot As String = "."
Const cstrAt As String = "@"
Const cintAddressLenMin As Integer = 6

Dim strValidChars As String
Dim booFailed As Boolean
Dim intPos As Integer
Dim intI As Integer
strEmailAddr = LCase(strEmailAddr)
For intI = 1 To Len(strEmailAddr)
If InStr(cstrValidChars, mid(strEmailAddr, intI, 1)) = 0 Then
booFailed = True
End If
Next
If booFailed = False Then
booFailed = Left(strEmailAddr, 1) = cstrAt
If booFailed = False Then
booFailed = Left(strEmailAddr, 1) = cstrDot
If booFailed = False Then
intPos = Len(strEmailAddr)
booFailed = (intPos < cintAddressLenMin)
If booFailed = False Then
booFailed = (InStr(intPos - 1, strEmailAddr, cstrDot) > 0)
If booFailed = False Then
intPos = InStr(strEmailAddr, cstrAt)
booFailed = (intPos = 0)
If booFailed = False Then
booFailed = (InStr(intPos + 1, strEmailAddr, cstrAt) > 0)
If booFailed = False Then
booFailed = (mid(strEmailAddr, intPos - 1, 1) = cstrDot)
If booFailed = False Then
booFailed = (mid(strEmailAddr, intPos + 1, 1) = cstrDot)
If booFailed = False Then
booFailed = Not (InStr(intPos, strEmailAddr, cstrDot) > 1)
End If
End If
End If
End If
End If
End If
End If
End If
End If
IsEmailAddress = Not booFailed
End Function


kullanımı ise şöyle

mail adresinin yazıldığı metin kutusunun günceleme öncesi veya sonrasında (tercih sizin) şuna benzer bir şekilde kontrol edilecek.


If IsEmailAddress(emailadres.Value) = False Then
MsgBox "email adresi yanlış", vbInformation, "uyarı"
End If


Kolay gelsin
 
Katılım
23 Kasım 2007
Mesajlar
245
Excel Vers. ve Dili
2003
Sayın mehmetdemiral,

Teşekkürler...
 
Üst