Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

ListView-Steuerelement Überschriften und Spaltenproblem

Begonnen von Brallu, August 13, 2018, 19:46:25

⏪ vorheriges - nächstes ⏩

Brallu

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

Lachtaube

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.
Grüße von der (⌒▽⌒)

Brallu

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

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

Beaker s.a.

Hallo Danny,
Ohne die DB angesehen zu haben:

Zu 1 lies dies 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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Brallu

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


Brallu

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

Lachtaube

Ich habe die Geschichte etwas umstrukturiert. Beim Ändern einer Checkbox, wird der Datensatz nun direkt geschrieben oder gelöscht.
Grüße von der (⌒▽⌒)

Brallu

Cool  :) :) :) das macht die Sache ja noch einfacher!
Nochmals vielen Dank auch dir Lachtaube  :)

Brallu

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


Lachtaube

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"
Grüße von der (⌒▽⌒)

Brallu