ADO ile kapalı dosyadan veri almadaki sorun

Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba arkadaşlar

Daha önceden burdan alıp biraz değişiklik yaptığım aşağıdaki kod ile kapalı "Data" dosyasından verileri alıyorum. Bu işlem text olan hücreler için sorun yaratmıyor. Fakat hücredeki değer numerik ise onları alamıyor ve o hücre boş geliyor. Nerede eksiklik var çözemedim. :kafa:
Kod:
Dim NewSh
Const SourceFile As String = "C:\MyFolder\Data.xls"
Const SourceSheet As String = "Sayfa1"
Const SourceRange As String = "a1:f100"
Private Sub ButtOK_Click()
    Set NewSh = Sheets.Add(After:=Sheets(Sheets.Count))
    NewSh.Name = "DataSheet"
    Dim dbConnection As Object, rs As Object
    Dim dbConnectionString As String
    Set dbConnection = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.recordset")
    Dim TargetCell As Range, i As Integer
    dbConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)};" & _
                         "ReadOnly=1;DBQ=" & SourceFile
    On Error GoTo InvalidInput
    dbConnection.Open dbConnectionString
    Set rs = dbConnection.Execute("[" & SourceSheet & "$" & SourceRange & "]")
    Set TargetCell = NewSh.Cells(1, 1)
    TargetCell.CopyFromRecordset rs
    rs.Close
    dbConnection.Close
    Set TargetCell = Nothing
    Set rs = Nothing
    Set dbConnection = Nothing
    On Error GoTo 0
    Unload Me
    Exit Sub
InvalidInput:
    MsgBox "The source file or source range is invalid!", vbExclamation
End Sub
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
:yardim: :yardim: :yardim:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Hiçbir sorun yok, gayet güzel çalışıyor.
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba Haluk Bey,
İlgine teşekkürler.
Sorunumu bir örnek ile açıklamak için dosya ekliyorum.
Data dosyası C:\Myfolder klasörünün içinde. Ben Book1 adlı dosyadaki butona bastığım zaman Data dosyasının Sheet1 deki bilgilerden D4'deki 1456 sayısını Book1 adlı dosyaya alamıyor. Örnek ektedir. VERİ AL butonuna bastığınızda göreceksiniz. "syar" kullanıcısına ait password gelmiyor. diğerlerinde sorun yok.

Teşekkürler
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Sanırım daha önceden hazırladığıum bir kodu kullanıyorsunuz.

Kestirme yoldan bir çözüm ....

Data.xls dosyasında bahsettiğiniz türden nümerik dataların olduğu hücrelerde örneğin D4 hücresinde, verinin başına bir kesme işareti yerleştirin.(')

Dosyayı kaydedin, kapatın ve diğer dosyayı açıp verileri çekin.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
veya

Kodun

Kod:
 NewSh.Name = "DataSheet"
satırından sonra
Kod:
NewSh.Columns("D:D").NumberFormat = "@"
satırını eklersek

d alanının text olduğunu tabloya söylemiş oluruz.
 
Katılım
28 Nisan 2005
Mesajlar
252
Excel Vers. ve Dili
Excel 2010 Türkçe
İlginize teşekkürler Sn. Alpen ve Sn. Haluk Bey

Sn. Alpen Bey öneriniz çözüm olmadı. Yine nümerik değerleri taşıyamadım.

Artık benim için tek çözüm Sn. Haluk Beyin önerisini kullanmak olacak.
 
Üst