şifreli dosyada yetkilendirme

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
üstatlarım, bir fikri olan yokmu?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
"Dosya_Aç" procedure'ü kaynak dosyaya, "Private Sub Workbook_BeforeSave" i hedef dosyaya (Saltokunur dosya) yerleştirin.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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....
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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]
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 
Üst