• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

şifreli dosyada yetkilendirme

Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
merhaba

forumda arattım ama daha önce böyle bir konu ele alınmamış sanırım. bir veritabanı programını ağda çalıştıracağım. yetkili olan kişiler (şifreyi bilenler) dışındaki kişilere dosya salt okunur açılsın ve farklı isimle kayıt yapamasınlar istiyorum. ama forumda böyle bir yetkilendirmeyle ilgili birşey bulamadım. yardımlarınızı bekliyorum.
 
Dosyanızın .xls olduğunu tahmin ediyorum.

Dosya açarken yapılacak denetim,
Kod:
Sub Dosya_Ac()
    If sifre = 1234 Then
        Workbooks.Open "C:\Test.xls"
    Else
        Workbooks.Open "C:\Test.xls", ReadOnly:=True
    End If
 
End Sub

Kayıt yapmak istendiğinde yapılacak denetim (ThisWorkbook modulu),
Kod:
Private Sub Workbook_BeforeSave( _
            ByVal SaveAsUI As Boolean, _
            Cancel As Boolean)
 
If ThisWorkbook.ReadOnly = True Then Cancel = True
End Sub
 
Dosyanızın .xls olduğunu tahmin ediyorum.

Dosya açarken yapılacak denetim,
Kod:
Sub Dosya_Ac()
    If sifre = 1234 Then
        Workbooks.Open "C:\Test.xls"
    Else
        Workbooks.Open "C:\Test.xls", ReadOnly:=True
    End If
 
End Sub

Kayıt yapmak istendiğinde yapılacak denetim (ThisWorkbook modulu),
Kod:
Private Sub Workbook_BeforeSave( _
            ByVal SaveAsUI As Boolean, _
            Cancel As Boolean)
 
If ThisWorkbook.ReadOnly = True Then Cancel = True
End Sub

sayın anemos

ilginize çok teşekkür ederim. sub dosya aç kodunu, salt okunur açılacak dosyanın içine mi koyacağız, içine koyuyorsak ilk açılışta şifre penceresi koysam dosyayı salt okunur açarmı? Yoksa ayrı bir şifre dosyası yapıp (ayrı bir xls) açacağım dosyaya linkmi vermeliyim?
 
"Dosya_Aç" procedure'ü kaynak dosyaya, "Private Sub Workbook_BeforeSave" i hedef dosyaya (Saltokunur dosya) yerleştirin.
 
hızlı cevabınız için teşekkür ederim. demek direkt olarak veritabanına yapamıyoruz, tühhh... ayrı bir menü dosyası yapmak gerekecek şimdi....
 
Aynı dosya üzerinde olacağını belirtmemiştiniz.
Dosyanın açılışında (Activate olayında) şifre penceresi çağırırsınız. Şifre doğru değilse, aktif dosya saltokunur duruma geçebilir. (Kayıtlı bir dosyada test edin.)

Şifre penceresindeki karar yapısı:
Kod:
Sub Sifre_Sor()
Application.DisplayAlerts = False
    If sifre <> 1234 Then
        ThisWorkbook.ChangeFileAccess xlReadOnly
    End If
Application.DisplayAlerts = True
End Sub

Kaydetmeden önce yapılacak denetimde değişiklik yapmaya gerek yoktur.
Kod:
[LEFT]Private Sub Workbook_BeforeSave( _
          ByVal SaveAsUI As Boolean, _
          Cancel As Boolean)[/LEFT]
 
[LEFT]If ThisWorkbook.ReadOnly = True Then Cancel = True[/LEFT]
 
[LEFT]End Sub[/LEFT]
 
Aynı dosya üzerinde olacağını belirtmemiştiniz.
Dosyanın açılışında (Activate olayında) şifre penceresi çağırırsınız. Şifre doğru değilse, aktif dosya saltokunur duruma geçebilir. (Kayıtlı bir dosyada test edin.)

Şifre penceresindeki karar yapısı:
Kod:
Sub Sifre_Sor()
Application.DisplayAlerts = False
    If sifre <> 1234 Then
        ThisWorkbook.ChangeFileAccess xlReadOnly
    End If
Application.DisplayAlerts = True
End Sub

Kaydetmeden önce yapılacak denetimde değişiklik yapmaya gerek yoktur.
Kod:
[LEFT]Private Sub Workbook_BeforeSave( _
          ByVal SaveAsUI As Boolean, _
          Cancel As Boolean)[/LEFT]
 
[LEFT]If ThisWorkbook.ReadOnly = True Then Cancel = True[/LEFT]
 
[LEFT]End Sub[/LEFT]

sizin kodlarınızı ve sayın cost controlun kodlarını kullanarak bir dosya yaptım. istendiği gibi dosyayı salt okunur açıyor ama makroda hata veriyor.

http://www.excel.web.tr/showthread.php?p=230058#post230058

yukarıdaki linkte konuyu detaylı anlattım, yardımcı olabilirseniz sevinirim.
 
Geri
Üst