Supportnet / Forum / Datenbanken
Daten aus Listenfeld in ein Text feld übernehmen
Frage
Hallo,
Ich habe ein Problem und wollte mich damit mal an euch wenden. In der Hoffnung das mir jemand weiterhelfen kann.
Ich wollte Personen die in einem Listenfeld aufgelistet sind per Doppelklick in ein Textfeld übernehmen. Diese Personen die ich auswähle und in das Textfeld übernehme, sollen durch ein komma getrennt sein. Die Personen dienen mir als Mitwirkende an verschiedenen Projekten.
Weiß jemand einen Rat wie ich dies anstellen kann?
--- verwende Access 97 -----
Danke schon mal.
Tschüss
Antwort 1 von vbadi
Hallo Bulette,
im Doppelklick Ereignis Deines Listenfeldes kannst Du den selektierten Namen an Dein Textfeld übergeben. Mit einer For-Schleife suchst Du den oder die selektierten Eintraege aus dem Listenfeld und dabei baust Du den gewünschten String mit Namen zusammen.
[CODE]
Private Sub NameDeinListenfeld_DblClick(Cancel As Integer)
Dim varItem As Variant
Dim strName As String
If IsNull(Me.NameDeinTextfeld.Value) Then
strName = ""
Else
strName = Me.NameDeinTextfeld.Value & ", "
End If
For Each varItem In Me.NameDeinListenfeld.ItemsSelected
strName = strName & Me.NameDeinListenfeld.column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Me.NameDeinTextfeld.Value = strName
End Sub
[/CODE]
In der Access Hilfe gibt es ebenfalls genuegent Infos zum Listenfeld/Listbox.
Gruß vbadi.
im Doppelklick Ereignis Deines Listenfeldes kannst Du den selektierten Namen an Dein Textfeld übergeben. Mit einer For-Schleife suchst Du den oder die selektierten Eintraege aus dem Listenfeld und dabei baust Du den gewünschten String mit Namen zusammen.
[CODE]
Private Sub NameDeinListenfeld_DblClick(Cancel As Integer)
Dim varItem As Variant
Dim strName As String
If IsNull(Me.NameDeinTextfeld.Value) Then
strName = ""
Else
strName = Me.NameDeinTextfeld.Value & ", "
End If
For Each varItem In Me.NameDeinListenfeld.ItemsSelected
strName = strName & Me.NameDeinListenfeld.column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Me.NameDeinTextfeld.Value = strName
End Sub
[/CODE]
In der Access Hilfe gibt es ebenfalls genuegent Infos zum Listenfeld/Listbox.
Gruß vbadi.
Antwort 2 von mouse
Hallo vbadi ,
Superidee!!
Funktioniert sowas auch aus einem "aufgepoppten" Formular mit der Übergabe?
Gruß mouse
Superidee!!
Funktioniert sowas auch aus einem "aufgepoppten" Formular mit der Übergabe?
Gruß mouse
Antwort 3 von mouse
hat keiner ne idee?
gruß mouse
gruß mouse
Antwort 4 von trekking
funktioniert auch mit einem "Aufgepoppten Formular. Du musst nur die folgende Zeile ändern:
Me.NameDeinTextfeld.Value = strName
und zwar ind Forms!NAme deines Formulars!Name deines Textfeldes=strName
Gruß trekking
Me.NameDeinTextfeld.Value = strName
und zwar ind Forms!NAme deines Formulars!Name deines Textfeldes=strName
Gruß trekking
Antwort 5 von mouse
Hallo trekking,
erstmal Danke für den Tipp, habe jetzt folgendes:
Private Sub Auftextvor_DblClick(Cancel As Integer)
Dim varItem As Variant
Dim strName As String
If IsNull(Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value) Then
strName = ""
Else
strName = Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value & ", "
End If
For Each varItem In Me.Auftextvor.ItemsSelected
strName = strName & Me.Auftextvor.Column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value = strName
End Sub
Ich bekomme aber den Fehler markiert bei:
.ItemsSelected
Methode oder Datenobjekt nicht gefunden.
Weißt du da was?
Gruß mouse
erstmal Danke für den Tipp, habe jetzt folgendes:
Private Sub Auftextvor_DblClick(Cancel As Integer)
Dim varItem As Variant
Dim strName As String
If IsNull(Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value) Then
strName = ""
Else
strName = Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value & ", "
End If
For Each varItem In Me.Auftextvor.ItemsSelected
strName = strName & Me.Auftextvor.Column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value = strName
End Sub
Ich bekomme aber den Fehler markiert bei:
.ItemsSelected
Methode oder Datenobjekt nicht gefunden.
Weißt du da was?
Gruß mouse
Antwort 6 von trekking
Denke dass du zuerst noch ein Objekt definieren musst:
dim ctl os object
set ctl=Me!Auftextvor
dann in der Zeile
For Each varItem In Me.Auftextvor.ItemsSelected
Me.Auftextvor. durch ctl ersetzen
Denke dass dann der Fehler weg ist
Gruß trekking
dim ctl os object
set ctl=Me!Auftextvor
dann in der Zeile
For Each varItem In Me.Auftextvor.ItemsSelected
Me.Auftextvor. durch ctl ersetzen
Denke dass dann der Fehler weg ist
Gruß trekking
Antwort 7 von mouse
Hallo trekking,
habe den Code geändert, bekomme folgende Fehlermeldung:
Laufzeitfehler 2450, kann tblAuftragNeuUnterformular nicht finden.
Private Sub Auftextvor_DblClick(cancel As Integer)
Dim varItem As Variant
Dim strName As String
Dim ctl As Object
Set ctl = Me!Auftextvor
If IsNull(Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value) Then
strName = ""
Else
strName = Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value & ", "
End If
For Each varItem In ctl.ItemsSelected
strName = strName & ctl.Column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value = strName
End Sub
Hast du noch eine Idee?
Gruß mouse
habe den Code geändert, bekomme folgende Fehlermeldung:
Laufzeitfehler 2450, kann tblAuftragNeuUnterformular nicht finden.
Private Sub Auftextvor_DblClick(cancel As Integer)
Dim varItem As Variant
Dim strName As String
Dim ctl As Object
Set ctl = Me!Auftextvor
If IsNull(Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value) Then
strName = ""
Else
strName = Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value & ", "
End If
For Each varItem In ctl.ItemsSelected
strName = strName & ctl.Column(1, varItem) & ", "
Next varItem
strName = Left(strName, Len(strName) - 2)
Forms!tblAuftragNeuUnterformular!Me.Auftragstext.Value = strName
End Sub
Hast du noch eine Idee?
Gruß mouse
Antwort 8 von mouse
Hallo trekking,
das Unterformular wird nicht erkannt und die ID des Hauptformulars wird beim Schließen erneut abgefragt. Evtl. nützt dir der Hinweis. Gibt es eigentlich irgendwo eine Demo DB für dein Beispiel? Vielleicht kapiert man das dann besser.
Gruß mouse
das Unterformular wird nicht erkannt und die ID des Hauptformulars wird beim Schließen erneut abgefragt. Evtl. nützt dir der Hinweis. Gibt es eigentlich irgendwo eine Demo DB für dein Beispiel? Vielleicht kapiert man das dann besser.
Gruß mouse
Antwort 9 von trekking
Der Begriff
Forms!tblAuftragNeuUnterformular! _Me.Auftragstext.Value = strName
Ist in der Schreibweise nicht richtig. Denke, dass das eher
forms!ME!AuftragNeuUnterformular!Auftragstext=strName
heißen muss.
Wenn die ID nochmal abgefragt wird, dann fehlt immer irgendwo ein WErt. Wo genau ist ohne alles zu kennen nicht nachzuvollziehen.
Es gibt ein super gutes Buch für VBA. Das heißt Access in 21 Tagen. Im Markt und Technik Verlag. Nach dem Buch weißt du schon ziemlich viel. (Hat mir auch gehilft)
Gruß trekking
Forms!tblAuftragNeuUnterformular! _Me.Auftragstext.Value = strName
Ist in der Schreibweise nicht richtig. Denke, dass das eher
forms!ME!AuftragNeuUnterformular!Auftragstext=strName
heißen muss.
Wenn die ID nochmal abgefragt wird, dann fehlt immer irgendwo ein WErt. Wo genau ist ohne alles zu kennen nicht nachzuvollziehen.
Es gibt ein super gutes Buch für VBA. Das heißt Access in 21 Tagen. Im Markt und Technik Verlag. Nach dem Buch weißt du schon ziemlich viel. (Hat mir auch gehilft)
Gruß trekking
Antwort 10 von mouse
Hallo trekking,
wo ist denn eigentlich der Unterschied zwischen
Me. xxxx und
Me! xxx ?
Ich habe ja die Hinweise von vbadi übernommen und versucht, deine Hinweise zu berücksichtigen.
Das mit der Lektüre ist ja man gut, ich habe aber gedacht, daß für solche Fragen dieses Forum gut sein soll, oder liege ich da komplett falsch?
Gruß
mouse
wo ist denn eigentlich der Unterschied zwischen
Me. xxxx und
Me! xxx ?
Ich habe ja die Hinweise von vbadi übernommen und versucht, deine Hinweise zu berücksichtigen.
Das mit der Lektüre ist ja man gut, ich habe aber gedacht, daß für solche Fragen dieses Forum gut sein soll, oder liege ich da komplett falsch?
Gruß
mouse
Antwort 11 von trekking
Den Punkt benutzt du normalerweise nur um feste Access funktionen einzubinden.
z.B. forms!Dein Formular.refresh
(Funktion zur Bildschirmaktualisierung deines Formulars)
Wenn du dein Formular aus deinem Formular ansprichst, dann kannst du natürlich
Me.refresh schreiben.
Wenn du ein Steuerelement ansprichst, benutzt ich immer das ! z.B
Me!Feld1= "schön"
Du kannst hier auch den Punkt nutzten und Acces wird es genauso durchführen. Sobald du aber mit Objekten zu tun hast verlierst du die übersicht.
Ups, habe einen Fehler bei meinem vorhergehenden Komentar entdeckt. Muß natürlich heißen:
forms!DeinHauptformular!AuftragNeuUnterformular!Auftragstext=strName
Das mit dem Buch ist folgendermaßen gemeint:
Das Forum ist sehr gut für sehr spezielle Fragen. Habe hier selbst schon viel Hilfe erfahren. Das beste war aber, dass ich dieses Buch gelesen habe und seitdem sehr viel Zeit gespart habe. Da es leicht verständlich ist.
Gruß Trekking
z.B. forms!Dein Formular.refresh
(Funktion zur Bildschirmaktualisierung deines Formulars)
Wenn du dein Formular aus deinem Formular ansprichst, dann kannst du natürlich
Me.refresh schreiben.
Wenn du ein Steuerelement ansprichst, benutzt ich immer das ! z.B
Me!Feld1= "schön"
Du kannst hier auch den Punkt nutzten und Acces wird es genauso durchführen. Sobald du aber mit Objekten zu tun hast verlierst du die übersicht.
Ups, habe einen Fehler bei meinem vorhergehenden Komentar entdeckt. Muß natürlich heißen:
forms!DeinHauptformular!AuftragNeuUnterformular!Auftragstext=strName
Das mit dem Buch ist folgendermaßen gemeint:
Das Forum ist sehr gut für sehr spezielle Fragen. Habe hier selbst schon viel Hilfe erfahren. Das beste war aber, dass ich dieses Buch gelesen habe und seitdem sehr viel Zeit gespart habe. Da es leicht verständlich ist.
Gruß Trekking
Antwort 12 von mouse
Hallo trekking,
irgendwie geht das alles nicht.Bevor ich verzweifel,
kann man das evtl. so machen?:
### Kopie des gewählten Datensatzes ( funktioniert und ist in der Zwischenablage):
Private Sub Befehl4_Click()
On Error GoTo Err_Befehl4_Click
Me!Auftextvor.SetFocus
DoCmd.RunCommand acCmdCopy
Exit_Befehl4_Click:
Exit Sub
Err_Befehl4_Click:
MsgBox Err.Description
Resume Exit_Befehl4_Click
End Sub
Welchen Code muß ich in einem anderen Formular einsetzen, um mit einem Button den Text aus der Zwischenablage einzufügen?
Mit STRG+V funktioniert es.
Gruß mouse
irgendwie geht das alles nicht.Bevor ich verzweifel,
kann man das evtl. so machen?:
### Kopie des gewählten Datensatzes ( funktioniert und ist in der Zwischenablage):
Private Sub Befehl4_Click()
On Error GoTo Err_Befehl4_Click
Me!Auftextvor.SetFocus
DoCmd.RunCommand acCmdCopy
Exit_Befehl4_Click:
Exit Sub
Err_Befehl4_Click:
MsgBox Err.Description
Resume Exit_Befehl4_Click
End Sub
Welchen Code muß ich in einem anderen Formular einsetzen, um mit einem Button den Text aus der Zwischenablage einzufügen?
Mit STRG+V funktioniert es.
Gruß mouse
Antwort 13 von trekking
Hallo mouse,
so mach ich das nie. Habe deinen Beoitrag 7 nochmal gelesen. Hast du meinen Vorschlag 11 da noch ausprobiert?! (Ja da wo ups steht)
Denke, dass dann das ganze läuft.
Gruß trekking
PS: In der OnlineHilfe findest du auch Beispiele dafür. Oder schau mal unter www.donkarl.com nach. Die Seite hilft dir auch oft weiter.
so mach ich das nie. Habe deinen Beoitrag 7 nochmal gelesen. Hast du meinen Vorschlag 11 da noch ausprobiert?! (Ja da wo ups steht)
Denke, dass dann das ganze läuft.
Gruß trekking
PS: In der OnlineHilfe findest du auch Beispiele dafür. Oder schau mal unter www.donkarl.com nach. Die Seite hilft dir auch oft weiter.
Antwort 14 von mouse
Hallo trekking, habe alles probiert und es klappt alles nicht. Weiß der Geier was ich da gebastelt habe.
Ne Beispiel MDB habe ich auch nirgends gefunden.
Wie schon beschrieben hilft mir folgendes aber auch weiter:
### Kopie des gewählten Feldes ( funktioniert und ist in der Zwischenablage):
Private Sub Befehl4_Click()
Me!Auftextvor.SetFocus
DoCmd.RunCommand acCmdCopy
End Sub
### Kopie aus Zwischenablage in ein anderes Formular einfügen klappt auch.
Private Sub rein_Click()
Me!Auftragstext.SetFocus
DoCmd.RunCommand acCmdPaste
End Sub
Wie hänge ich evtl. die Daten aus der Zwischenablage an einen vorhandenen Text im Feld an?
gruß mouse
Ne Beispiel MDB habe ich auch nirgends gefunden.
Wie schon beschrieben hilft mir folgendes aber auch weiter:
### Kopie des gewählten Feldes ( funktioniert und ist in der Zwischenablage):
Private Sub Befehl4_Click()
Me!Auftextvor.SetFocus
DoCmd.RunCommand acCmdCopy
End Sub
### Kopie aus Zwischenablage in ein anderes Formular einfügen klappt auch.
Private Sub rein_Click()
Me!Auftragstext.SetFocus
DoCmd.RunCommand acCmdPaste
End Sub
Wie hänge ich evtl. die Daten aus der Zwischenablage an einen vorhandenen Text im Feld an?
gruß mouse
Antwort 15 von mouse
Hallo trekking,
bin immer noch nicht weiter.
Hatte vergessen zu schreiben, daß das
AuftragNeuUnterformular!Auftragstext in einem Registersteuerelement drin ist. Kann es sein, daß ich deshalb nicht weiterkomme?
Gruß mouse
bin immer noch nicht weiter.
Hatte vergessen zu schreiben, daß das
AuftragNeuUnterformular!Auftragstext in einem Registersteuerelement drin ist. Kann es sein, daß ich deshalb nicht weiterkomme?
Gruß mouse

