Merhaba Ozan Bey,
Evet bu şekilde çalışıyor. Ancak son cümlemde bahsetmiş olduğum "Ana formda yeni kayıt açma işlemini klasik gezinti düğmesi ile oluşturduğumda" ve verileri girdiğimde, butondaki kodlar yeni kayıt için çalışmıyor. Mesela Kimlik=2, Alan1=B yapın ve içine üç adet veri girin;
R0....fizik
R0....kimya
R0...biyoloji olsun.
Butona bastığınızda artık burada hiçbir değişiklik olmuyor. Yani herhangi bir kopyala yapıştır işlemi yok. Daha da kötüsü, butona her basış bir önceki kayıt için yani Kimlik=1, Alan1=A nın altındaki alt form için yeni kayıtlar oluşturmaya devam ediyor. Halbuki artık üst form, klasik gezinti düğmesi ile artık yeni bir kayda geçti ve dolayısıyla onun altındaki alt form için bu kodlar çalışmalı, diğer eski kayıtlarla ilişiği kalmamalı. Yani her ana form yeni kaydı için (dolayısıyla alt form yeni kaydı için-(tablo ilişkisinden ötürü)), bu kodların eski kayıttaki verilerden bağımsız bir şekilde sadece seçili kayıt için işliyor olması gerekiyor. Bilmiyorum doğru izah edebildim mi...
Revizyonlu Kopyala Yapıştır Uygulaması
Dim GEskiKimlik As Integer
Dim GEskiAlan As String
Dim db As Database
Dim rs As DAO.Recordset
Dim rstRecords As Recordset
GEskiKimlik = Me.Kimlik1
GEskiAlan = Me.alan1
Set db = CurrentDb
Set rstRecords = CurrentDb.OpenRecordset("SELECT TOP 1 Kimlik1, revizyon, Val(Mid([revizyon],2,Len([revizyon]))) AS GSayi FROM Tablo2 GROUP BY Kimlik1, revizyon, Val(Mid([revizyon],2,Len([revizyon]))) HAVING (((Kimlik1) = " & Me.Kimlik1 & ")) ORDER BY Val(Mid([revizyon],2,Len([revizyon]))) DESC;")
rstRecords.MoveFirst
GSonSayi = rstRecords!GSayi
GSonVeri = "R" & GSonSayi + 1
Me.alan1 = GEskiAlan
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Tablo2 ( Kimlik1, revizyon, ALAN2 ) SELECT Kimlik1, '" & GSonVeri & "', ALAN2 FROM Tablo2 GROUP BY Kimlik1, '" & GSonVeri & "', ALAN2, Kimlik2, Val(Mid([revizyon],2,Len([revizyon]))), revizyon HAVING (((Kimlik1)=" & Me.Kimlik1 & ") AND (([revizyon])='" & "R" & GSonSayi & "')) ORDER BY Kimlik2, '" & GSonSayi & "' DESC;"
DoCmd.SetWarnings True
Me.Tablo2_alt_formu.Requery
rstRecords.Close
db.Close
Set rstRecords = Nothing
Set db = Nothing
(29/08/2018, 14:00)ozanakkaya yazdı:Dim GEskiKimlik As Integer
Dim GEskiAlan As String
Dim db As Database
Dim rs As DAO.Recordset
Dim rstRecords As Recordset
GEskiKimlik = Me.Kimlik1
GEskiAlan = Me.alan1
Set db = CurrentDb
Set rstRecords = CurrentDb.OpenRecordset("SELECT TOP 1 Kimlik1, revizyon, Val(Mid([revizyon],2,Len([revizyon]))) AS GSayi FROM Tablo2 GROUP BY Kimlik1, revizyon, Val(Mid([revizyon],2,Len([revizyon]))) HAVING (((Kimlik1) = " & Me.Kimlik1 & ")) ORDER BY Val(Mid([revizyon],2,Len([revizyon]))) DESC;")
rstRecords.MoveFirst
GSonSayi = rstRecords!GSayi
GSonVeri = "R" & GSonSayi + 1
Me.alan1 = GEskiAlan
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Tablo2 ( Kimlik1, revizyon, ALAN2 ) SELECT Kimlik1, '" & GSonVeri & "', ALAN2 FROM Tablo2 GROUP BY Kimlik1, '" & GSonVeri & "', ALAN2, Kimlik2, Val(Mid([revizyon],2,Len([revizyon]))), revizyon HAVING (((Kimlik1)=" & Me.Kimlik1 & ") AND (([revizyon])='" & "R" & GSonSayi & "')) ORDER BY Kimlik2, '" & GSonSayi & "' DESC;"
DoCmd.SetWarnings True
Me.Tablo2_alt_formu.Requery
rstRecords.Close
db.Close
Set rstRecords = Nothing
Set db = Nothing
Tamamdır Ozan Bey,
Oldu. Teşekkürler.
Konuyu Okuyanlar: 1 Ziyaretçi