Awalnya saya memiliki kotak kombo cbSortOrder yang didefinisikan dalam formulir sebagai Daftar Nilai tetap. Saya sekarang mencoba mengatur ini dalam kode VBA, menggunakan array. Saya telah mencoba dengan varian dan array string tetapi tidak berpikir masalah saya terhubung dengan itu tetapi ada hubungannya dengan definisi kotak kombo.

Saat mencoba mengatur nilai-nilai ini dalam pernyataan With, saya mendapatkan kesalahan Objek Tidak Mendukung Metode.

Saya telah melampirkan screenprint dari kesalahan aktual dan properti dari kotak kombo saya.

Error Combo box general properties Data properties

0
stain 25 Mei 2021, 15:44

2 jawaban

Jawaban Terbaik

Sayangnya, Anda tidak dapat menggunakan koleksi sebagai sumber baris di Access. Jenis Sumber Baris Value List mengacu pada teks yang dipisahkan koma (atau titik koma) (tergantung pada pengaturan pemisah daftar di Windows).

Jika Anda tidak ingin menggunakan daftar nilai seperti itu, gunakan Jenis Sumber Baris Table/Query dan tentukan nama tabel atau kueri. Anda juga dapat menyisipkan pernyataan SELECT langsung ke bidang ini.

Ini juga berarti, Anda harus menyimpan entri dalam tabel untuk Tipe Sumber Baris ini. Anda juga dapat menggunakan tabel lokal alih-alih tabel di back-end.

Selain itu, ComboBox tidak memiliki properti List. Gunakan properti RowSource sebagai gantinya. Dalam kode di belakang formulir, Anda dapat menghilangkan bagian Forms("formName").

With cbSortOrder
    .RowSourceType = "Table/Query"
    .RowSource = "SELECT Id, Description FROM tlkpSortOrder ORDER BY Description"
End With

Atau

With cbSortOrder
    .ColumnCount = 2    ' If you have and id and a text
    .ColumnWidths = "0" ' Hides the Id column
    .RowSourceType = "Value List"
    .RowSource = "1,Ascending,2,Descending,3,Undefined"
End With

Lihat juga: Properti ComboBox.RowSourceType (Akses)

0
Olivier Jacot-Descombes 25 Mei 2021, 13:23

Anda dapat membuat string yang dipisahkan titik koma menggunakan metode Join().

Lihat contoh di bawah ini:

Dim arr As Variant
arr = Array("One", "Two", "Three")

Dim source As String
source = Join(arr, ";")

ComboBox.RowSource = source
0
Kostas K. 25 Mei 2021, 13:09