Sayın onur_can ana formumuz ve ana forma bağlı alt form ikisinide çoğaltmak istiyorum düğmeyi ana forma koysam sadece ana form çğaltılıyor ve uyarı veriyor alt forma koysam bu seferde sadece alt form çoğalıyor.
Bu durumda çoğaltmak istediğiniz kayıt verilerini aşağıdaki örnek koda benzer şekilde recordsete alıp ilgili değerleri formunuzdaki denetimlere atamalısınız duplicate record veya kopyala yapıştır ile yapamazsınız.
Dim rs_SubForm As DAO.Recordset
Dim fld As DAO.Field
Dim ctl_SubForm As Form
Set ctl_SubForm =Me!AltformAdı.Form 'Alt forma erişimSet rs_SubForm = ctl_SubForm.RecordsetClone ' Alt formun Recordset'ini koplayalım
rs_SubForm.Bookmark = ctl_SubForm.Bookmark 'Kayıt bookmarkını belirleme
ctl_SubForm.Recordset.AddNew 'Yeni kayıt oluşturma'Alt formdaki her alanı kopyalama işlemleri'ID gibi alanları, hesaplama yapılan alanlar vs. hariç tutabilirsinizForEach fld In rs_SubForm.Fields
If fld.Name <>"ID"Then'Örneğin ID alanını çoğaltmıyoruz
ctl_SubForm(fld.Name)= rs_SubForm(fld.Name)EndIfNext fld
ctl_SubForm.Recordset.Update 'Yeni kaydı güncelleyip kaydediyoruz
rs_SubForm.Close
Set rs_SubForm =NothingSet ctl_SubForm =Nothing
@atoykan hocamın da belirttiği gibi kopyala yapıştır yerine kodlarla yapmak daha uygun olur, en azından altformdaki kayıtların kopyala yapıştır yöntemiyle yapılması kimlik ilişkisi nedeniyle sorun çıkarır.
aşağıdaki gibi bir kod belki işinize yarayabilir?
OnErrorGoTo Err_Komut118_Click
Dim strSQL AsString, ilkKimlik
ilkKimlik =Me.Kimlik
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
DoCmd.RunCommand acCmdSave '|<-----kaydetme işlemi için eklendi bu olmadan alt tabloya veri eklenmiyor
strSQL =""
strSQL ="SELECT * FROM Malzeme where [Kimlik]="& ilkKimlik
Set rs1 = CurrentDb.OpenRecordset(strSQL)Set rs2 = CurrentDb.OpenRecordset("Malzeme")With rs1
IfNot.BOF AndNot.EOF Then.MoveFirst
While(Not.EOF)
rs2.AddNew
For x =1To.Fields.Count -1If rs1(x).Type<>7Then rs2(x)= rs1(x)Next x
rs2(0)=Me.Kimlik
rs2.Update
.MoveNext
WendEndIfEndWith
Exit_Komut118_Click:ExitSub
Err_Komut118_Click:
MsgBox Err.Description
Resume Exit_Komut118_Click
bu arada aklıma gelmişken ilgili kayda gitmek için kullandığınız makro da bence sorunlu
öncelikle güncellenme olayına eklemişsiniz ki eğer amaç sadece ilgili kayda gitmekse tıklama olayına eklenmeliydi.
ikinci olarak da makro yerine kod ile gitmek daha uygun olurdu, bende kaydı çoğaltma olayında sorun çıkarıp durdu
Bu site, içeriği kişiselleştirmenize, deneyiminizi uyarlamanıza ve kaydolduğunuzda oturumunuzu açık tutmanıza yardımcı olacak çerezler kullanır. Bu siteyi kullanmaya devam ederek, çerezleri kullanmamıza izin veriyorsunuz.