(22/08/2021, 14:14)berduş yazdı: [ -> ]rica ederim
iyi çalışmalar
Berduş hocam kaydettiğim verileri tekrar excele çektiğimde veri exceldeki hücreye bu şekilde geliyor <font color=red>MERVE TÜRE</font> neden acaba
(22/08/2021, 14:14)berduş yazdı: [ -> ]rica ederim
iyi çalışmalar
Veri çekmede kullandığım kodlar
Sub 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("C:\Users\mert\Desktop\çalışma\ANASAYFA.accdb")
'EgitimListesi tablosu içerisinde veri çağırmak için
Dim adresANASAYFA As String
adresANASAYFA = "SELECT * FROM ANASAYFA "
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
Range("A2").CopyFromRecordset DataKayitlari
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")
DataKayitlari.Close
Set DataKayitlari = Nothing
DataBaglan.Close
Set DataBaglan = Nothing
End If
End Sub
zengin metin formatının özelliği bu,
aslında veriler olduğu gibi değil renk/büyüklük vsvs kodlarıyla beraber kaydedilir biz kayda bakarken
Access bu kodları işleyip bize öyle gösterir
access içinde bu formatı sıfırlayıp sadece metni alan bir kod vardı excelde çalışır mı bilmem ama kodu bulmaya çalışırım
(22/08/2021, 14:23)berduş yazdı: [ -> ]zengin metin formatının özelliği bu,
aslında veriler olduğu gibi değil renk/büyüklük vsvs kodlarıyla beraber kaydedilir biz kayda bakarken Access bu kodları işleyip bize öyle gösterir
access içinde bu formatı sıfırlayıp sadece metni alan bir kod vardı excelde çalışır mı bilmem ama kodu bulmaya çalışırım
Benim için süper olur teşekkürler Berduş hocam
maalesef excelde bahsettiğim plaintext kodu çalışmadı başka bir yöntem var mı araştırırım
plainText işe yarıyormuş, veri çağırma kodunu aşağıdaki gibi düzenleyip dener misiniz?
Sub 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
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 bence
'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")