Microsoft Access'te birden çok seçim liste kutusundaki seçili öğeleri virgülle ayrılmış dize olarak alma
Bu makale, ya bir Microsoft Access veritabanı (.mdb) dosyası ya bir Microsoft Access veritabanı (.accdb) dosyası için ve bir Microsoft Access projesi (.adp) için geçerlidir.
Orta: Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.
Özet
Bu makalede, birden çok seçim listesi kutusundan seçili öğelerin nasıl alındığı ve seçili öğelerin Microsoft Access'te virgülle ayrılmış bir dize olarak nasıl depolandığı açıklanır.
Ek Bilgi
Microsoft Access'te, bir formdaki veya rapordaki liste kutusunun MultiSelect özelliğinin değeri, liste kutusunun tek bir seçim listesi kutusu mu yoksa birden çok seçim listesi kutusu mu olduğunu belirler. Birden çok seçim listesi kutusunda, aynı anda birden çok liste öğesi seçebilirsiniz.
Seçili öğeyi liste kutusundan almak için liste kutusunun Value özelliğini kullanabilirsiniz. Ancak, birden çok seçim listesi kutusu kullandığınızda ve Value özelliğini kullanarak seçili öğeleri almaya çalıştığınızda Value özelliği Null döndürür.
Seçili öğeleri birden çok seçim listesi kutusunda alabilir ve ardından seçili öğeleri program aracılığıyla virgülle ayrılmış dize olarak depolayabilirsiniz. Bunu yapmak için şu adımları uygulayın:
Microsoft Access'i başlatın.
Northwind örnek veritabanını açın.
Veritabanı penceresinin Nesneler bölümünde Formlar'a tıklayın.
Not Access 2007'de, Oluştur sekmesinin Formlar grubunda Form Tasarımı'na tıklayın.
Sağ bölmede Tasarım görünümünde Form oluştur'a çift tıklayın.
Not Access 2007'de bu adımı atlayın.
Forma aşağıdaki denetimleri ekleyin ve denetimlerin özelliklerini belirtilen şekilde ayarlayın:
List Box ---------------------------------------------------- Name : NamesList Row Source Type : Table/Query Row Source : SELECT First Name FROM Employees Multi Select : Extended Width : 3.5" Height : 0.75" Text Box ----------------------- Name : mySelections Width : 3.5" Height : 0.25" Command Button ---------------------------------- Name : testmultiselect Caption : Display Selected Items Width : 1.375" Height : 0.3" Command Button ---------------------- Name : ClrList Caption : Clear List Width : 1.375" Height : 0.3"
Görünüm menüsünde Kod'a tıklayın.
Not Access 2007'de, Tasarım sekmesinin Araçlar grubunda Kodu Görüntüle'ye tıklayın.
Visual Basic Düzenleyici aşağıdaki kodu yapıştırın:
Option Compare Database
Option Explicit
Private Sub Form_Current()
Dim oItem As Variant
Dim bFound As Boolean
Dim sTemp As String
Dim sValue As String
Dim sChar As String
Dim iCount As Integer
Dim iListItemsCount As Integer
sTemp = Nz(Me!mySelections.Value, " ")
iListItemsCount = 0
bFound = False
iCount = 0
Call clearListBox
For iCount = 1 To Len(sTemp) + 1
sChar = Mid(sTemp, iCount, 1)
If StrComp(sChar, ",") = 0 Or iCount = Len(sTemp) + 1 Then
bFound = False
Do
If StrComp(Trim(Me!NamesList.ItemData(iListItemsCount)), Trim(sValue)) = 0 Then
Me!NamesList.Selected(iListItemsCount) = True
bFound = True
End If
iListItemsCount = iListItemsCount + 1
Loop Until bFound = True Or iListItemsCount = Me!NamesList.ListCount
sValue = ""
Else
sValue = sValue & sChar
End If
Next iCount
End Sub
Private Sub clearListBox()
Dim iCount As Integer
For iCount = 0 To Me!NamesList.ListCount
Me!NamesList.Selected(iCount) = False
Next iCount
End Sub
Private Sub testmultiselect_Click()
Dim oItem As Variant
Dim sTemp As String
Dim iCount As Integer
iCount = 0
If Me!NamesList.ItemsSelected.Count <> 0 Then
For Each oItem In Me!NamesList.ItemsSelected
If iCount = 0 Then
sTemp = sTemp & Me!NamesList.ItemData(oItem)
iCount = iCount + 1
Else
sTemp = sTemp & "," & Me!NamesList.ItemData(oItem)
iCount = iCount + 1
End If
Next oItem
Else
MsgBox "Nothing was selected from the list", vbInformation
Exit Sub 'Nothing was selected
End If
Me!mySelections.Value = sTemp
End Sub
Private Sub clrList_Click()
Call clearListBox
Me!mySelections.Value = Null
End Sub
Visual Basic Düzenleyici kapatın.
Formu Form1 olarak kaydedin.
Formu kapatın.
Form1 formunu Form görünümünde açın:
Veritabanı Penceresinin Nesneler bölümünde Formlar'a tıklayın.
Not Access 2007'de, gezinti bölmesinde Formlar grubuna tıklayın.
Sağ bölmede Form1'e sağ tıklayın ve ardından Aç'a tıklayın.
Not Access 2007'de Form1'e sağ tıklayın ve ardından Aç'a tıklayın.
Liste kutusunda birden çok öğe seçin. Bunu yapmak için, liste kutusunda bir öğeye tıklayın, CTRL tuşunu basılı tutun ve ardından liste kutusunda diğer öğelere tıklayın.
Seçili Öğeleri Görüntüle'ye tıklayın.
Birden çok seçim listesi kutusundan seçilen öğeler, metin kutusunda virgülle ayrılmış bir dize olarak görüntülenir.
Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin