Wa'alaikumussalam Wr. Wb.

Hai Miss,

imho,
1. Kapan harus menggunakan .Value atau .Text di combo box dan list box ?
>> ketika combo atau list berisi lebih dari 1 kolom dan ingin membuat
tampilan menampilkan nilai dari kolom yang berbeda dengan yang disimpan
oleh si combo atau list.

2. Apa perbedaan antara .Value dengan .Text di combo box / list box? karena
keduanya akan menampilkan hasil yang sama di latar monitor
>> pada keadaan seperti jawaban nomor 1 yang diterapkan pada listbox,
properti text tidak akan tampak kegunaannya secara langsung kecuali ketika
akan mengambil nilai tertentu. Jadi akan tampak sama di layar monitor. Pada
combobox, akan tampak perbedaannya di layar monitor.
>> simplenya, properti text bisa diatur isinya dengan mengatur isi properti
textxolumn, sedangkan properti value bisa diatur dengan mengatur isi
properti boundcolumn.
>> misal, combobox diisi 3 kolom yang berupa IDCustomer, Nama, Alamat. Saat
user memilih sebuah item, combobox ingin menampilkan si nama, tapi inginnya
ketika dibaca, si combobox harus memberikan nilai IDCustomer-nya.
Boundcolumn di-set 1 dan textcolumn di-set 2. Script yang menggunakan
properti Value akan memberikan nilai yang ada di kolom ke-1 dan script yang
menggunakan properti Text dan yang ditampilkan dalam combobox akan
mengambil nilai dari kolom ke-2.
>> jadi properti text dengan properti Value adalah 2 hal yang berbeda. Pada
saat properti boundcolumn di-set 1 dan textcolumn di-set 1 atau -1 (default
-1 akan membuat textcolumn sama dengan boundcolumn) maka properti text dan
value akan seakan-akan sama, padahal tetaplah 2 hal yang berbeda.

3. Apa hubungan antara .Value atau .Text dengan set fokus suatu objek?
>> tidak ada hubungan yang erat di antara mereka kecuali ketika pada
combobox yang memiliki properti matchrequired di-set bernilai TRUE, maka
kadang kala mereka akan membuat ulah ketika digunakan tanpa memahami
kondisi nyata saat si combobox aktif.
>> properti text dan value berkaitan dengan nilai data yang disimpan
(value) dan yang ditampilkan [penampakan] (text), sedangkan setfocus
berkaitan dengan memaksa user untuk fokus pada control tersebut.

*** menyinggung kasus sdr/i Riska setelah sempat membuka ulang filenya
siang tadi,
1. Combobox bernama AT1 diatur properti matchrequired-nya dengan TRUE
>> artinya, user harus memilih item yang ada dalam list. kalau tidak, maka
pesan error invalid property value akan muncul. Silakan dicoba, saat
userform aktif, tulis pada combobox itu (ketik langsung tanpa memilih item)
teks berbunyi Kid lalu klik combobox lainnya.

2. pemilik kasus mengubah isi combobox bernama AT1 dengan nullstring. Akan
diubah melalui properti value atau text adalah sama saja karena boundcolumn
di-set 1 dan textcolumn di-set -1, lagipula, isi combobox list-nya memang
hanya berisi 1 kolom data saja.
>> pada kondisi properti matchrequired di-set TRUE, maka isian ini akan
memicu munculnya pesan error tersebut ketika si combobox diaktifkan
(mendapat posisi fokus, seperti di klik user untuk masuk ke combo tersebut
lalu keluar, dan sebagainya).

3. pemilik kasus melakukan set focus pada combobox yang di-set
matchrequired TRUE
>> setelah diubah nilainya menjadi Nullstring yang tidak ada dalam pilihan
combobox list, maka setting matchrequired TRUE adalah berpotensi membawa
masalah munculnya error invallid property value.
>> potensi ini akan ternetralisir ketika si combobox tidak di-set focus
sembarangan, alias biarkan user saja yang melakukan set focus dengan
meng-klik si combobox.

4. pemilik kasus melakukan setfocus pada combobox yang berpotensi
bermasalah akibat set matchrequired TRUE.
>> jadi baris set focus yang ada sebenarnya adalah kegiatan yang dilakukan
dengan sengaja untuk mencari masalah

5. pemilik kasus menyembunyikan userform yang menjadi tempat tinggal si
combobox dengan userform hide-nya.
>> kenapa di-set focus kalau mau di-sembunyikan ?

Jadi,
a. pengaturan properti matchrequired bisa jadi sangat dibutuhkan oleh
pembuatnya. Itu sebabnya dicoba untuk tidak diubah nilai propertinya.
b. Berhubung properti matchrequired bisa membawa masalah, maka yang
dihilangkan adalah kegiatan yang memunculkan masalah laten tersebut ke
permukaan, yaitu menghilangkan set focus.
c. disarankan agar seluruh combobox yang di-set matchrequired tidak di-set
focus atau tidak mendapat focus secara auto oleh si user ataupun si
userform. Caranya :
>> jangan lakukan set focus pada combobox tersebut
>> atur agar properti tabindex selalu memiliki nilai yang lebih dari nilai
tabindex control lain yang aman diberi set focus

hal lainnya :
1. proses menampilkan userform (show) yang tidak mengatur parameter Modal
menjadi FALSE akan membuat script berhenti pada baris show tersebut,
walaupun ada penggunaan DoEvents sekalipun saat sampai di baris tersebut
atau didalam userform yang di-show.
2. penggunaan properti row source pada combobox ataupun listbox yang
merujuk ke suatu range tertentu, akan memicu event change milik combobox
atau listbox tersebut ketika ada pengubahan nilai data pada range yang
dirujuk oleh si properti row source.

Moga-moga gak bikin bingung ya...

Wassalamu'alaikum Wr. Wb.,
Kid.



2014-02-04 Jan Raisin <[email protected]>:

>
>
> السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
>
> Baru-baru ini mbak Riska menanyakan tentang invalid property value yang
> muncul,
> mr Kid menyinggung bahwa hal ini terkait dengan set fokus pada suatu objek
> pak Anton menyarankan untuk mengganti .Value menjadi .Text
> berdasarkan pengamatan Jan error yang terjadi seperti ini umumnya
> berhubungan dengan combo box dan list box.
>
> Pertannyaan untuk diskusi:
> 1. Kapan harus menggunakan .Value atau .Text di combo box dan list box ?
> 2. Apa perbedaan antara .Value dengan .Text di combo box / list box?
> karena keduanya akan menampilkan hasil yang sama di latar monitor
> 3. Apa hubungan antara .Value atau .Text dengan set fokus suatu objek?
>
> Silakan berbagi ilmunya di sini  ^_^
>
> وَسَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
> -Miss Jan Raisin-
>
>  
>

Kirim email ke