| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ListBox / auf vorhandenen Eintrag prüfen (5651 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 20. Aug. 2007 16:17 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Ich habe auf einer UserForm eine ListBox mit Einträgen. Über einen Button (Hinzufügen) möchte ich weitere Eintragungen hinzufügen. Dabei soll geprüft werden, ob sich der Eintrag bereits in der ListBox befindet. Das funktioniert soweit, bis auf die Prüfung ob bereits vorhanden. Hier wird nur der oberste Eintrag genommen. Code:
Private Sub cmdSectionAdd_Click() Dim AppName As StringOn Local Error Resume Next AppName = InputBox("Geben Sie den Anwendungsnamen ein:", "Neue Anwendung") If AppName = "" Then Exit Sub For i = 0 To ListBox.Count - 1 If AppName = lstSections.List(i) Then MsgBox "Dieser Abschnitt existiert bereits!", 64 Exit Sub Else With lstSections .AddItem AppName .ListIndex = AppName End With End If Next End Sub
Hat da jemand eine Lösung für mich? Vielen Dank im voraus. Gruß Dirk
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 20. Aug. 2007 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Hi Dirk, Der erste Fehler liegt bei Listbox.Count - 1. Das müsste so sein: lstsection.listcount -1. Dann ist die Variable i nicht deklariert, was aber davon kommt, das das nur ein Teil deines Codes ist. Aber der eigentliche Fehler liegt in deiner Schleife. DU vergleichst den eingegebenen Wert mit deiner Listbox. Ist dieser ungleich des Werts, den du gerade vergleichst, wird für jeden vorhandenen Eintrag(der Ungleich deines zu prüfenden Werts ist) dein Eintrag hinzugefügt. Ich würde mir eine Variable definieren, die mit dem Wert 0 beginnt und in der Schleife nur 1 dazu addieren, wenn der Wert schon vorhanden ist. Wenn am Ende der Wert auf 0 steht, gibt es den Eintrag noch nicht und du kannst diesen hinzufügen. P.s. : Gestern hatte ich noch keine Lösung für dich. Nach 2 Tagen feiern ging das noch nicht wieder. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 20. Aug. 2007 18:04 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Hi Dirk, hab hier mal schnell was zusammen geklöppelt: Code: Private Sub CommandButton1_Click() Dim AppName As String Dim i As Integer Dim Vorhanden As Integer Vorhanden = 0 On Local Error Resume Next AppName = InputBox("Geben Sie den Anwendungsnamen ein:", "Neue Anwendung") ''Inputbox mit Abfrage für neuen Eintrag/AbschnittIf AppName = "" Then Exit Sub ''Wenn nichts eingegeben dann Ende For i = 0 To lstSections.ListCount - 1 ''Alle Einträge der Listbox durchlaufen If AppName = lstSections.List(i) Then ''Wenn Eintrag schon vorhanden, dann "Vorhanden" um 1 erhöhen, sonst nichts ändern. Vorhanden = Vorhanden + 1 Else End If Next If Vorhanden = 0 Then ''Wenn "Vorhanden" = 0 dann Eintrag hinzufügen, sonst Meldung ausgegebn, das der Eintrag schon existiert. With lstSections .AddItem AppName .ListIndex = AppName End With Else MsgBox "Dieser Abschnitt existiert bereits!", 64 End If End Sub
Das kannst du so in deine DVB (Link zum Beitrag) einbauen. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003
|
erstellt am: 20. Aug. 2007 20:10 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|