Tüm Excel Versiyonlarında Çalışan Bağlantı Kodları

Katılım
7 Mart 2022
Mesajlar
9
Excel Vers. ve Dili
365 - Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2023
Merhabalar. Office 365 kullanmaktayım. Excel vba kullanarak Access'den veri çekmek için kullandığım kodu aşağıda paylaştım.
Bu vba programı diğer öğretmen arkadaşlarımla paylaştığımda Office 365 kullananlar dışında hepsi hata aldıklarını söylediler. Bu sorunun nasıl önüne geçerim?

C#:
Sub ogrencilistesi()
Dim conn As New Connection
Dim rs As New Recordset

strcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & ThisWorkbook.Path & "\Veritabani.accdb;"
conn.Open (strcon)

qry = "SELECT adsoyad FROM ogrencilistesi"
rs.Open qry, conn, adOpenKeyset, adLockPessimistic

With UserForm1.ListBox1
.ColumnCount = 11
.Column = rs.GetRows
End With


rs.Close
conn.Close
End Sub
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,056
Excel Vers. ve Dili
Microsoft Office 2019 English
Bende hata vermedi. Diğer arkadaşlarda, Activex işaretli olmayabilir. Kontrol ettirebilir misiniz.

234783
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,291
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Özel kişi
Aşağıdaki satırların yerine;

C#:
Dim conn As New Connection
Dim rs As New Recordset

bunları yerleştirip, deneyin;

C#:
Dim conn As Object
Dim rs As Object

Const adOpenKeyset = 1
Const adLockPessimistic = 2

Ayrıca; "End Sub" satırından önce de nesneleri aşağıdaki satırları ilave ederek nesneleri boşaltmanızda fayda var;

C#:
Set rs = Nothing
Set conn = Nothing
.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,237
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Hata iletisinin ne olduğunu da belirtseydiniz isabetli cevaplar gelirdi. Aşağıdaki düzenlenmiş kodu deneyin...

C#:
Sub ogrencilistesi()
    Dim conn As New Connection
    Dim rs   As New Recordset
    
    On Error GoTo exitline
    
    strcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & ThisWorkbook.Path & "\Veritabani.accdb;"
    conn.Open strcon
    
    On Error GoTo 0
    
    qry = "SELECT adsoyad FROM ogrencilistesi"
    rs.Open qry, conn, adOpenKeyset, adLockPessimistic
    
    With UserForm1.ListBox1
        .ColumnCount = 11
        
        If rs.RecordCount = 0 Then
            MsgBox "Öğrenci kayıtları bulunamadı"
            GoTo closeobjects
        Else
            .Column = rs.GetRows
        End If
    End With
    
closeobjects:
    
    rs.Close
    conn.Close
    Exit Sub
    
exitline:
    MsgBox "Provider yüklü değil !", vbExclamation
End Sub
.
 
Katılım
7 Mart 2022
Mesajlar
9
Excel Vers. ve Dili
365 - Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2023
@Trilenium , @Haluk , @Zeki Gürsoy Hepinize ayrı ayrı teşekkür ediyorum. Programı ilk etapta kullanacak hedef grubu elli yaş üzeri meslektaşlarım olunca pek sağlıklı geri bildirim alamıyorum. Eski bir bilgisayarım var ona şimdi 2015 vb. eski sürümleri yükleyip, hataların neler olduğunu da tespit ettikten sonra yeniden yazacağım. İlginize alakanıza çok teşekkür ediyorum.
 
Üst