• DİKKAT

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

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
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
 
Bende hata vermedi. Diğer arkadaşlarda, Activex işaretli olmayabilir. Kontrol ettirebilir misiniz.

234783
 
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

.
 
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

.
 
@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.
 
Geri
Üst