Arkadaşlar merhaba;
Bir excel sayfam var ve sürekli formül çalıştırıp başka dosyalardan veri çekiyor. Ben bu sayfayı belirli saniyeler arasında access tablosuna aktarmak/güncellemek istiyorum.
Yardımcı olabilecek olan arkadaşlara şimdiden teşekkür ederim.
Not: Dış veri bağlama ile yaptığımda access veritabanımı kullanan program kasıyor veya çalışmıyor. Bu sebepten dolayı veriyi aktarmam gerekiyor.
Excel'den Access'e Veri Aktarımı
2
●96
- 15-09-2024, 21:26:30Excel dosyanızdaki veriyi belirli aralıklarla Access veritabanına aktarmak için birkaç farklı yöntem kullanabilirsiniz. Bu işlemi programatik olarak yapmanın en yaygın yolu, VBA (Visual Basic for Applications) ya da bir dış komut dosyası (örneğin Python) ile otomatik bir çözüm oluşturmaktır. Eğer Access'te doğrudan dış veri bağlantısı yavaşlama ve performans sorunlarına sebep oluyorsa, veriyi periyodik olarak elle ya da otomatik bir şekilde içeri aktarmak mantıklı bir yaklaşım olacaktır.
1. VBA ile Excel'den Access'e Veri Aktarımı
Excel'de bir VBA kodu yazarak, belirli aralıklarla Access'e veri aktarıp güncelleyebilirsiniz. Bu yöntemle Excel'deki veriyi bir Access tablosuna yazabilirsiniz.
Aşağıdaki adımları izleyerek bir VBA kodu oluşturabilirsiniz:
Adım 1: Access Veritabanına Bağlanmak
Excel'de VBA editörünü açarak (Alt + F11), aşağıdaki kodu bir modüle ekleyin. Bu kod, Excel'deki verileri Access'e kopyalar:
Sub ExceldenAccessVeriAktar() ' Değişkenler Dim db As Object Dim rs As Object Dim ws As Worksheet Dim lastRow As Long Dim i As Long ' Access veritabanı yolunu belirtin Set db = CreateObject("DAO.DBEngine.36").OpenDatabase("C:\Yol\Veritabanı.accdb") ' Excel'deki çalışma sayfası Set ws = ThisWorkbook.Sheets("Sayfa1") ' Access tablosunu açın Set rs = db.OpenRecordset("TabloAdı", dbOpenTable) ' Son satırı bul lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Access tablosuna veri ekleme For i = 2 To lastRow ' Başlık satırı yoksa 1 yerine 2 ile başlayın rs.AddNew rs.Fields("Sütun1") = ws.Cells(i, 1).Value rs.Fields("Sütun2") = ws.Cells(i, 2).Value ' Diğer sütunları ekleyin rs.Update Next i ' Bağlantıyı kapat rs.Close db.Close Set db = Nothing Set rs = Nothing End Sub
Adım 2: Kodun Otomatik Çalışması İçin Zamanlayıcı Kurmak
Bu işlemi belirli aralıklarla çalıştırmak için aşağıdaki VBA zamanlayıcıyı ekleyebilirsiniz:
Public NextRun As Date Sub ZamanlayiciBaslat() NextRun = Now + TimeValue("00:01:00") ' Her 1 dakikada bir çalışacak Application.OnTime NextRun, "ExceldenAccessVeriAktar" End Sub Sub ZamanlayiciDurdur() On Error Resume Next Application.OnTime NextRun, "ExceldenAccessVeriAktar", , False End Sub
Adım 3: Makroyu Çalıştırma
- ZamanlayiciBaslat makrosunu çalıştırarak belirli aralıklarla veri aktarımını başlatabilirsiniz.
- ZamanlayiciDurdur makrosunu kullanarak bu işlemi durdurabilirsiniz.
2. Python Kullanarak Otomatik Veri Aktarımı
Alternatif olarak, Python ile pyodbc ya da pandas kütüphanesini kullanarak Excel dosyasını Access'e aktarma işlemini programlayabilirsiniz.
3. Access İçin Makro Kullanımı
Access içinde bir makro oluşturarak belirli aralıklarla dış veri aktarma işlemi gerçekleştirebilirsiniz. Ancak performans sorunlarına neden olduğu için bu yöntemden uzak durmanızı tavsiye ederim. - 15-09-2024, 21:35:21konu ile ilgili size pm gönderdim. İlgilenebilirseniz çok memnun olurum.shms adlı üyeden alıntı: mesajı görüntüle
Cevabınız için de ayrıca çok teşekkür ederim.