Skip to main content

AccessTr.neT M.


Revizyonlu Kopyala Yapıştır Uygulaması

Revizyonlu Kopyala Yapıştır Uygulaması

#7
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...

Cevapla
#8

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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

"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
...........
#9
(29/08/2018 14:00)ozanakkaya Adlı Kullanıcıdan Alıntı:

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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.

Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da