Kodları alttaki kodlarla değiştiriniz;
Not: Dim 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.
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
(25/12/2019, 10:06)KJS yazdı: [ -> ]Kodları alttaki kodlarla değiştiriniz;
Not: Dim 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.
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 .
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.
xl.Range("B12") = rs!adi
xl.Range("B13") = rs!soyada
if komutuyla yapılabilir,
Örnek dosyanızda adres, tcno , boyu, kilosu alanları yoktu...
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
xlwkbk.Sheets("sayfa1").Range("B13") = Dlookup ("[adi]", "Tablo1", "[Kimlik]=" & Me.Id)
xlwkbk.Sheets("sayfa2").Range("B13") = Dlookup ("[soyada]", "Tablo1", "[Kimlik]=" & Me.Id)
merak ettiğim 2 şey var
1 - aktif olan kaydı aktaracaksanız
Dlookup a 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?