Listbox seçimine bağlı alt form alanı

27/10/2011, 03:32

ITECHINN

Merhabalar;

Başlık yeterince açıklayıcı oldu mu bilmiyorum ama projeme şu tarz birşey koymak istiyorum. (Web'den gelen alışkanlıklar doğrultusunda diyelim)

Misal;
Siparişler ekranında teslimat alanı "Kargo" seçilince, formun altında "Kargo Firmaları" Alanının görünür olmasını, "Nakliye" Seçilince "Nakliye Firmaları" alanının görünmesini, diğer seçimlerde de o alanın görünmemesini (Non-Editable değil direk Hidden diyelim) sağlamak istiyorum.

Access'te yapılabilecek bir koşullamamıdır? if-else ile yapılacağını biliyorum ama form alanlarının visible-hidden gibi özelliklerini bilmediğim için yardımlarınıza başvurmak zorunda kaldım.

Şimdiden teşekkür ederim.
Saygılarımla
Aytekin
27/10/2011, 03:54

ITECHINN

Merhaba Tekrardan;

PHP öğrenirken yaşadığım şey, burada da başıma geliyor Soruyu foruma yazıp gönderdikten sonra, tekrar okuyunca şimşekler çakıyor kafamda Bir an, JS'lerde yapılan metodlar geldi aklıma ve çözüm...

Buyrun sorumun cevabı, belki lazım olan bir arkadaş olabilir. Hatta forumda çözümü de olabilir. Ben yanlış anahtar sözcük seçmiş olabilirim.

Private Sub NakliyeYonetimiNo_AfterUpdate()
If (Me.NakliyeYonetimiNo.Column(1) = "Kargo") Then
Me.KargoFirmasi.Visible = True
Me.NakliyeFirmasi.Visible = False
ElseIf (Me.NakliyeYonetimiNo.Column(1) = "Ambar") Then
Me.NakliyeFirmasi.Visible = True
Me.KargoFirmasi.Visible = False
Else
Me.NakliyeFirmasi.Visible = False
Me.KargoFirmasi.Visible = False
End If

End Sub

Tabi kayıtlar arasında gidip geldikten sonra da bu gösterim olayının tekrarını isterseniz (Ki mutlaka gerekecektir)

Private Sub Form_Current()
Me.AraToplam = UrunNo.Column(2) * UrunMiktari
Me.ToplamBakiye = AraToplam - IndirimTutari
If (Me.NakliyeYonetimiNo.Column(1) = "Kargo") Then
Me.KargoFirmasi.Visible = True
Me.NakliyeFirmasi.Visible = False
ElseIf (Me.NakliyeYonetimiNo.Column(1) = "Ambar") Then
Me.NakliyeFirmasi.Visible = True
Me.KargoFirmasi.Visible = False
Else
Me.NakliyeFirmasi.Visible = False
Me.KargoFirmasi.Visible = False
End If
End Sub


Not: Amerika'yı yeniden keşfetmiş gibi olabilirim. Daha kolay yolları varsa, öğrenmeye hazırım.
Saygılarımla
27/10/2011, 04:42

ozanakkaya

php ve js deyince bende de şimşek çakıyor ne hikmetse
Alıntı:Daha kolay yolları varsa, öğrenmeye hazırım.

bu tür işlevler için select-case kullanmak daha doğru, ayrıca kod tekrarından kaçınmak için kodu aşağıdaki gibi uygulayabilirsiniz.

Sub GizleGoster()
Select Case Me.NakliyeYonetimiNo.Column(1)
Case "Kargo"
Me.KargoFirmasi.Visible = True
Me.NakliyeFirmasi.Visible = False
Case "Ambar"
Me.NakliyeFirmasi.Visible = True
Me.KargoFirmasi.Visible = False
Case Else
Me.NakliyeFirmasi.Visible = False
Me.KargoFirmasi.Visible = False
End Select
End Sub

Private Sub Form_Current()
Me.AraToplam = UrunNo.Column(2) * UrunMiktari
Me.ToplamBakiye = AraToplam - IndirimTutari
Call GizleGoster
End Sub

Private Sub NakliyeYonetimiNo_AfterUpdate()
Call GizleGoster
End Sub
Konu cevaplanmış sorular bölümüne taşınmıştır.

Geri bildirimde bulunduğunuz için teşekkürler.