- Katılım
- 3 Şubat 2008
- Mesajlar
- 593
- Excel Vers. ve Dili
- Office 2016 Eng. 64 Bit
- Altın Üyelik Bitiş Tarihi
- 21-11-2024
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
@Haluk Bey rahatsız ediyorum.@gicimi;
Soruyu tam olarak anlayamadım.....
1) Report dosyasındaki sayfada D sütununda yer alan Seri No'lar sabit, onlara dokunmuyoruz değil mi?
2) Report dosyasındaki sayfada E-J sütunlarındaki veriyi sadece Data dosyasındaki sayfanın I-N sütunlarından olduğu gibi alıyoruz, bu verileri alırken ADM ve SDM dosyalarıyla bir işimiz yok değil mi?
3) Data dosyasından alınacak veriler 65.536 adet satırdan fazla değil, doğru mu?
4) 1 No'lu mesajınızda belirttiğiniz sorunuzun diğer kısmıyla ilgili şu anda bir fikrim yok, çünkü anlamadım. Örneğin; Report dosyasındaki sayfada 20 No'lu seri numarasına karşılık gelen değer SDM dosyasında "Önemsiz" olarak, ADM dosyasında ise yine "Önemsiz" olarak belirtilmiş. Eğer bunlardan biri "Önemsiz" diğeri "Önemli" olsaydı, Report dosyasındaki K sütununa bu verilerden hangisini, hangi kritere göre değerlendirerek alacağız?
Her neyse, 4. maddeyi şimdilik bir kenara bırakalım......... Yukarıdaki 3 soruya da cevabınız "Evet" ise, aşağıdaki kod daha hızlı olarak verileri alacaktır diye tahmin ediyorum.
.Kod:Sub Test() 'Haluk '26/09/2018 Dim myFile As String Dim daoDBEngine As Object Dim DB As Object Dim RS As Object Dim dbRow As Long On Error Resume Next Set daoDBEngine = CreateObject("DAO.DBEngine") Set daoDBEngine = CreateObject("DAO.DBEngine.36") Set daoDBEngine = CreateObject("DAO.DBEngine.120") On Error GoTo 0 myFile = ThisWorkbook.Path & Application.PathSeparator & "Data.xlsx" Range("E2:J" & Rows.Count) = "" Set DB = daoDBEngine.OpenDatabase(myFile, False, False, "Excel 8.0; HDR=No; IMEX=1;") Set RS = DB.OpenRecordset("Select * from [Sayfa1$I2:N65536]") With RS .MoveLast dbRow = .RecordCount .MoveFirst End With Range("E2").CopyFromRecordset RS MsgBox "İşlem tamam..... (Haluk)" RS.Close DB.Close Range("G2:G65536").NumberFormat = "hh:mm:ss" Set RS = Nothing Set DB = Nothing Set daoDBEngine = Nothing End Sub