Değişken Kayıt Sayısı Kadar Sekme Denetimi (tab Control) Sayfası Açma

1 2
13/06/2023, 16:02

vetaltan

(10/06/2023, 13:45)berduş yazdı: eğer mutipage eklerseniz aşağıdaki kod işinize yarayabilir
not unutmayın! multipage ile sekme tam olarak aynı şey değiller
eğer multipage adı xMultiPage ise
Me.xMultiPage.Pages.Add

(10/06/2023, 13:24)vetaltan yazdı: ir tablodan sekme sayısını alarak o sayıda sayfa oluşturmak
dosyanızı ekleyip gerekli açıklamayı yaparsanız ona göre çözüm önerebiliriz

Merhaba sayın Berduş,
Geçen hafta şehir dışında olduğum için gecikmeli cevap veriyorum,özür dilerim.
Örnek bir vt yarattım (sekme denetimi) ,Form1 ile açıp ,kaçtane metin kutusuna girdiğimiz sayı kadar, sekme denetimi olan form açmak istiyorum.
13/06/2023, 17:07

berduş

komut 1  olayının kodunu aşağıdaki gbi düzenleyebilirsiniz?
temel mantık
  • sekme eklenecek form tasarım modunda açılıyor
  • sekme nesnesinin içinde kaç sayfa olduğuna bakılıyor
  • döngü ile sayfa ekleniyor
Private Sub Komut1_Click()
Dim a
a = Val(Me.kactane & "")

frmName = "sekmedenetimi"

DoCmd.OpenForm FormName:=frmName, View:=acDesign
Set frm = Forms(frmName)
Set tbc = frm.Controls("TabCtl0")

bas = tbc.Pages.Count + 1  'sekme nesnesindeki sayfa sayısını bulup 1 ekliyor
    For x = bas To a
      tbc.Pages.Add
    Next
AddPage = True
DoCmd.OpenForm FormName:=frm.Name
DoCmd.Close acForm, Me.Name, acSaveNo ' bu kod bu formu kendi kendini kaydetmeden kapatır
End Sub
13/06/2023, 17:15

vetaltan

(13/06/2023, 17:07)berduş yazdı: komut 1  olayının kodunu aşağıdaki gbi düzenleyebilirsiniz?
temel mantık
  • sekme eklenecek form tasarım modunda açılıyor
  • sekme nesnesinin içinde kaç sayfa olduğuna bakılıyor
  • döngü ile sayfa ekleniyor
Private Sub Komut1_Click()
Dim a
a = Val(Me.kactane & "")

frmName = "sekmedenetimi"

DoCmd.OpenForm FormName:=frmName, View:=acDesign
Set frm = Forms(frmName)
Set tbc = frm.Controls("TabCtl0")

bas = tbc.Pages.Count + 1  'sekme nesnesindeki sayfa sayısını bulup 1 ekliyor
    For x = bas To a
      tbc.Pages.Add
    Next
AddPage = True
DoCmd.OpenForm FormName:=frm.Name
DoCmd.Close acForm, Me.Name, acSaveNo ' bu kod bu formu kendi kendini kaydetmeden kapatır
End Sub



Sayın Berduş,
Tam istediğim gibi, ellerinize sağlık, çok teşekkür ederim.
13/06/2023, 17:27

berduş

rica ederim
iyi çalışmalar)
ufak bir hatırlatma: tasarım modunda değişiklik yapıldığında formu kapatmadan önce "değişiklikler kaydedilsin mi?" benzeri bir uyarı mesajı çıkar
yanlışlıkla evet derseniz form gelecek sefer o sayıda sekme ile açılır yani eğer açılması gerekenden fazla sayfa varsa bu durumda silme işlemi de yapılabilmeli
14/06/2023, 20:29

vetaltan

(13/06/2023, 17:27)berduş yazdı: rica ederim
iyi çalışmalar)
ufak bir hatırlatma: tasarım modunda değişiklik yapıldığında formu kapatmadan önce "değişiklikler kaydedilsin mi?" benzeri bir uyarı mesajı çıkar
yanlışlıkla evet derseniz form gelecek sefer o sayıda sekme ile açılır yani eğer açılması gerekenden fazla sayfa varsa bu durumda silme işlemi de yapılabilmeli

Sayın Berduş,

Uyarınız için teşekkürler.
Yanlışlıkla kaydetme problemine karşı aşağıdaki kodu uyguladım, gayet güzel çalışıyor.

Kod:
Private Sub Komut1_Click()
Dim a
a = Val(Me.kactane & "")

frmName = "sekmedenetimi"

DoCmd.OpenForm FormName:=frmName, View:=acDesign
Set frm = Forms(frmName)
Set tbc = frm.Controls("TabCtl0")
bas = tbc.Pages.Count + 1 'sekme nesnesindeki sayfa sayısını bulup 1 ekliyor
az = tbc.Pages.Count - 1

If bas <= a Then

For x = bas To a
tbc.Pages.Add


Next
AddPage = True
DoCmd.OpenForm FormName:=frm.Name
DoCmd.Close acForm, Me.Name, acSaveNo ' bu kod bu formu form1'i kapatır


ElseIf bas > a Then

For x = a To az

tbc.Pages.Remove



Next
AddPage = True
DoCmd.OpenForm FormName:=frm.Name
DoCmd.Close acForm, Me.Name, acSaveNo ' bu kod bu formu form1'i kapatır
End If

End Sub
14/06/2023, 20:38

berduş

Çözümü paylaştığınız için teşekkürler)
1 2