Menggunakan variabel dalam string filter

Saya memiliki subformulir yang mengembalikan data dari tabel. Namun saya ingin memfilter lebih lanjut data ini dengan menggunakan properti filter.

Saya memiliki sekelompok tombol radio, kotak kombo, dan pernyataan kasus yang menetapkan variabel yang ingin saya gunakan ke nilai yang benar tergantung pada pilihan tombol radio

Kode saya untuk mengisi variabel berfungsi dengan baik tetapi saya tidak dapat menggunakan vba untuk mengatur filter kecuali saya mengetikkan string yang saya inginkan secara manual.

Saya berasumsi bahwa masalah saya adalah string filter saya salah secara sintaksis, tetapi saya tidak yakin bagaimana caranya. Mungkin ada hubungannya dengan pembatas teks.

Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = Filterby = FilterCrit
Forms![frmPendingActions]![qryPendingAction subform].Form.FilterOn = True

Asumsikan untuk pertanyaan ini bahwa Filterby=[Reporter] dan FilterCrit= Nama Palsu


person VBwhatnow    schedule 18.06.2012    source sumber


Jawaban (1)


Ya, menurut saya masalahnya ada hubungannya dengan pembatas teks. Kodenya akan terlihat seperti berikut:

Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = "[Reporter] ='" &  FilterCrit  & "'"

Filter harus dibuat persis sama dengan klausa Where tanpa kata Where. Jika kolom yang Anda filter memiliki tipe data teks maka kriterianya harus diapit dalam tanda kutip tunggal atau ganda. Jika kolomnya bertipe data tanggal maka kolom tersebut harus diapit #. Jika kolomnya bertipe data angka maka tidak perlu diapit.

Jika Anda tidak selalu ingin memfilter berdasarkan kolom Reporter maka Anda dapat membuat string menggunakan pernyataan if atau pernyataan kasus pilih dan kemudian menerapkan string tersebut ke filter formulir.

Misalnya:

If [somecondition] Then
   strFilter="[Reporter]='" & FilterCrit & "'"
Else
   strFilter="[ID]=" & 0
End If
Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = strFilter

Semoga membantu.

person Mark3308    schedule 18.06.2012
comment
Terima kasih, ini menjanjikan. Filter tampaknya berfungsi dengan benar tetapi saya rasa Anda mungkin sedikit salah memahami pertanyaan saya. Kolom yang ingin saya filter juga merupakan variabel, bagaimana cara mengatasinya? - person VBwhatnow; 18.06.2012
comment
Omong-omong, kolomnya adalah tipe data teks - person VBwhatnow; 18.06.2012
comment
Tidak apa-apa, saya menyesuaikan sisa kode saya dengan pernyataan Anda. - person VBwhatnow; 18.06.2012