Switch İle Dsum Birlikte Kullanımı Hk.

27/06/2024, 08:56

Sky_Kh@n

Herkese merhaba;
Accesste yapmaya çalıştığım bir raporda filtre kriterine göre alt toplam alabilmek için seçenek grubu içeren bir filtreleme yöntemi uyguluyorum ve kullanmaya çalıştığım bir iç içe kod olan Switch ile Dsum kodum hata vermiyor olmasına rağmen kod sonuç döndürmüyor. Kullandığım yöntemde nerede hata yaptığıma dair siz değerli üstadlarımdan destek rica ederim.


Kullandığım kod aşağıdaki gibi;
Kod:
Dim fltr As String
fltr = Switch([Forms]![frm_DomKayitlariRaporu]![secenek] = 1, "TalepNo", [Forms]![frm_DomKayitlariRaporu]![secenek] = 2, "BildirenNakliyeci", [Forms]![frm_DomKayitlariRaporu]![secenek] = 3, "SorumluNakliyeci", [Forms]![frm_DomKayitlariRaporu]![secenek] = 4, "SevkiyatTipi", [Forms]![frm_DomKayitlariRaporu]![secenek] = 5, "TeslimatNo", [Forms]![frm_DomKayitlariRaporu]![secenek] = 6, "BildirimTipi", [Forms]![frm_DomKayitlariRaporu]![secenek] = 7, "Ürün Kodu")
Me.txtLspUrunGondermeliTtl.Value = DSum("[Adet]", "[srg_DomKayitlariDetayli]", [fltr] = Me.txtFiltreGizli & "And[Statu2]='LSP Ürün Göndermeli'")

Burada Switch kodundan dönen fltr verisini Dsum kodu içerisinde kriter olarak uygulamaya çalışıyorum. Ancak fltr sonucu çift tırnak arasında döndüğü için sanırım kriter çalışmıyor. Bu durumu aşabileceğim bir yöntem varmı?

Not:Switch kodu içerisinde yer alan secenek adlı alan formdaki secenek grubuna verdiğim addır.
27/06/2024, 10:00

Sky_Kh@n

Herkese tekrar selam;
Sorunu ChatGpt ile çözdüm arkadaşlar. ihtiyacı olan olursa diye çözümü aşağıda sizlerlede paylaşıyorum. Sayın adminlerimiz konuyu sonuçlandı olarak kapatabilirsiniz. Herkese teşekkürler...

Sub AltToplam()
Dim fltr As String
Dim filterCondition, filterCondition2, filterCondition3 As String
Dim reportOption As Integer
' Get the selected option from the form
reportOption = [Forms]![frm_DomKayitlariRaporu]![secenek]
' Determine the filter field based on the selected option
fltr = Switch( _
        reportOption = 1, "TalepNo", _
        reportOption = 2, "BildirenNakliyeci", _
        reportOption = 3, "SorumluNakliyeci", _
        reportOption = 4, "SevkiyatTipi", _
        reportOption = 5, "TeslimatNo", _
        reportOption = 6, "BildirimTipi", _
        reportOption = 7, "Ürün Kodu", _
        True, "")
' Default case if none of the conditions are met
' Check if fltr is assigned a valid field name
If IsNull(fltr) Or fltr = "" Then
    MsgBox "Geçersiz seçenek seçildi. Lütfen geçerli bir seçenek seçin.", vbExclamation
    Exit Sub
End If
' Construct the filter condition
filterCondition = fltr & " Like '*" & Me.txtFiltreGizli & "*' AND [srg_DomKayitlariDetayli].[Statu2]='LSP Ürün Göndermeli' AND [srg_DomKayitlariDetayli].[Platform] Like '*" & Me.cboPlatform & "*'"

' Calculate the sum using Dsum and assign the result to the textbox
On Error GoTo ErrorHandler ' Error handling
Me.txtLspUrunGondermeliTtl.Value = Nz(DSum("[Adet]", "[srg_DomKayitlariDetayli]", filterCondition), 0)
Exit Sub
ErrorHandler:
    MsgBox "Bir hata oluştu: " & Err.Description, vbCritical
End Sub