Wie Sie AddItem und RemoveItem, um Auswahl zwischen einem Listenfeld verschieben

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 278378 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Erweiterte: Erfordert Experten Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich auf Microsoft Access-Datenbanken (.mdb) sowie auf Microsoft Access-Projekte (.adp).

Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel veranschaulicht das Verwalten von zwei Listen, so dass Elemente aus einer Liste einzeln oder als Gruppe in der zweiten Liste und umgekehrt übertragen werden können. Der Prozess ähnelt der in der Access-Assistenten z. B. der Listenfeld-Assistent selbst angezeigt.

Weitere Informationen

Microsoft bietet Programmierbeispiele für Abbildung nur ohne Gewährleistung oder konkludent. Dies umfasst, ist jedoch nicht beschränkt auf konkludenten Garantien der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der Programmiersprache, die Programmierungsbeispiele ist und mit den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden vertraut sind. Microsoft Support-Technikern helfen Erläuterung die Funktionalität einer bestimmten Prozedur, Sie werden ändert jedoch nicht diese Beispiele bieten Funktionen hinzugefügt oder Verfahren, um Ihren Anforderungen entsprechend zu erstellen. Vorsicht : Wenn Sie die in diesem Beispiel beschriebenen Schritte ausführen, ändern Sie die Beispieldatenbank Nordwind.mdb. Sie sollten daher eine Sicherungskopie der Datei "Nordwind.mdb" erstellen und diese Schritte in einer Kopie der Datenbank ausführen.

Wenn Sie der Listenfeld-Assistent, verwenden um Felder aus einer Tabelle oder Abfrage auszuwählen, die dritte Schritt im Prozess stellt zwei Listen: Verfügbare Felder und Ausgewählte Felder . Die Liste Ausgewählte Felder ist zunächst leer. Sie können Felder in einer Liste auswählen und dann zu einem anderen verschieben, durch Klicken auf eine der vier Schaltflächen.

Dieser Artikel veranschaulicht das ein Formular mit ähnlichen Listen erstellen, die Sie auf bestimmte Datensätze zur weiteren Verarbeitung wie nötig verwenden können. Dies kann nützlich, z. B. sein, wenn Sie müssen Wählen Sie bestimmte Kunden, deren Identitäten für den Operator bekannt sind, aber für wen Sie problemlos können nicht die Kriterien in einer Abfrage festlegen.

