VBA ile SQL Verisi Yenileme

Bir çoğunuz excele dışarıdan aldığı verileri refresh (yenileme) etmede sorunlar yaşamıştır. Bende bu anlamda çok sorunlar yaşadım. Burada bahsi geçen sorun dış verinin olduğu sayfa select olmadan veriyi yenilemek.


Sub yenile()
Sheets("Sayfa2").Select
Range("A1").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

Yukarıda ki kod dış verinin olduğu sayfayı select ederek veriyi yeniler. O an üzerinde çalıştığınız sayfadan ayrılmak istemeyebilirsiniz. Akla ilk gelen çözüm veri yenilendikten sonra çalışmak istenilen sayfanın tekrar select edilmesi olsa da, bu durum bazı zamanlar başınızı ağrıtabilir.


Sub yenile()
Sheets("Sayfa2").Select
Range("A1").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Sheets("Sayfa1").Select
End Sub

Örneğin yukarıda ki gibi bir kod yazmak Sayfa1’in Activate Event’ına olası yazılan kodlar yüzünden sonsuz döngü oluşturacaktır. İşte tam bu noktada problem ortaya çıkmaktadır. Bunun çözümü ise aşağıda ki gibi bir kod yazmak olacaktır.

Sub yenile()
ActiveWorkbook.Connections("CONNECTION_NAME").Refresh
End Sub

Bu kod, hangi sayfa da olursak olalım dış bağlantının yapıldığı sayfa select edilmeden arka planda o veriyi yenileyecektir. Burada “CONNECTION_NAME”, dış veriyi aldığınız tablonun bağlantı adıdır. Bunu nasıl elde edeceğinizi aşağıda ki videoyu izleyerek öğrenebilirsiniz.

Kolay gele….

 

 

Paylaşmayı unutmayın!