Skip to main content

AccessTr.neT


Accesten Excele Farklı Sayfalara Kayıt

Accesten Excele Farklı Sayfalara Kayıt

Çözüldü #1
Private Sub Komut8_Click()

    Dim xl As Excel.Application
    Dim xlwkbk As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    
    If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
    End If
        
    Set xl = New Excel.Application
    Set xlwkbk = xl.Workbooks.Open(CurrentProject.Path & "\Ornek.xlsx")
           
    xl.Sheets("Sayfa1").Select
   
    With xlsheet
    xl.Range("B13") = Dlookup ("[adi]", "Tablo1", "[Kimlik]=" & Me.Id)
    xl.Range("B14") = Dlookup ("[soyada]", "Tablo1", "[Kimlik]=" & Me.Id)
    End With
    
    xl.Visible = True
    
    
    Set MyRecordset = Nothing
    Set xl = Nothing
    Set xlwkbk = Nothing
    Set xlsheet = Nothing
    
End Sub



kullanmış olduğum kod tek sayfaya kayıt yapıyor ama ben sayfa2 sayfa3 sayfa4.... vs kayıt yapmak istersem nasıl bir düzenleme yapmam lazım?
.rar excell.rar (Dosya Boyutu: 38,77 KB | İndirme Sayısı: 7)
Son Düzenleme: 25/12/2019, 01:46, Düzenleyen: maras321.
Cevapla
#2
Kodları alttaki kodlarla değiştiriniz;

NotDim rs As Recordset2 '25.12.2019  
satır hata verirse Recordset olarak değiştirin

bir de; "Tablo1" 3 ten fazla kayıt olursa  "Ornek.xlsx" dosyasında ona göre Sayfa sayısı olması lazım yoksa hata alırsınız.
Visual Basic Code
    Dim xl As Excel.Application
    Dim xlwkbk As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim rs As Recordset2 '25.12.2019
    If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
    End If
    Set xl = New Excel.Application
    Set xlwkbk = xl.Workbooks.Open(CurrentProject.Path & "\Ornek.xlsx")
    SayfaSayi = 0 '25.12.2019
    Set rs = CurrentDb.OpenRecordset("SELECT Tablo1.Kimlik, Tablo1.soyada, Tablo1.adi FROM Tablo1 ORDER BY Tablo1.Kimlik;") '25.12.2019
    rs.MoveFirst '25.12.2019
    While Not rs.EOF '25.12.2019
        SayfaSayi = SayfaSayi + 1 '25.12.2019
        xl.Sheets("Sayfa" & SayfaSayi).Select
        With xlsheet
        xl.Range("A1") = rs!soyada
        xl.Range("B1") = rs!adi
        End With
    rs.MoveNext '25.12.2019
    Wend '25.12.2019
    rs.Close '25.12.2019
    xl.Visible = True
    Set MyRecordset = Nothing
    Set xl = Nothing
    Set xlwkbk = Nothing
    Set xlsheet = Nothing
Herkes aynı şeyi düşünüyorsa, kimse yeterince düşünmüyor demektir
Cevapla
#3
(25/12/2019 10:06)KJS Adlı Kullanıcıdan Alıntı: Kodları alttaki kodlarla değiştiriniz;

NotDim rs As Recordset2 '25.12.2019  
satır hata verirse Recordset olarak değiştirin

bir de; "Tablo1" 3 ten fazla kayıt olursa  "Ornek.xlsx" dosyasında ona göre Sayfa sayısı olması lazım yoksa hata alırsınız.
Visual Basic Code
    Dim xl As Excel.Application
    Dim xlwkbk As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim rs As Recordset2 '25.12.2019
    If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
    End If
    Set xl = New Excel.Application
    Set xlwkbk = xl.Workbooks.Open(CurrentProject.Path & "\Ornek.xlsx")
    SayfaSayi = 0 '25.12.2019
    Set rs = CurrentDb.OpenRecordset("SELECT Tablo1.Kimlik, Tablo1.soyada, Tablo1.adi FROM Tablo1 ORDER BY Tablo1.Kimlik;") '25.12.2019
    rs.MoveFirst '25.12.2019
    While Not rs.EOF '25.12.2019
        SayfaSayi = SayfaSayi + 1 '25.12.2019
        xl.Sheets("Sayfa" & SayfaSayi).Select
        With xlsheet
        xl.Range("A1") = rs!soyada
        xl.Range("B1") = rs!adi
        End With
    rs.MoveNext '25.12.2019
    Wend '25.12.2019
    rs.Close '25.12.2019
    xl.Visible = True
    Set MyRecordset = Nothing
    Set xl = Nothing
    Set xlwkbk = Nothing
    Set xlsheet = Nothing


İlgi ve alakanız için teşekkürler ne yaptımsa çalıştıramadım. sayfa1 de adı soyadı b12,b13 e gelecek örnek fornda yok ama diğer veriler adres tc no sayfa 3de c8-c9 gelecek boyu kilosu sayfa5 de g6 j7 gelecek şeklinde yapmak istediğim formda bulamadım örnek bulabilirsem kendi örneğime uyarlayacağım .
Cevapla
#4
Visual Basic Code
xl.Range("A1") = rs!soyada
xl.Range("B1") = rs!adi
Ben A1 ve B1 Olarak değiştirdim. B12 ve B13 olarak değiştirebilirsiniz.
Visual Basic Code
xl.Range("B12") = rs!adi
xl.Range("B13") = rs!soyada

if komutuyla  yapılabilir,
Örnek dosyanızda adres, tcno , boyu, kilosu alanları yoktu...
Herkes aynı şeyi düşünüyorsa, kimse yeterince düşünmüyor demektir
Cevapla
#5
Visual Basic Code
    xl.Sheets("Sayfa1").Select

    With xlsheet
    xl.Range("B13") = DLookup("[adi]", "Tablo1", "[Kimlik]=" & Me.Id)
    xl.Range("B14") = DLookup("[soyada]", "Tablo1", "[Kimlik]=" & Me.Id)
    End With
kodu yerine aşağıdakine benzer bir kod kullanmayı deneyebilirsiniz. hangi alan hangi sayfanın hangi hücresine gidecek belirleyebilirsiniz
Visual Basic Code
 xlwkbk.Sheets("sayfa1").Range("B13") = DLookup("[adi]", "Tablo1", "[Kimlik]=" & Me.Id)
 xlwkbk.Sheets("sayfa2").Range("B13") = DLookup("[soyada]", "Tablo1", "[Kimlik]=" & Me.Id)
Cevapla
#6
merak ettiğim 2 şey var
1 - aktif olan kaydı aktaracaksanız dlookupa gerek var mı değerler zaten metin kutularında var
2 - hücreler hep sabit yani başka bir kaydı aktarmak istediğinizde eski veriler silinecek demektir.
kısacası amacınız tam olarak ne?
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task