22/08/2021, 15:33
mert_0671
(22/08/2021, 15:22)berduş yazdı: plainText işe yarıyormuş, veri çağırma kodunu aşağıdaki gibi düzenleyip dener misiniz?Yine aynısı oldu Berduş hocam
yalnız aşağıdaki kodun amacını anlayamadım, 1 satıra yani a1,b1.... e sütun başlıklarını eklemek amacıyla kullanıyorsanız hatalı bir yaklaşım benceSub VeriyiCagir()
' Vba Tools sekmesindeki "Referanslar bölümüne tıklayın"
' "Microsoft Office xx.0 Access database engine Object Library" alanını seçmeniz gereklidir.
'On Error Resume Next
Dim DataBaglan As DAO.Database
Dim DataKayitlari As DAO.Recordset
' Dim EgitimNumarasi As Integer
' EgitimNumarasi = Range("J2").Value ' Eğitim Numarası yazılı olan sayıyı aldım.
Set DataBaglan = OpenDatabase(ThisWorkbook.Path & "\ANA SAYFA.accdb")
'EgitimListesi tablosu içerisinde veri çağırmak için
Dim adresANASAYFA As String
adresANASAYFA = "SELECT * FROM [ANA SAYFA] "
Set DataKayitlari = DataBaglan.OpenRecordset(adresANASAYFA, dbOpenSnapshot)
If DataKayitlari.NoMatch Then 'Nomatch özelliktir. Bu özellik kayıt bulduysa False gönderir. kayıt bulamadıysa True gönderir.
MsgBox "Eğitim ID numarasını kontrol ediniz, Eğitim bulunamadı! ", vbCritical, "Hata"
Else
sonstr = Cells(Rows.Count, "C").End(xlUp).Row
Range("A2").CopyFromRecordset DataKayitlari
For x = 2 To sonstr
Range("c" & x) = PlainText(Range("c" & x))
Next x
DataKayitlari.Close
Set DataKayitlari = Nothing
DataBaglan.Close
Set DataBaglan = Nothing
End If
End Sub
'Range("B2") = DataKayitlari.Fields("SİCİL") * 1
'Range("C2") = DataKayitlari.Fields("TC KİMLİK NO") * 1
'Range("D2") = DataKayitlari.Fields("ADI SOYADI")
'Range("E2") = DataKayitlari.Fields("GÖREVİ")
'Range("F2") = DataKayitlari.Fields("İŞE GİRİŞ TARİHİ")
'Range("G2") = DataKayitlari.Fields("ÇALIŞMA DURUMU")