Gehen Sie folgendermaßen vor um ein Formular erstellen, mit denen Sie auf diese Weise Kunden auswählen können,
  1. Starten Sie Access, und öffnen Sie die Beispieldatenbank Nordwind.mdb oder das Beispielprojekt NordwindCS.adp.
  2. Erstellen Sie ein neues Formular in der Entwurfsansicht, und speichern Sie es dann mit den Namen Select Kunden.
  3. Erstellen Sie zwei Listenfelder in den Detailabschnitt des Formulars. Name einer Feld List1 und das andere Feld Liste2. Die RowSourceType -Eigenschaften auf Wertliste festgelegt.
  4. Erstellen Sie vier Befehlsschaltflächen, eine unterhalb der anderen im Detailabschnitt des Formulars, und legen Sie deren Eigenschaften wie folgt fest:
            Name                  Caption
         ----------              ----------
         cmdMoveToList2              >
         cmdMoveAllToList2          >>
         cmdMoveToList1              <
         cmdMoveAllToList1          <<     
    					
  5. Klicken Sie auf der Symbolleiste auf die Schaltfläche Code und in das Codefenster geben Sie ein, oder fügen Sie eine der folgenden Verfahren, je nachdem, ob Sie Nordwind.mdb oder NordwindCS.adp verwenden:
    • Wenn Sie Nordwind.mdb verwenden, geben oder fügen diese Prozedur:
      Private Sub Form_Load()
         Dim db As DAO.Database
         Dim rs As DAO.Recordset
         Dim strSQL As String, strItem As String
      
         strSQL = "SELECT CustomerID, CompanyName FROM Customers"
         Set db = CurrentDb
         Set rs = db.OpenRecordset(strSQL)
         Do Until rs.EOF
            strItem = rs.Fields("CustomerID").Value & ";" _
               & rs.Fields("CompanyName").Value
            Me.List1.AddItem strItem      ' Row Source Type must be Value List
            rs.MoveNext
      
         Loop
         rs.Close
         Set rs = Nothing
         Set db = Nothing
      End Sub
      						
    • Wenn Sie NordwindCS.adp verwenden, geben oder fügen diese Prozedur:
      Private Sub Form_Load()
      
         Dim cn As ADODB.Connection
         Dim rs As ADODB.Recordset
         Dim strSQL As String, strItem As String
      
         strSQL = "SELECT CustomerID, CompanyName FROM Customers"
         Set cn = Application.CurrentProject.Connection
         Set rs = New ADODB.Recordset
         rs.Open strSQL, cn, adOpenForwardOnly, adLockOptimistic
        
         Do Until rs.EOF
            strItem = rs.Fields("CustomerID").Value & ";" _
               & rs.Fields("CompanyName").Value
            Me.List1.AddItem strItem      ' Row Source Type must be Value List
            rs.MoveNext
         Loop
         rs.Close
         Set rs = Nothing
      
         Set cn = Nothing
      
      End Sub
      						
  6. Add the following procedures for both Northwind.mdb or NorthwindCS.adp:
    Private Sub cmdMoveAllToList1_Click()
        MoveAllItems "List2", "List1"
    End Sub
    
    Private Sub cmdMoveAllToList2_Click()
        MoveAllItems "List1", "List2"
    End Sub
    
    Private Sub cmdMoveToList1_Click()
        MoveSingleItem "List2", "List1"
    End Sub
    
    Private Sub cmdMoveToList2_Click()
         MoveSingleItem "List1", "List2"
    End Sub
    
    Sub MoveSingleItem(strSourceControl As String, strTargetControl As String)
        
        Dim strItem As String
        Dim intColumnCount As Integer
        For intColumnCount = 0 To Me.Controls(strSourceControl).ColumnCount - 1
            strItem = strItem & Me.Controls(strSourceControl).Column(intColumnCount) & ";"
        Next
        strItem = Left(strItem, Len(strItem) - 1)
    
        'Check the length to make sure something is selected
        If Len(strItem) > 0 Then
            Me.Controls(strTargetControl).AddItem strItem
            Me.Controls(strSourceControl).RemoveItem Me.Controls(strSourceControl).ListIndex
        Else
            MsgBox "Please select an item to move."
        End If
    
    End Sub
    
    
    Sub MoveAllItems(strSourceControl As String, strTargetControl As String)
        Dim strItem As String
        Dim intColumnCount As Integer
        Dim lngRowCount As Long
        
        For lngRowCount = 0 To Me.Controls(strSourceControl).ListCount - 1
            For intColumnCount = 0 To Me.Controls(strSourceControl).ColumnCount - 1
                strItem = strItem & Me.Controls(strSourceControl).Column(intColumnCount, lngRowCount) & ";"
                
            Next
            strItem = Left(strItem, Len(strItem) - 1)
            Me.Controls(strTargetControl).AddItem strItem
            strItem = ""
        Next
            
        Me.Controls(strSourceControl).RowSource = ""
    End Sub
    					
  7. Im Menü Extras klicken Sie auf Verweise und stellen Sie sicher, dass die Microsoft DAO 3.6-Objektbibliothek oder der Microsoft ActiveX Data Objects 2.x-Objektbibliothek (wobei 2.x Version 2.1 oder höher bezeichnet) markiert ist je nachdem, ob Sie Nordwind.mdb oder NordwindCS.adp, verwenden und schließen Sie dann den Visual Basic-Editor.
  8. Legen Sie in der Entwurfsansicht des Formulars die Eigenschaft BeimKlicken für jede der Befehlsschaltflächen an [Ereignisprozedur] ein.
  9. Speichern Sie das Formular, und öffnen Sie es in der Formularansicht.
  10. Wählen Sie eine oder alle Elemente in einer Liste, und verwenden Sie dann die Befehlsschaltflächen, um das Element oder die Elemente aus einer Liste zu einem anderen zu verschieben.

Eigenschaften

Artikel-ID: 278378 - Geändert am: Montag, 29. Januar 2007 - Version: 5.4
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbmt kbprogramming kbhowto KB278378 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 278378
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com