Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum (/konu-arama-filtre-kodlamalasi-ile-ilgili-veri-tipi-ve-toplu-filtre-ile-ilgili-sorum.html) |
Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - ODRSCH26 - 05/03/2021 Merhabalar, Bir önceki sorumun devamı olarak sormak istediğim 2 nokta var. Eklediğim Access örneği üzerinden (vehicleplanform) cevaplayabilirsiniz. Birinci Sorum: Ben arama yapmak istediğimde aşağıdaki kod yapısını (KOD 1) kullanıyordum ancak farkettim ki bu kod yapısı veri kaynağındaki form altındaki sorguyu tamamen değiştiriyor. Bu nedenle arama amaçlı kullanılması yanlış diye düşünüyorum. Bu kodla arama yapıp formu kapatıp tekrar açan kullanıcı, dataları farklı şekilde son arama kaynağını baz alarak görmüş olacak. Bunu gözden kaçırmışım. O nedenle arama amaçlı aşağıdaki kodu (KOD 2) devreye soktum. _______KOD 1_________ cabledataformquery = "SELECT * FROM tblcabledata WHERE line ='" & linesearchtxtbox & "'" & "" Me.RecordSource = cabledataform Me.Refresh _______KOD 2________ Private Sub searchbutton_Click() On Error GoTo Err_searchbutton_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "vehicleplanform" stLinkCriteria = "[line]=" & [linesearchtxtbox] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_searchbutton_Click: Exit Sub Err_searchbutton_Click: MsgBox Err.Description Resume Exit_searchbutton_Click End Sub Burada arama yaptığım alan olan "line" integer. O nedenle buradaki tanımı da integer yapmam gerekiyor diye düşünüyordum ama string dediğimde doğru çalışıyor.(Dim stLinkCriteria As String) StLinkCriteria aratma yaptığımız alan integer da olsa string de olsa string diye tanımlandığında arama doğru çalışıyor. Buradaki string tipi farklı bir noktayı mı tanımlıyor acaba? İkinci Sorum: Vehicleplanform formu üzerinde 2 tane arama alanımız var - (line, model) Burada her bir alan için teker teker bağımsız arama yapabiliyoruz. Ancak ben 2 kutuya değeri yazalım sonra tek bir büyüteçe bastığımızda 2 sini de sağlayacak şekilde filtre oluşturmasını istiyorum (Basit olarak excelde yapabildiğimiz filtre tarzı). Bunu nasıl yapabiliriz. Teşekkürlerimi sunarım. RE: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - berduş - 05/03/2021 stLinkCriteria siz bu kodu form açma eyleminde kullanıyorsunuz yani form açma fonksiyonuna parametre gönderiyorsunuz, parametreler fonksiyonda tanımlanır, form açma fonksiyonu da bu parametreyi string olunca kabul ediyor. Bizim daha önce vurguladığımız metin/sayisal ayrımı doğrudan alanın kendisiyle ilgiliydi burada kullanılan parametre ise alan + alan değeri kullanılıyor RE: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - berduş - 05/03/2021 2. soru içinse tek arama butonu yeterli aslında arama kodunu aşağıdaki gibi düzenleyip dener misiniz?
bu koda ile hangi metin kutuları doluysa ona göre arama yapması gerekMe.FilterOn = False bu kod 2 metin kutsu da boşsa tüm kayıtları gösterir kodu aşağıdaki gibi de düzenleyebilirsiniz
ufak 1 hatırlatma lütfen 1 konuda sadece 1 soru olsun her soru için yeni konu açın. RE: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - berduş - 05/03/2021 Lütfen konularınıza olumlu yada olumsuz mutlaka dönüş yapınız RE: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - ODRSCH26 - 06/03/2021 Sayın Berduş, teşekkürler cevabınız için. ikinci nokta ile ilgili olarak netleştirmek istediğim için ufak bir sorum var. Aşağıdaki ifadeyi de If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = stLinkCriteria & IIf(Len(stLinkCriteria & "") = 0, "", " and ") & "[model]=" & "'" & [modelsearchtxtbox] & "'" Bu şekilde yazamaz mıydım? If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = "[model]=" & "'" & [modelsearchtxtbox] & "'" ? Tek konuya tek soru sormaya dikkat edeceğim. Teşekkürler. RE: Arama (Filtre) Kodlamalası İle İlgili Veri Tipi Ve Toplu Filtre İle İlgili Sorum - berduş - 06/03/2021 (06/03/2021, 09:02)ODRSCH26 yazdı: If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = "[model]=" & "'" & [modelsearchtxtbox] & "'"kodu bu şekilde yazarsanız sadece modele göre arama yapar ifade özellikle o şekilde kullanıldı 1. amaç line alanı için arama kriteri var mı ona bakıldıktan sonra eğer line için arama girilmiş ise and bağlacı ile 2. koşul da sağlanma şartı eklemek 1 - If Len(linesearchtxtbox & "") > 0 Then stLinkCriteria = "[line]=" & [linesearchtxtbox] bu satır ile line alanı için kriter girilmiş mi o kontrol edilir 2 - If Len(modelsearchtxtbox & "") > 0 Then stLinkCriteria = stLinkCriteria & IIf(Len(stLinkCriteria & "") = 0, "", " and ") & "[model]=" & "'" & [modelsearchtxtbox] & "'" buradaki IIf(Len(stLinkCriteria & "") = 0, "", " and ") line alanı dolu ise and bağlacı eklenir, boş ise bir şey eklemez her 2 arama alanı doluysa sonuç: stLinkCriteria -->"line=SayıLineArama and model='MetinModelArama'" ______________________________________________________________________________________________ 2 kriter tek olduğundan burada çok önemli değil ama aşağıdaki mantık 2den fazla kriter için daha uygun olur bence
böylece aynı şablon üzerinden istediğimiz kadar kriter ekleyebiliriz tek değiştirilmesi gereken alan adları ve atanacak metin kutusu adı olur
|