Merhaba,
İnceleyip olumlu/olumsuz bildirimde bulununuz.
Kaydetmeden kapatma işlemini nasıl gerçekleştirebilirim?
Merhaba ozanakkaya ve atoz112 hocalarım.
Ellerinize sağlık. Süper oldu. Bunu diğer formlarım da da kullanacağım inşallah. Süper olmuş. Allah ilminizi artırsın.
Ellerinize sağlık. Süper oldu. Bunu diğer formlarım da da kullanacağım inşallah. Süper olmuş. Allah ilminizi artırsın.
Merhaba hocalarım.
Biliyorum cevaplanmış sorulara aktarıldı ancak. Bu kodları diğer formlarım da kullandığımda geri alma işlemi yapmıyor. aşağıdaki kodda kırmızı olan yerleri değişiklik yapacağım formların ismi ile değiştirdim. Örnek teki gibi alt formlara da gerekli ekleri yaptım. Ancak yeni formda gerekli geri almaları yapmadı.
Çalışan kod
Dim ctl As Access.Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox And ctl.Tag = 1 Then
ctl.Value = EskiVeriler.Item(ctl.Name)
End If
Next
Set ctl = Nothing
Call Me.FATURADETAY.Form.EskiVeri
DoCmd.Close acForm, "alısfatura"
Cancel = True
DoCmd.Close
Else
Cancel = True
DoCmd.Close
End If
Yeni forma eklediğim kod
Dim ctl As Access.Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox And ctl.Tag = 1 Then
ctl.Value = EskiVeriler.Item(ctl.Name)
End If
Next
Set ctl = Nothing
Call Me.HAREKETDETAY.Form.EskiVeri
DoCmd.Close acForm, "HAREKETLER"
Cancel = True
DoCmd.Close
Else
Cancel = True
DoCmd.Close
End If
End If
'Hata:
End Sub
Biliyorum cevaplanmış sorulara aktarıldı ancak. Bu kodları diğer formlarım da kullandığımda geri alma işlemi yapmıyor. aşağıdaki kodda kırmızı olan yerleri değişiklik yapacağım formların ismi ile değiştirdim. Örnek teki gibi alt formlara da gerekli ekleri yaptım. Ancak yeni formda gerekli geri almaları yapmadı.
Çalışan kod
Dim ctl As Access.Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox And ctl.Tag = 1 Then
ctl.Value = EskiVeriler.Item(ctl.Name)
End If
Next
Set ctl = Nothing
Call Me.FATURADETAY.Form.EskiVeri
DoCmd.Close acForm, "alısfatura"
Cancel = True
DoCmd.Close
Else
Cancel = True
DoCmd.Close
End If
Yeni forma eklediğim kod
Dim ctl As Access.Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox And ctl.Tag = 1 Then
ctl.Value = EskiVeriler.Item(ctl.Name)
End If
Next
Set ctl = Nothing
Call Me.HAREKETDETAY.Form.EskiVeri
DoCmd.Close acForm, "HAREKETLER"
Cancel = True
DoCmd.Close
Else
Cancel = True
DoCmd.Close
End If
End If
'Hata:
End Sub
mdl_gerial isminde modül eklendi.
Veri değiştiğinde geri alınacak metin kutularının im özelliğine 1 yazıldı.
Formun geçerli olduğunda olayına
Kodu eklendi.
Geri Al veya kapat butonunun tıklandığında olayına
Kodu eklendi.
Option Compare Database
Option Explicit
Global EskiVeriler As VBA.Collection
'www.accesstr.net
Public Function EskiVerileriSakla(GFormadi As String)
On Error Resume Next
Dim GKontrol As Access.Control
Dim GAltformKontrol As Access.Control
Dim GForm As Access.Form
Set EskiVeriler = New VBA.Collection
Set GForm = Forms(GFormadi)
For Each GKontrol In GForm.Controls
If TypeName(GKontrol) = "SubForm" Then
For Each GAltformKontrol In GKontrol.Form.Controls
If GAltformKontrol.ControlType = acTextBox And GAltformKontrol.Tag = 1 Then
EskiVeriler.Add GAltformKontrol.Value & "", GAltformKontrol.Name
End If
Next
Else
If GKontrol.ControlType = acTextBox And GKontrol.Tag = 1 Then
EskiVeriler.Add GKontrol.Value & "", GKontrol.Name
End If
End If
Next
Set GKontrol = Nothing
End Function
Public Function EskiVeriAktar(GFormadi As String)
On Error Resume Next
Dim GKontrol As Access.Control
Dim GAltformKontrol As Access.Control
Dim GForm As Access.Form
Set GForm = Forms(GFormadi)
For Each GKontrol In GForm.Controls
If TypeName(GKontrol) = "SubForm" Then
For Each GAltformKontrol In GKontrol.Form.Controls
If GAltformKontrol.ControlType = acTextBox And GAltformKontrol.Tag = 1 Then
GAltformKontrol.Value = EskiVeriler.Item(GAltformKontrol.Name)
End If
Next
Else
If GKontrol.ControlType = acTextBox And GKontrol.Tag = 1 Then
GKontrol.Value = EskiVeriler.Item(GKontrol.Name)
End If
End If
Next
End Function
Veri değiştiğinde geri alınacak metin kutularının im özelliğine 1 yazıldı.
Formun geçerli olduğunda olayına
Call EskiVerileriSakla(Me.Name)
Kodu eklendi.
Geri Al veya kapat butonunun tıklandığında olayına
Call EskiVeriAktar(Me.Name)
Kodu eklendi.
Sayın raburabu,
Sadece bilgilendirme amacı olması adına;
Örneği inceleme imkanım olmamakta fakat kodlara göre yorumlamak üzere,
Eğer önceki formlardaki denetimlerin özelliklerinde IM (TAG) satırı 1 olak yazıldıysa,yeni formlarda da aynı şekilde 1 olarak yazmanız gerekir.kodlarda gördüğüm ayrıntı bu olduğu için buna dikkat çekmek istedim.
Blginize...iyi çalışmalar,saygılar.
Sadece bilgilendirme amacı olması adına;
Örneği inceleme imkanım olmamakta fakat kodlara göre yorumlamak üzere,
Eğer önceki formlardaki denetimlerin özelliklerinde IM (TAG) satırı 1 olak yazıldıysa,yeni formlarda da aynı şekilde 1 olarak yazmanız gerekir.kodlarda gördüğüm ayrıntı bu olduğu için buna dikkat çekmek istedim.
Blginize...iyi çalışmalar,saygılar.
Konuyu Okuyanlar: 1 Ziyaretçi