Şu şekilde bir kodlama yapıldı ama aktarma tam yapılmıyor, üst formlar asında iletişim kuruyor ama alt formlar aktarma yapamıyor. Aktar Butonunun Tıklanma olay yordamına aşağıdaki kodlama yapıldı:
Visual Basic
EndSub
PrivateSub Komut14_Click()
If MsgBox("Bildirimi Servis Formuna aktarmak istiyor musunuz?", vbYesNo, "Aktarım Onay")= vbYes Then
DoCmd.SetWarningsFalse
DoCmd.RunSQL "INSERT INTO ServisGiris ( BildirimID, [Servis Tarihi], Şantiye, Perosnel, MakinaID )SELECT ArızaBildirimAnaTablo.[Bildirim ID], ArızaBildirimAnaTablo.[Bildirim Tarihi], ArızaBildirimAnaTablo.Şantiye, ArızaBildirimAnaTablo.Personel, ArızaBildirimAnaTablo.[Makina ID] FROM ArızaBildirimAnaTablo WHERE (((ArızaBildirimAnaTablo.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.RunSQL "INSERT INTO ServisGirisAltForm ( [Bildirim ID], [Servis ID], [Parça Adı], [Bildirim Açıklaması], [Durumu] )SELECT ArızaBildirimAltForm.[BildirimID],DLookUp('[Servis ID]','ServisGiris','[BildirimID]=' & [BildirimID]) AS X, ArızaBildirimAltForm.[MalzemeEkipman], ArızaBildirimAltForm.Aciklama, ArızaBildirimAltForm.Durumu FROM ArızaBildirimAltForm WHERE (((ArızaBildirimAltForm.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.SetWarningsTrue
If MsgBox("Bildirim Servis Formuna aktarıldı, Bildirim silinsin mi?", vbYesNo, "Silme Onayı")= vbYes Then
DoCmd.SetWarningsFalse
DoCmd.RunSQL "Delete ArızaBildirimAnaTablo.[Bildirim ID] FROM ArızaBildirimAnaTablo WHERE (((ArızaBildirimAnaTablo.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.SetWarningsTrue
EndIf
If MsgBox("Aktarım ve silme işlemi yapıldı Form açılsın mı?", vbYesNo, "Form Aç")= vbYes Then
İhtiyacı olan olursa büyük kısmını hallettim kodlamanın, form ve tablo isimleri benzer olduğu için yanlış yazılmış: kodu şu şekilde yaptım:
Visual Basic
PrivateSub Komut14_Click()
If MsgBox("Bildirimi Servis Formuna aktarmak istiyor musunuz?", vbYesNo, "Aktarım Onay")= vbYes Then
DoCmd.SetWarningsFalse
DoCmd.RunSQL "INSERT INTO ServisGiris ( BildirimID, [Servis Tarihi], Şantiye, Perosnel, MakinaID )SELECT ArızaBildirimAnaTablo.[Bildirim ID], ArızaBildirimAnaTablo.[Bildirim Tarihi], ArızaBildirimAnaTablo.Şantiye, ArızaBildirimAnaTablo.Personel, ArızaBildirimAnaTablo.[Makina ID] FROM ArızaBildirimAnaTablo WHERE (((ArızaBildirimAnaTablo.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.RunSQL "INSERT INTO ServisGirisAltForm ( [Bildirim ID], [Servis ID], [Parça Adı], [Bildirim Açıklaması], [Durumu] )SELECT ArızaBildirimAltForm2.[Bildirim ID],DLookUp('[ServisID]','ServisGiris','[BildirimID]=' & [Bildirim ID]) AS X, DLookUp('[Makina Tam Adı]','YedekMakina','[Parça ID]=' & [Parça Adı]) AS Y, ArızaBildirimAltForm2.Açıklama, ArızaBildirimAltForm2.Durumu FROM ArızaBildirimAltForm2 WHERE (((ArızaBildirimAltForm2.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.SetWarningsTrue
If MsgBox("Bildirim Servis Formuna aktarıldı, Bildirim silinsin mi?", vbYesNo, "Silme Onayı")= vbYes Then
DoCmd.SetWarningsFalse
DoCmd.RunSQL "Delete ArızaBildirimAnaTablo.[Bildirim ID] FROM ArızaBildirimAnaTablo WHERE (((ArızaBildirimAnaTablo.[Bildirim ID])=[Formlar]![BildirimServisAktarma]![Liste0]));"
DoCmd.SetWarningsTrue
EndIf
If MsgBox("Aktarım ve silme işlemi yapıldı Form açılsın mı?", vbYesNo, "Form Aç")= vbYes Then
Yalnız Parça ID parametresi istiyor (Bildirim Servis Aktarma formunda Kaydı seçip aktar butonuna basınca.) Sanırım DlookUp kodlamasında hata yapıyorum yardım edebilirseniz çok sevinirim.