Excelden Import Problemi

Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
Arkadaşlar yaklaşık 350000 satırlık bir xlsx dosyasını access e import etmeye çalışıyorum, import işlemi gerçekleşiyor, ardından "beginning save procedure" ve "testing rules" yazıları çok uzun süre ekranda kalıyor ve en sonunda ""File sharing lock count exceeded" hata mesajını alıyorum.

Bunun çözümünü araştırdım, access açıkken alt+f11 yaparak vba modülünü açıp "DAO.DBEngine.SetOption dbmaxlocksperfile,15000" yazınca bu hatayı almamam gerekiyor fakat bu da işe yaramadı. Daha ufak dosyalarda işe yarıyor fakat bu dosya çok büyük olduğu için işe yaramıyor sanırım.

İşin enteresan tarafı access donuk bir şekilde beklerken task manager dan access i kapatıp tekrar açtığımda veri eksiksiz şekilde import edilmiş oluyor.

Bu sorunu excel dosyasını ikiye ya da daha fazla parçaya bölmeden aşmam mümkün mü? excel dosyasını txt olarak save edip onu da denedim aynı sorun devam ediyor.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu işlemi bir de kod ile yapmayı deneyiniz.:


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"TabloAdı", "C:\test.xlsx", False, "A1:B500"



Renkli kısımları kendi değişkenlerinize göre düzenleyiniz..
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
Merhaba..

Bu işlemi bir de kod ile yapmayı deneyiniz.:


DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
"TabloAdı", "C:\test.xlsx", False, "A1:B500"



Renkli kısımları kendi değişkenlerinize göre düzenleyiniz..

Teşekkürler bu kod sayesinde hata almadan dosyayı import ettim, sütun formatları, başlık gibi konuları da hallettim tek bir sorunum kaldı:

Datayı aldığım dosyanın bulunduğu klasör ve dosyanın ismi her gün o günün tarihine göre değişiyor. (c:\data\15102011\15102011_data.xlsx gibi) Hal böyle olunca her gün kodun içine girip klasör adını değiştirmem gerekecek. Bunu engelleyebilir miyim? Mesela bir kutuya tarih yazsam o da bu kutuda yazılı tarihe göre dosyanın yerini bulsa bu mümkün mü?
 
Son düzenleme:
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Günün tarihini klasör ve dosya adı olarak, dosya yolu içerisine bu şekilde tanımlayabilirsiniz..

"c:\data\" & Format(Date, "ddmmyyyy") & "\" & Format(Date, "ddmmyyyy") & "_data.xlsx"
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
Cevap için çok teşekkürler sürekli sorun çıkartıyorum ama tarih olarak bugünün değil dünün tarihini yazmam gerekiyor :)

hatta haftasonları geçtiğinde cuma gününün tarihini yazmam gerekiyor. Bunun için tarih soran bir pencere olsa iyi olur demiştim. Ya da tarihin yazılı olduğu bir tablodan tarihi kullandırmam gerekiyor.

Ben bu tip problemleri excel de bir hücreye weekday() formülünü kullanarak aşıyorum, fakat access de bunu nasıl yapabilirim bulamadım.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
.










İki öneride bulunayım..

İlki tarihi şartlarınıza göre kendi oluşturur..:


If Format(Date, "dddd") = "pazartesi" Then _
trz = Format(Date - 2, "ddmmyyyy") Else trz = Format(Date - 1, "ddmmyyyy")


Bu da elle giriş yapmanızı sağlar..:


trz = InputBox(" Tarih giriniz.. günayyıl biçiminde..", "Uyarı")
MsgBox "c:\data\" & trz & "\" & trz & "_data.xlsx"


Benzer şekilde değişkeni form üzerinden bir metin kutusundan da verebilirsiniz..:

trz = Format(textbox_adi, "ddmmyyyy")
MsgBox "c:\data\" & trz & "\" & trz & "_data.xlsx"


Textboxdaki değer tarih değil de string yapıda ise..:

trz = textbox_adi
MsgBox "c:\data\" & trz & "\" & trz & "_data.xlsx"
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
Çok teşekkürler, her türlü durumu kapsayan bir cevap olmuş :) Çok işime yarayacak bu kodlar, dosya import etmekten ellerim ağrımıştı :)
 
Üst