Microsoft DAO 3.6 Object Library

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba Arkadaşlar,

VBA Tools arasında olan "Microsoft DAO 3.6 Object Library" referansı bir dosyada var. Ama başka bir dosyayı açıp Tools > Referans olarak ekliyorum ama "Error in loading dll" hata uyarısı veriyor. Bunun bir çaresi var mıdır !
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bilgisayarınızda aşağıdaki dosya yolunda söz konusu dao360.dll dosyası var mı?

C:\Program Files (x86)\Common Files\microsoft shared\DAO\dao360.dll

.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
evet Haluk üstadım var, "C:\Program Files (x86)\Common Files\microsoft shared\DAO\" altında "dao360.dll" dosyası bulunuyor.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
O zaman DLL dosyasını Windows'a tekrar register etmeyi deneyin.

Bunun için;

1) Windows Start> Run (Başlat>Çalıştır) kutusuna cmd yazıp, Enter tuşlayın

2) Karşınıza bir DOS penceresi çıkacak, imlecin olduğu yere aşağıdakini aynen yazın ve tekrar Enter tuşlayın

(Kopyala yapıştır ile yapamazsınız, klavyeden takır-tukur yazmanız lazım....)


Kod:
cd "C:\Program Files (x86)\Common Files\microsoft shared\DAO"
3) Bu kez, DOS penceresine aşağıdakini yazın ve tekrar Enter tuşlayın

Kod:
regsvr32 dao360.dll
4) Her şey yolunda gittiyse, register işinin yapılmış olduğuna dair bir mesaj çıkacaktır. Bilgisayarı tekrar başlatmanız yararlı olur.

.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Haluk üstadım değerli zamanınızı ayırdığınız için çok teşekkür ediyorum. Yazdıklarınızı harfiyen yaptım ve kaydetme başarılı oldu mesajı çıktı. Bilgisayarı yeniden başlattım. Dosyadaki kodu çalıştırdığımda ise hata mesajı verdi : "ActiveX component cant create object"

Aşağıdaki kod daha önce çalışıyordu. Versiyon farkından ötürü acaba kodun bir bölümünü revize mi etmek gerekir ?
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sub RAPORLA()
On Error GoTo hata
Dim db As Database, rs As Recordset, str As String
[b6:g60000].ClearContents
Set db = OpenDatabase(ThisWorkbook.FullName, False, False, "Excel 8.0")
str = "SELECT * FROM [MERKEZ$] WHERE ([Tarih] Between " & [c3] & " And " & [d3] & ") AND " & _
"([AdiSoyadi] Like'" & [e3] & _
"') ORDER BY [" & [B3] & "]"
Set rs = db.OpenRecordset(str)
Sheets("Sonuçlar").[a6].CopyFromRecordset rs
db.Close: Exit Sub
hata:
MsgBox Error$(Err.Number)

End Sub
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bu şekilde deneyin, yine olmazsa dosyayı ekleyin...... bakalım.

Kod:
Sub RAPORLA()
    Dim DB As Object, RS As Object, str As String
    
    On Error Resume Next
        Set daoDBEngine = CreateObject("DAO.DBEngine")
        Set daoDBEngine = CreateObject("DAO.DBEngine.36")
        Set daoDBEngine = CreateObject("DAO.DBEngine.120")
    On Error GoTo 0
    
    On Error GoTo hata:

    [B6:G60000].ClearContents
    
    Set DB = daoDBEngine.OpenDatabase(ThisWorkbook.FullName, False, False, "Excel 8.0")
    
    str = "SELECT * FROM [MERKEZ$] WHERE ([Tarih] Between " & [C3] & " And " & [D3] & ") AND " & _
          "([AdiSoyadi] Like'" & [E3] & _
          "') ORDER BY [" & [B3] & "]"
          
    Set RS = DB.OpenRecordset(str)
    Sheets("Sonuçlar").[A6].CopyFromRecordset RS
    
    RS.Close
    DB.Close
    Set RS = Nothing
    Set DB = Nothing
    Set daoDBEngine = Nothing
    Exit Sub
hata:
    MsgBox Error$(Err.Number)
End Sub
.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,259
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Eğer işletim sitemi 64 bit ise, varsayılan olarak System32 içindeki 64 bit regsvr32.exe çalışır. 32 bit office ile kullanılacak bir kitaplığın SysWOW64 içindeki 32 bit regsvr32.exe ile kaydedilmesi gerekiyor diye biliyorum. Ayrıca cmd.exe, registry girişi yapılacağı için Yönetici modunda açılmalı.

İşe yaramazsa, Office mimarisine (32/64 bit) uygun MS Access Database Engine paketinin Microsoft sitesinden indirilip kurulması büyük ihtimalle sorunu çözecektir.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Zeki Gürsoy üstadım çok çok teşekkür ederim. Sanırım "Yönetici modunda çalıştırma" olayından kaynaklanıyormuş. şimdi çalıştı kod. size ve Haluk üstadıma çok teşekkür ederim.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
acaba koda 1 kriter daha eklemek istesem nasıl eklemem lazım !
kodun kriter kısmı aşağıdaki gibi

str = "SELECT * FROM [MERKEZ$] WHERE ([Tarih] Between " & [C3] & " And " & [D3] & ") AND " & _
"([AdiSoyadi] Like'" & [E3] & _
"') ORDER BY [" & [B3] & "]"

bir de Adet kriter eklemek istiyorum. denedim ama hata verdi.
([Adet] Like'" & [F3]
 
Üst