• DİKKAT

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

internet yokken dış veri alırken çıkan hatalar

Katılım
27 Temmuz 2010
Mesajlar
12
Excel Vers. ve Dili
2010 office ingilizce
Merhaba;

Dış veri almayı güzel bir şekilde yapıyorum. Makroyla bir butona refresh kodunu atadım ve butona tıkladığımda butun dış veriler güncelleniyor.

İnternet bağlantım olduğu sürece sorun yok.

Ama internetim yokken refresh butonuna tıkladığımda bir sürü(kaç tane dış veri aldıysam) hata veriyor doğal olarak.

Bu hataları göstertmeyebilir miyim?

Teşekkürler.
 
Evet Haklısınız, Bu benimde karşılaştığım bir sorun, Bende Microsoft Query vasıtasıyla Kapalı bir dosyadan veri çekiyorum, Alırken ise
Kod:
Sub guncelle()
    ActiveWorkbook.RefreshAll
End Sub
makrosunu kullanıyorum, Bu butona atadığım refresh'in önüne ne yazmalıyım ki ? Veriyi getirmeden ilk başta bağlantıyı sınasın.
 
Merhaba,

Normalde kodlarınızın başına "On Error Goto Son" gibi bir hata kontrol satırı ekleyip bu kontrolü sağlayabilirsiniz. Ben apilerle yapılan bir uygulamayı ekliyorum.

Örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Korhan bey örnek için teşekkür edeirm. Benim işimi gördü.
 
Merhaba,

Diğer bahsettiğim hata kontrolü ile ilgili örnek kodda aşağıdaki gibidir.

Kod:
Sub Makro1()
    On Error GoTo Son
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.tcmb.gov.tr/kurlar/today.html", Destination:=Range("A1"))
        .Name = "today"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    Exit Sub

Son:
    MsgBox "İnternet bağlantısı bulunamadı!" & Chr(10) & _
           "Lütfen daha sonra tekrar deneyiniz!", vbInformation
End Sub
 
Buda alternatif olsun

Kod:
Private Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
Sub makro1()
URL = "veri oldığınız internet adresi"
If (InternetCheckConnection(URL & "/", &H1, 0&) = 0) Then MsgBox "internet bağlantısı yok": Exit Sub
'dış veri al kodunuz buraya yazılacak
End Sub
 
İnternet olmadığında veya Ağ bağlantısı devre dışı bırakıldığında(Ağdan alınan dosyalar için) yukarıdaki kodlar aynen dediğin gibi çalışıyor.

Fakat ağ'a erişim varken, fakat bağlantı sorunu varken, bu bağlantıyı nasıl sorgulayabiliriz.

Ben yaşadığımız bir örneği veriyim, Ağ bağlantıları mevcut fakat ağda yoğun dosya transferleri var, buda ağa gönderilen komutun çok geç çalışmasına yada çalışamamasına sebep oluyor.

ActiveWorkbook.RefreshAll 'dediğim zaman Ağdan kaynaklı uzun uzadıya beklemeler başlıyor, kod çalışmadığı gibi ekranda donuyor. Manuel olarak ağ baglantısını sonlandırdığımda ise aşağıdaki hata kodunu alıyorum.
Kod:
Run-time error '1004':
Genel ODBC Hatası
Aklımdakini söylemek istiyorum böyle birşey olabilirmi bilmiyorum? örn.: "bağlantı hızı yetersiz veya zayıf baglantı " gibi birşey yapılabiliniyormu?
 
Geri
Üst