• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Ado ile veri çekiyorum hata veriyor.

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

link_mr

Yeni Üye
Katılım
24 Eyl 2021
Mesajlar
35
Aldığı beğeni
2
Excel V
Office 2019 TR
Konu Sahibi
Merhabalar, ado ile veriyi getiriyorum.fakat hata mesajı veriyor. arka planda dosya açık kalıyor. yardımcı olabilir misiniz?

kodlar şu şekildedir.
hata veren kod
'Worksheets("Ödenen").Range("A" & Worksheets("Ödenen").Range("A" & Rows.Count).End(3).Row + 1).CopyFromRecordset MyRs

Sub irsaliyebilgileri2()
Dim ifade As String, MyCn As Object, MyRs As Object
Dim Yol As String, Dosya As String, Sayfa As String, Aranan As String

'sonradan eklediğim
Dim rng As Range
Dim r As Range

Yol = ThisWorkbook.Path & "\" 'Ağdan almak istenirse ' Yol = "\\10.17.0.2\Muhasebe\HAM MADDE\HMK\Excel-Atık Kağıt\2021\"
Dosya = "dveri.xlsx"
Sayfa = "KDS-DÖKME"
Aranan = Range("F2")
Set rng = Sayfa2.Range("E4:E" & Sayfa2.Cells(Rows.Count, 5).End(xlUp).Row)
For Each r In rng
If r.Value = Aranan Then
MsgBox "Bu kayıt daha önce getirilmiş.", vbInformation + vbOKOnly, "İrsaliye"
Exit Sub
End If
Next r
Set MyCn = CreateObject("ADODB.Connection")
Set MyRs = CreateObject("ADODB.recordset")
MyCn.Provider = "Microsoft.ACE.OLEDB.12.0"
MyCn.Properties("Data Source") = Yol & Dosya
MyCn.Properties("Extended Properties") = "Excel 12.0 XML; HDR=Yes"
MyCn.Open

ifade = "Select * from [" & Sayfa & "$] Where [İRSALİYE NUMARASI] ='" & Aranan & "'"
MyRs.Open ifade, MyCn, 1, 1
If MyRs.RecordCount > 0 Then
Range("A" & Range("A" & Rows.Count).End(3).Row + 1).CopyFromRecordset MyRs
Worksheets("Ödenen").Range("A" & Worksheets("Ödenen").Range("A" & Rows.Count).End(3).Row + 1).CopyFromRecordset MyRs
End If
MyRs.Close
MyCn.Close
Set MyCn = Nothing: Set MyRs = Nothing

End Sub
 
Çözüm
eklediğiniz örneğe göre yorumlarsam hatanın sebebi:
veriler ilk satırdan başlıyor oysa başlıklarınız 3. satırda
ADO işlemlere veri gördüğü ilk satırdan başlar hatta bazen ilk satıra yazılan veri silinmiş olsa da ADO orayı NULL veri olarak görüp tabloya dahil eder.
sizin çalışmanızdaki ilk satırda H1 ve I1 hücrelerinde hesaplama
A2 de ise -HAKEDİŞ TABLOSU - tablo Adı var
başlıklar ise yani sizin kriterde kullandığınız [İRSALİYE NUMARASI] ise 3. satırda
bu durumda:
ya
aşağıdaki kodda gösterildiği gibi HDR=No ve [İRSALİYE NUMARASI] ise [F5] olacak
Not: [İRSALİYE NUMARASI] başığı 5. sütunda olduğundan [F5] yazıldı , hata yapmış olabilirim ilgili sütun no yazılacak...
Password:="462744" gibi çift tırnak arasına yazmaniz gerekebilir ama emin değilim
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst