Hallo Gemeinde :) ,
ich hoffe jemand kann mal über mein angepasstes Beispiel schauen und mir sagen was da noch nicht so stimmig ist.
Ich habe den Aufbau mit Modul und Formular noch nicht richtig verstanden, daher hier meine Fragen. :-\
Es geht hier um eine Möglichkeit mehrere Angaben zu einer ID auszuwählen oder abzuwählen.
Das mit dem Speichern und wieder löschen funktioniert allerdings schon wunderbar.
Meine Probleme:
Also es werden im Formular im ActiveX-Steuerelement (LV) keine Überschriften angezeigt. (Im Modul n, nn???)
Da sollen als Überschriften erstens Norm und als zweites Beschreibung stehen.
Und dann würde ich gerne eine 2te und 3te Spalte einfügen. Ich kriege es aber nicht hin das irgendwo festzulegen! Ist im Modul wohl irgendwas mit n und nn, aber ich verstehe nicht was ich da schreiben soll.
Ich habe es geschafft die norID anzuzeigen, habe aber keinen Plan wie ich das anpassen kann.
Es soll erst das Kontrollkästchen dann NormNameNummer (das ist da ja schon) und jetzt bräuchte ich noch eine Spalte mit NormBeschreibung. (beides aus tblNormZuordnung).
Als dritte Spalte eventuell noch norID mit der Überschrift ID.
Ich würde mich riesig freuen, wenn da mal einer über die zwei Code Seiten rüber schaut und eventuell helfen kann.
Gruß
Und danke fürs Lesen,
Brallu
Nun, die Spaltenüberschriften hast Du ja in den Eigenschaften des Listviews abgestellt. :) Public Sub lv_init(s As String)
Dim lvx As ListView
Dim oitem As ListItem
Dim qs As String
Dim rs As DAO.Recordset
Dim n As String, nn As String, nnn As String
Dim f As Form
n = "norID"
nn = "NormNameNummer"
' nnn = "NormBeschreibung"
qs = "SELECT norID, NormNameNummer, NormBeschreibung FROM tblNormZuordnung ORDER BY NormNameNummer;"
Set f = Forms(s)
Set rs = CurrentDb.OpenRecordset(qs, dbOpenSnapshot, dbOpenForwardOnly)
Set lvx = f!LV.Object
With lvx
.ColumnHeaders.Clear
.ListItems.Clear
.View = lvwReport
' .ColumnHeaders.Add , nnn, nnn
.ColumnHeaders.Add , nn, nn
.ColumnHeaders.Add , n, n
.ColumnHeaders.Add , , "Normbeschreibung"
' .ColumnHeaders(nnn).Width = 1000
.ColumnHeaders(nn).Width = 3000
.ColumnHeaders(n).Width = 1000
Do
Set oitem = .ListItems.Add(, , rs.Fields(1).Value)
oitem.SubItems(1) = rs(0) 'Spalte bereits in den Einstellungen über Header festgelegt.
oitem.ListSubItems.Add , , rs(2) 'die fehlt und muss deshalb hinzugefügt werden
rs.MoveNext
Loop Until rs.EOF
End With
rs.Close
End Sub
PS: wenn Du das Steuerelement nicht noch ein weiteres mal mit den gleichen Grundeinstellungen verwendest, ist der Code besser im Formularmodul aufgehoben.
Hallo Lachtaube,
Danke für die schnelle Antwort 😊
Ich werde das morgen mal durchgehen!! Wenn ich alles im Formular einfügen möchte, soll ich was beachten??
Gruß Brallu
Hallöle nochmal,
dank Lachtaube habe ich mein Problem fast gelöst. :)
Allerdings würde ich mich freuen wenn einer nochmal drüberschauen könnte!
Und es gibt leider noch 2 Probleme:
1.
Wenn ich im gestarteten frmForm1 z.B. den 4 Datensatz auswähle und dann auf "Norm auswählen" gehe
komme ich richtig ins frmNorm und kann die Auswahl ändern. Aber beim "Übernehmen" geht er zurück und wir sind bei Datensatz 1 und nicht 4.
2.
Bei Datensätzen wo es noch keine Verknüpfungsdaten über die tblMatUndNorm gibt wird die frmNorm nicht gestartet.
Ich würde mich riesig freuen wenn mir jemand unter die Arme greift :-[
Ich hab den Code noch nicht so gut verstanden um mir selbst zu helfen.
Gruß
Danny
Hallo Danny,
Ohne die DB angesehen zu haben:
Zu 1 lies dies http://www.donkarl.com?FAQ4.5 (http://www.donkarl.com?FAQ4.5)
Zu 2:
Zitatnoch keine Verknüpfungsdaten
Überprüfe ob das sein
darf. Das weist ja auf eine Inkonsistenz hin.
gruss ekkehard
Moin Ekkehard,
danke für den Tipp :)
Er macht fast was er soll. Nur beim UFO wird nicht mehr aktualisiert. Aber schon nicht schlecht.
Eine Inkonsistenz sehe ich nicht. Aber durch den Code steige ich leider nur ein bissche durch.
Gruß
Danny
Hallo,
siehe Anlage
Moin Franz,
ich danke dir für die schnelle Hilfe :) :) :)
Das schaut ja echt suuper aus!! Jetzt werde ich mal nachvollziehen was ich falsch gemacht hatte.
Gruß
und nochmals ein großes Danke an alle die mir immer mal wieder aus der Patsche helfen.
Danny
Ich habe die Geschichte etwas umstrukturiert. Beim Ändern einer Checkbox, wird der Datensatz nun direkt geschrieben oder gelöscht.
Cool :) :) :) das macht die Sache ja noch einfacher!
Nochmals vielen Dank auch dir Lachtaube :)
Hallo Lachtaube, ich hätte da noch ein Problem! :-[
In der orginal Tabelle tblNormZuordnung stehen die Einträge durcheinander drin.
Die sollen aber im frmNorm / ActiveX_Steuerelement aufsteigend sortiert nach norName und norNummer angezeigt werden.
Also damit dachte ich, anpassen der QRY:
Const QRY As String = _
"SELECT norID, norName, norNummer, norNameNummer, norBeschreibung FROM tblNormZuordnung ORDER BY norID;"
Und sortieren mit:
.OrderBy = "norName, norNummer"
Aber wo füge ich das im Code ein oder liege ich völlig falsch???
Hoffe du hilfst mir nochmals!
Danke
Danny
Danny, Du kannst doch gleich den Abfragetext zur richtigen Sortierung heranziehen.
Const QRY As String = _
"SELECT norID, norName, norNummer, norNameNummer, norBeschreibung" & vbLf & _
"FROM tblNormZuordnung" & vbLf & _
"ORDER BY 2, 3"
Wie immer suuuper!!! Danke :-*