Revizyonlu Kopyala Yapıştır Uygulaması

1 2
29/08/2018, 12:18

notrino

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...
29/08/2018, 14:00

ozanakkaya

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, 15:01

notrino

(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.
1 2