• DİKKAT

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

Kapalı dosya bağlantısı hata verince MsgBox

Katılım
28 Temmuz 2005
Mesajlar
85
Excel Vers. ve Dili
Excel 2016
Merhaba, Userform da kapalı .mdb dosyasına bağlantım var. Eğer bağlantı hatası olursa "On runtime Error "veriyor. Bunun yerine önce MsgBox ile uyarı çıksın, tamam butonuna basınca Userformu kapatsın istiyorum. Aşağıdaki şekilde oldu, ancak bu kez her şekilde MsgBox çıkıyor, çözemedim yardımcı olan olursa sevinirim.
Kod:
Private baglan As Object, RS As Object
Sub baglanti()
Set baglan = CreateObject("adodb.connection")
If baglan = True Then
#If VBA7 And Win64 Then
baglan.Open "provider=microsoft.ace.oledb.12.0;data source=\\server\VERIDATA.mdb", True
#Else
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=\\server\VERIDATA.mdb", True
Else
  MsgBox "Veritabanı Dosyası Bulunamadı !" & vbLf & " - " & vbLf & "Program kapatılacaktır.", vbOKOnly + vbInformation, "H A T A !"
End
Unload Me
#End If
End If
End Sub
 
Denemedim ama, aşağıdaki gibi bir kod işinize yarayabilir ....

Kod:
Sub baglanti()
    myDB = "\\server\VERIDATA.mdb"
    If Dir(myDB) = "" Then
        MsgBox "Veritabanı Dosyası Bulunamadı !" & vbLf & " - " & vbLf & "Program kapatılacaktır.", vbOKOnly + vbInformation, "H A T A !"
        Unload Me
        Exit Sub
    End If
    
    Set baglan = CreateObject("adodb.connection")
    
    #If VBA7 And Win64 Then
        baglan.Open "provider=microsoft.ace.oledb.12.0;data source=" & myDB, True
    #Else
        baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & myDB, True
    #End If
End Sub

.
 
Haluk Bey, maalesef hata verdi:
Kod:
Run-time error '-2147217843 (80040e4d)':
Uygulamanız başlatılamıyor. Çalışma grubu bilgi dosyası eksik veya
başka bir kullanıcı tarafından özel kullanımda açık durumda.

Kodun normalde çalışan hali şöyle:
Kod:
Private baglan As Object, RS As Object
Sub baglanti()
Set baglan = CreateObject("adodb.connection")
#If VBA7 And Win64 Then
baglan.Open "provider=microsoft.ace.oledb.12.0;data source=\\server\VERIDATA.mdb"
#Else
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=\\server\VERIDATA.mdb"
#End If
End Sub
 
Hangi satırda hata veriyor belirtmemişiniz....

Ayrıca; benim yazdığım kod sizinkinden çok farklı değil. Sadece, kodun başlangıcında; söz konusu MDB dosyasının belirtilen dizinde olup olmadığını kontrol ediyor, eğer yoksa mesaj veriyor. MDB dosyasını belirtilen dizinde buluyorsa, devam ediyor.

.
 
Hata satırı:

Kod:
   baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & myDB, True
 
Birşeyleri yanlış yapıyorsunuz ..... buradan görmem mümkün değil.

Bağlantıyı kapatıp, kodu ondan sonra deneyin.

.
 
Defalarca denedim ama maalesef aynı hatayı veriyor.
 
Geri
Üst