zioProduct
Erfahrenes Mitglied
Ok, nun hab ich für mich, ein fast unlösbares Problem:
Ich habe die Such_Form, wo ich aus einer Listbox einen Prospekt auswählen kann; Bei Doppelklick öffnet sich die EditierForm, bei welcher eine Liste ist, die mir das Fachgebiet und das dazugehörige Stichwort anzeigt. Aus dieser Listbox kann ich vorhandene Einträge löschen, welches ich mit:
mache. Nun kann ich in dieser Listbox, neue Einträge hinzufügen, oder einfach einen oder mehrere Löschen, und anschliessend Speichern.
Speichern erfolgt mit:
Nach dem Speichern kehre ich sofort wieder in die SuchenForm zurück. Nun wenn ich meinen Prospekt nochmals editieren will, sollte er mir ja nur noch die Prospekte zeigen, die ich vor dem Speichern in der Listbox hatte. Beim Debuggen findet er auch nur diese,
(btnsuchen)
Bis Hier hin würde noch alles Stimmen, doch dann ruft er mir die ReadStichworte auf, und hier kommt das Problem:
Er findet bei btnedit nur die Einträge die auch da sind, jedoch ist der lst.listcount immer noch so hoch, wie bevor ich in FormEditieren gespeichert habe, und aus weiss ich nicht was für Gründen, Schreibt er mit die Daten, die ich schon gelöscht habe, wieder in die ListBox im EditierForm, plus die neuen, falls Vorhanden oO
Für mich ist das Magie
Wie kann ich den lst.listcount vor dem ReadStichworte vernichten, dass er mir dort nur die aktuellen Werte besorgt, und nicht den ListCount von ursprünglicher Liste
Danke jetzt schon an die GhostBusters
mfg zioP
Ich habe die Such_Form, wo ich aus einer Listbox einen Prospekt auswählen kann; Bei Doppelklick öffnet sich die EditierForm, bei welcher eine Liste ist, die mir das Fachgebiet und das dazugehörige Stichwort anzeigt. Aus dieser Listbox kann ich vorhandene Einträge löschen, welches ich mit:
Code:
Private Sub BtnDelStichworte_Click()
Dim i As Integer
Dim sBuf As String
On Error GoTo Err_BtnDelStichworte_Click
LstAusgewaehlteStichworte.RemoveItem (LstAusgewaehlteStichworte.ListIndex)
Exit_Sub:
Exit Sub
Err_BtnDelStichworte_Click:
MsgBox "Fehler in BtnDelStichworte_Click", vbOKOnly
Resume Exit_Sub
End Sub
Speichern erfolgt mit:
Code:
sqlDelStich = "DELETE * FROM Stichworte WHERE ProspektId = " + TxtID.Value
db.Execute (sqlDelStich)
i = LstAusgewaehlteStichworte.ListCount - 1
While i > -1
sqlStich = "INSERT INTO Stichworte (ProspektId,Fachgebiet,Stichworte) VALUES(" + TxtID.Value + ",'" + LstAusgewaehlteStichworte.Column(0, i) + "','" + LstAusgewaehlteStichworte.Column(1, i) + "')"
db.Execute (sqlStich)
i = i - 1
Wend
(btnsuchen)
Code:
sql4 = "SELECT * FROM Stichworte WHERE ProspektId =" + s
Set rs4 = db.OpenRecordset(sql4, dbReadOnly)
Set lst = Form_Editieren![LstAusgewaehlteStichworte]
While Not rs4.EOF
sBuf2 = rs4.Fields("Fachgebiet") + ";" + rs4.Fields("Stichworte") + ";"
sBuf3 = sBuf3 + sBuf2
rs4.MoveNext
Wend
ReadStichworte lst, sBuf3
Code:
Sub ReadStichworte(lst As ListBox, sIns As String)
Dim sBuf As String
Dim i, k As Integer
Dim bNotInsert As Boolean
If Len(sIns) > 0 Then
sBuf = ""
'Testen ist Eintrag schon vorhanden
bNotInsert = True
For i = 0 To lst.ListCount - 1
For k = 0 To lst.ColumnCount - 1
sBuf = sBuf + lst.Column(k, i)
If (k <> lst.ColumnCount - 1) Then
sBuf = sBuf + ";"
End If
Next k
If sBuf = sIns Then
bNotInsert = False
End If
sBuf = ""
Next i
If bNotInsert Then
For i = 0 To lst.ListCount - 1
For k = 0 To lst.ColumnCount - 1
sBuf = sBuf + lst.Column(k, i) + ";"
Next k
Next i
sBuf = sBuf + sIns
lst.RowSource = sBuf
'lst.ListIndex = 1
'.TabIndex = 1 'lst.ListCount - 1
End If
End If
End Sub
Er findet bei btnedit nur die Einträge die auch da sind, jedoch ist der lst.listcount immer noch so hoch, wie bevor ich in FormEditieren gespeichert habe, und aus weiss ich nicht was für Gründen, Schreibt er mit die Daten, die ich schon gelöscht habe, wieder in die ListBox im EditierForm, plus die neuen, falls Vorhanden oO
Für mich ist das Magie

Danke jetzt schon an die GhostBusters

mfg zioP