• DİKKAT

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

Excel database

Katılım
8 Eylül 2008
Mesajlar
73
Excel Vers. ve Dili
2003 ing
Merhabalar,
Şöyle ki,
* database.xls diye bir dosyamız var.
* program.xls dosyasından veriler database.xls dosyasına yazılıyor

Sorun: program 2 kişi tarafından açılmaya çalışıldığında read-only moduna takılıyor ve bir kullanıcı verileri database ye yazamıyor. Read-only moduna yakalanmaması için yapılabilecek birşey varmıdır?
 
Database dosyasını açarak değilde ADO ile kayıt yapmayı deneyin.:cool:
 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.xls;Extended Properties=Excel 8.0;"

ADO ile şifre koyduğum bir excel dosyasının şifresini açmak mümkünmü ben başaramadım, ondan dolayı ilk önce şifresini Workbooks.Open ile açıyordum. Sizce nasıl yapmalıyım ?
 
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.xls;Extended Properties=Excel 8.0;"

ADO ile şifre koyduğum bir excel dosyasının şifresini açmak mümkünmü ben başaramadım, ondan dolayı ilk önce şifresini Workbooks.Open ile açıyordum. Sizce nasıl yapmalıyım ?
1234 yazan yere kendi şifrenizi yazarak deneyiniz.:cool:
Kod:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.xls;Extended Properties=Excel 8.0;Jet OLEDB: Database Password=[B][COLOR="Red"]1234[/COLOR][/B];"
 
Böyle bir şey olacak ama bir yerde bir hata yapıyoruz.Şifreyi çözemedi diyor.:cool:
Kod:
conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db.xls;Jet OLEDB:Database Password=1234;Extended Properties=""Excel 8.0;""")
 
Hocam,
sizin dediğiniz şekilde de, bu şekilde de denedim ama olmadı :S

Kod:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db.xls";Microsoft.Jet.OLEDB.4.0:Database Password=1234;Extended Properties=Excel 8.0;"
 
Hocam,
sizin dediğiniz şekilde de, bu şekilde de denedim ama olmadı :S

Kod:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ThisWorkbook.Path & "\db.xls";Microsoft.Jet.OLEDB.4.0:Database Password=1234;Extended Properties=Excel 8.0;"
Size kötü haber.
Yaptığım araştırma neticesine göre,Maalesef şifreli excel dosyalarına ADO ile hiç bir işlem yapılamıyor.
Zaten exceli vt olarak kullanmakta bu gibi işler için hiçte doğru değil.
En azından mdb(Access) dosyası kullanmanız gerekirdi.:cool:
 
malesef sistemde herşeyi excel ile yapmam gerekiyor. Read-only modundan kurtulmak yetecek bana. Sırasal mantık yüreteceğim. Txt dosyasına herkes db ye connect olmadan ismini yazacak ve sırası gelmeyen dbye giremeyecek ama bazen anladığım kadarıyla sıra atlanıyor ve read-only e takılıyor. Bu kötü birşey, yada program error verince sırasal işlem bozuluyor. dosyayı şifresiz hale getirip görememeleri için attrib ile saklamak gerekecek belki. Şu an için bilemiyorum. :S
 
malesef sistemde herşeyi excel ile yapmam gerekiyor. Read-only modundan kurtulmak yetecek bana. Sırasal mantık yüreteceğim. Txt dosyasına herkes db ye connect olmadan ismini yazacak ve sırası gelmeyen dbye giremeyecek ama bazen anladığım kadarıyla sıra atlanıyor ve read-only e takılıyor. Bu kötü birşey, yada program error verince sırasal işlem bozuluyor. dosyayı şifresiz hale getirip görememeleri için attrib ile saklamak gerekecek belki. Şu an için bilemiyorum. :S
Aşağıdaki kodu deneyiniz.
Eğer dosya açıksa uyarı verip hatya düşülmüyor.Ve readonly dosyayı kapatıyor.
Deneyiniz.:cool:
Kod:
If Workbooks.Open(ThisWorkbook.Path & "\db.xls").ReadOnly = True Then
    MsgBox "Bu dosya şu anda açık.Başka bir kullanıcı tarafından kullanışıyor.!" & _
    vbLf & "Dağa sonra yeniden deneyin.", vbCritical, "DOSYA AÇIK"
    Workbooks(Db.xls).Close
End If
 
Kod:
Application.DisplayAlerts = False
If Workbooks.Open(ThisWorkbook.Path & "\db.xls").ReadOnly = True Then
MsgBox "dosya açık"
Workbooks("db.xls").Close False
Else
Workbooks("db.xls").Close True
End If


İle olayı yardımınızla çözdüm bir uyarı daha veriyordu. Onu engelledim.

Teşekkürler, ben bu komutu yanlış kullanıyordum, workbooks(dosya).readonly = true olarak dolayısıyla hata veriyordu hataları sona göndertiyordum. Yeni birşey öğrenmiş oldum :)

Kolay gelsin / İyi çalışmalar.
 
Kod:
Application.DisplayAlerts = False
If Workbooks.Open(ThisWorkbook.Path & "\db.xls").ReadOnly = True Then
MsgBox "dosya açık"
Workbooks("db.xls").Close False
Else
Workbooks("db.xls").Close True
End If


İle olayı yardımınızla çözdüm bir uyarı daha veriyordu. Onu engelledim.

Teşekkürler, ben bu komutu yanlış kullanıyordum, workbooks(dosya).readonly = true olarak dolayısıyla hata veriyordu hataları sona göndertiyordum. Yeni birşey öğrenmiş oldum :)

Kolay gelsin / İyi çalışmalar.

Rica ederim.
İyi çalışmalar.:cool:
 
Geri
Üst