Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
DIKKAT: Bu örnekteki adımları, Northwind.mdb adlı örnek veritabanını değiştirme. Northwind.mdb dosyasını yedekleyin ve bu adımları veritabanının bir kopyasında isteyebilirsiniz.
Not: Bu makaledeki örnek kod Microsoft Data Access Objects kullanır. Bu kodun düzgün çalışması için Microsoft DAO 3.6 Nesne Kitaplığı'na başvurmalısınız. Bunu yapmak için <a0></a0>, Visual Basic Düzenleyicisi'nde Araçlar menüsünden Başvurular ' ı tıklatın ve sonra Microsoft DAO 3.6 Nesne Kitaplığı</a0> onay kutusunun seçili olduğundan emin olun.
Kod kullanarak, kullanıcı bir formu veya raporu açtığında bir parola isteyebilir. Doğru parolayı girerseniz form veya rapor açıldığında.
Aşağıdaki örnek <a0></a0>, parola yapabilecekleriniz nasıl gösterir Northwind.mdb adlı örnek veritabanındaki Orders formu koruma:
Access'i başlatın ve sonra da Northwind.mdb örnek veritabanını açın.
Microsoft Visual Basic Düzenleyicisi'ni başlatmak için ALT + F11 tuşlarına basın.
Ekle menüsünden modülü ' nü tıklatın.
Modül sayfasına aşağıdaki yordamı yazın:
Public MyPassword
Public Function KeyCode(Password As String) As Long
' This function will produce a unique key for the
' string that is passed in as the Password.
Dim I As Integer
Dim Hold As Long
For I = 1 To Len(Password)
Select Case (Asc(Left(Password, 1)) * I) Mod 4
Case Is = 0
Hold = Hold + (Asc(Mid(Password, I, 1)) * I)
Case Is = 1
Hold = Hold - (Asc(Mid(Password, I, 1)) * I)
Case Is = 2
Hold = Hold + (Asc(Mid(Password, I, 1)) * _
(I - Asc(Mid(Password, I, 1))))
Case Is = 3
Hold = Hold - (Asc(Mid(Password, I, 1)) * _
(I + Len(Password)))
End Select
Next I
KeyCode = Hold
End Function
Access'e dönmek için ALT + F11 tuşlarına basın.
(Nesneler) ' in altında <a1>Veritabanı</a1> penceresinde Tablolar ' ı tıklatın ve sonra da Yeni'yi tıklatın.
Yeni Tablo iletişim kutusunda, Tasarım görünümü) çift tıklatın.
Yeni bir tablo aşağıdaki gibi oluşturursunuz:
Table: tblPassword
---------------------------
Field Name: ObjectName
Data Type: Text
Field Size: 50
Field Name: KeyCode
Data Type: Text
Field Size: 25
Input Mask: Password
Table Properties: tblPassword
-----------------------------
PrimaryKey: ObjectName
TblPassword tabloyu açın ve sonra da aşağıdaki verileri girin:
ObjectName: Orders
KeyCode: 2818
Tasarım görünümünde yeni bir form oluşturmak ve formu frmPassword kaydedin.
Tek bir metin kutusu Text0 adlı frmPassword ve CheckPassword adlı bir komut düğmesi ekleyin.
(Tırnak işaretleri) eksi Text0 "PASSWORD" için Giriş maskesi özelliğini ayarlayın.
CheckPassword düğmenin OnClick olay için aşağıdaki kodu ekleyin ve sonra formu kaydedin:
If IsNull(Forms!frmPassword!Text0.Value) Then
MsgBox "You cannot enter a blank Password. Try again."
Me!Text0.SetFocus
Else
MyPassword = Me!Text0.Value
DoCmd.Close acForm, "frmPassword"
End If
Siparişler formu Tasarım görünümünde açın.
Özellik sayfası görünür değilse, Görünüm menüsünden Özellikler ' i tıklatın.
Aşağıdaki olay yordamını OnOpen özelliğini formun modülünün yazın:
Private Sub Form_Open(Cancel as Integer)
Dim Hold As Variant
Dim tmpKey As Long
Dim I As Integer
Dim rs As DAO.Recordset
Dim db As DAO.Database
On Error GoTo Error_Handler
' Prompt the user for the Password.
DoCmd.OpenForm "frmPassword", acNormal, , , , acDialog
Hold = MyPassword
' Open the table that contains the password.
Set db = CurrentDb
Set rs = db.OpenRecordset("tblPassword", dbOpenTable)
rs.Index = "PrimaryKey"
rs.Seek "=", Me.Name
If rs.NoMatch Then
MsgBox "Sorry cannot find password information. Try Again"
Cancel = -1
Else
' Test to see if the key generated matches the key in
' the table; if there is not a match, stop the form
' from opening.
If Not (rs![keycode] = KeyCode(Cstr(Hold))) Then
MsgBox "Sorry you entered the wrong password." & _
"Try again.", vbOKOnly, "Incorrect Password"
Cancel = -1
End If
End If
rs.Close
db.Close
Exit Sub
Error_Handler:
MsgBox Err.Description, vbOKOnly, "Error #" & Err.Number
Exit Sub
End Sub
Kapatın ve sonra da siparişler formu kaydedin.
Orders formunu açın ve bir parola istendiğinde PASSWORD yazın.
Siparişler, açılır form dikkat edin. PASSWORD tarafından oluşturulan KeyCode KeyCode tblPassword tablodaki eşleşen ve büyük/küçük harf girilen parolayı bağlıdır.
Kapatın ve yeniden Orders formunu açın ve parola girmeniz istendiğinde, parolayı yazın.
Aldığınız ileti dikkat edin:
Üzgünüm, yanlış parola girdiniz. Yeniden deneyin.
Parola yordamı büyük/küçük harfe duyarlı olduğundan, Siparişler formundaki açılmaz.
Belirli bir dize için karşılık gelen KeyCode ne olduğunu belirlemek için <a0></a0>, aşağıdaki komut penceresi içinde yazın ve ENTER tuşuna basın:
?KeyCode("TestString")
5864 önceki örnek verir.
Veritabanı penceresinde tblPassword tablosunu gizlemek için <a0></a0>, tblPassword tabloyu sağ tıklatın ve sonra da Özellikler ' i tıklatın. Properties penceresinde <a0>Gizli</a0> onay kutusunu seçin ve Tamam ' ı tıklatın.
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:209871
(http://support.microsoft.com/kb/209871/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.