PDA

Vollständige Version anzeigen : Auf Record im ListView doppelklicken zum bearbeiten


dänu
29.08.2002, 14:12
hallo

ist es möglich, dass man auf den Datensatz im ListView doppelklicken kann, um in zu bearbeiten, oder damit ein Formular öffnen, indem man dann diesen Datensatz bearbeiten kann.

danke

dänu

BodoM
29.08.2002, 14:26
Hallo dänu,

verwende die Ereigniseigenschaft des Listenfeldes.
Mit folgenden Code kannst Du auf die Eintäge selektieren.

Dim ctlEinträge As Control, Eintrag As Variant
If IsNull(Me![verfügbareEinträge].Column(0)) Then
Exit Sub
End If
Set ctlEinträge = Me![verfügbareEinträge]
For Each Eintrag In ctlEinträge.ItemsSelected
...
KZ = ctlEinträge.Column(0, Eintrag)
...
Next Eintrag


Gruß Bodo

dänu
29.08.2002, 14:48
vielen dank für die Antwort

aber was verstehst du unter "Me![verfügbareEinträge]" und "KZ"?

merci
dänu

BodoM
29.08.2002, 14:56
Hallo,

entschuldige, ich habe den Code aus einer Anwendung kopiert und für Dich überflüssige Zeilen gelöscht.

[verfügbareEinträge] ist der Name des Listenfeldes.
KZ ist eine Variable, der ich den aktuellen Listeneintag zugeordnet habe.

Ich hoffe es hilft Dir weiter.


Gruß Bodo

dänu
29.08.2002, 15:03
danke

aber bei "me![blabla].column(0)" gibt es einen fehler bei column. kannst du mir da weiterhelfen?

und was ist eigentlich der unterschied zwischen "me!" und "me."?

danke und gruss
dänu

BodoM
29.08.2002, 15:18
Me. ist in diesem Fall eine zulässige Kurzform. Eigentlich ist Me! richtig. Verweise kannst Du auch in der Onlinehilfe nachlesen.

me![Listenfeldname].column(0) muss funzen.
Ist der Name von dem Listenfeld richtig geschrieben? Die [] gehören nicht zum Namen.

dänu
29.08.2002, 15:43
geht leider nicht

mit Listenfeldname meinst du doch die namen des ListViews und nicht die Feldnamen der Abfrage.

Ich habe diesen Code kopiert und bearbeitet.

Private Sub lvwAusgabe_DblClick()
Dim KZ
Dim ctlEinträge As Control, Eintrag As Variant
If IsNull(Me![PersonalNr.].Column(0)) Then 'hier ist der Fehler
Exit Sub
End If
Set ctlEinträge = Me![verfügbareEinträge]
For Each Eintrag In ctlEinträge.ItemsSelected

KZ = ctlEinträge.Column(0, Eintrag)

Next Eintrag
End Sub


könnte es sein, weil im Listenfeldname ein Punkt ist?
aber ich habe schon mit column(1) versucht, dort hat der name keinen Punkt.

gruss
dänu

dänu
29.08.2002, 16:26
hallo
könnte es sein, dass es nicht klappt, weil ich die Feldnamen im Code eingegeben habe. würde es besser funzen wenn sie in den eigenschaften eingegeben wurden.
oder muss man etwas in den eigenschaften umstellen.
Beim Register allgemein sind folgend CheckBoxe aktiviert:
- LabelWrap
- Enabled
- FullRowSelect

für antwort dankt
dänu

BodoM
30.08.2002, 11:50
Hallo,

bin erst jetzt wieder im Forum.
Dein Fehler liegt am Listenfeldname. Der Name ist nicht PersonalNr. Setze den richtigen Namen ein und es funzt.


Gruß Bodo

dänu
02.09.2002, 08:34
wo finde ich den richtigen namen?

dänu
04.09.2002, 08:52
hat jemand ne andere idee

A.S.
04.09.2002, 09:00
Hallo Dänu,

sollte der Name Deines Listenfeldes wirklich einen Punkt enthalten, so ist es Ratsam diesen herauszunehmen.

Beim Coden in AccVBA wird Dir der Punkt noch etliche male als reserviertes Zeichen begegnen, deshalb ist es nicht ratsam diesen zu versenden.

dänu
04.09.2002, 09:10
mit Listenfeld ist doch das ListView gemeint.
ich habe es zuerst mit Feldnamen verwechselt, doch wenn ich den Namen des ListViews einfüge, gibt es den Fehler: "Objekt unterstützt diese Eigenschaft oder Methode nicht"
was mache ich falsch?

dänu

A.S.
04.09.2002, 09:19
Hallo Dänu,

kannst Du die DB einmal im A97-Format an meine EMail-Adresse (bitte zippen und vorher ggf. aus einer entsprechenden Kopie alle Daten entfernen) schicken?

Dann seh ich mir die mal an. Keine Sorge, ich werde die DB löschen, wenn ich den Fehler 'raus habe.

Gruß

Arno

PS Den Fehler und die Korrektur werde ich hier beschreiben, damit alle etwas davon haben ;)

A.S.
04.09.2002, 12:09
Hallo Dänu,

sorry, wer lesen kann ist klar im Vorteil :( Du meintest das ActiveX-Control und ich - wie wohl auch BodoM - habe an das ListBox-Control gedacht.

Da ich selbst noch nicht mit dem Control gearbeitet habe, hab ich mal ein wenig gestöbert und bin <a href="http://www.activevb-archiv.de/vb/VBtips/VBtip0280.shtml" target="_blank">hier</a> fündig geworden.

Da stehen einige der zulässigen Ereignisse und der Zugriff auf die Daten beschrieben, vielleicht hilft Dir das schon weiter.

Gruß

Arnop

dänu
04.09.2002, 12:29
hallo arno
was ist der unterschied zwischen diesen beiden Controls?
könnte ich ohne probleme wechseln, oder wäre das zu viel des guten?
auf jeden fall danke für dein Mühe

gruss
dänu

A.S.
04.09.2002, 12:35
Hallo Dänu,

der Unterschied ist, das das ListBox-Control von Access aus zwar bequemer Handhabbar ist - will heißen das es besser in Access integriert ist. Andererseits bietet das ListBox-Control nicht die Features des ListView-Controls. So kannst Du zum Beispiel die Spalten nicht über integrierte Buttons sortieren und ähnliches.

Wechseln kann man immer. Beim Listbox-Control ist die Datenversorgung des Controls wesentlich einfacher als beim ListView-Control, denn Du mußt lediglich eine Abfrage (namentlich oder als SQL-String) als Datenquelle angeben. Der Nachteil ist wie gesagt das fehlen mancher ListView-Features.

Gruß

Arno

dänu
04.09.2002, 12:49
wo finde ich eine listbox control?
habe ac2000
vielleicht gibt es die nicht mehr
gruss