Hallo zusammen!
Ich bin Access Neuling und habe folgendes Problem:
Ich habe eine Tabelle mit jeder Menge Datensätzen. In einem Formular habe ich mir diejenigen Datensätze anzeigen lassen, welche für mich relevant sind. Diese Datensätze können natürlich ganz normal gefiltert werden. Das Formular sieht vereinfacht so aus:
Motor Getriebe Fahrzeug
M1 G1 F1
M2 G2 F2
M3 G3 F3
Ich möchte jetzt mit klick auf einen Button, dass alle sichtbaren (gefilterten) Fahrzeuge als String und durch ";" getrennt in den Zwischenspeicher geladen werden.
Das Ergebnis im Zwischenspeicher sollte also so aussehen:
F1;F2;F3
Hab schon sämtliche Foren usw durchgeschaut und komme nicht weiter. Könnt ihr mir bitte helfen?!
Danke!!
Hallo,
ich habe mit der Ausdrucksweise 'Filter' und 'gefiltert' immer ein wenig Probleme.
Wie hast du es denn rein technisch gesehen angestellt .... ---> habe ich mir diejenigen Datensätze anzeigen lassen, welche für mich relevant sind
Wenn es nach meinem Verständnis RICHTIG gemacht wurde, dann hat dein Formular eine Datenherkunft die auf dem Ergebnis einer Abfrage aufsetzt.
Ist dem so?
Hallo,
ich meinte damit, dass ich mir in meinem Formular nicht alle Datensätze anzeigen lasse, welche in der zugehörigen Tabelle verfügbar sind.
Mit filtern meine ich einfach den Standartfilter --> also rechtsklick auf ein feld --> auswahlbasierter filter
Man kann ja einen datensatz kopieren mit:
Me!Fahrzeug.SetFocus
DoCmd.RunCommand acCmdCopy
Kann man das jetzt nicht irgendwie in eine schleife packen, welche das sichtbare formular durchgeht und nach jedem fahrzeug ein ";" einfügt?
Hallo,
wenn angenommen wird, dass der "Zwischenspeicher" ein ungebundenes Textfeld ("FZListe") im Formular ist, dann könnte das so aussehen:
Sub Form_Current()
Dim rs as Dao.Recordset, strFZ as String
Set rs=Me.RecordsetClone
If rs.Recordcount > 0 then
rs.Movefirst
Do Until rs.EOF
strFZ = strFZ & ";" & rs!Fahrzeug '<<edit>>
rs.Movenext
Loop
Me!FZListe = Mid(strFZ,2)
End If
End Sub
Hallo DF6GL,
vielen Dank für deine Antwort!
Dein Code funktioniert FAST. Das Ergebnis im Textfeld ist jetzt:
F1;F1;F1
Das heisst es funktioniert nicht, dass er in die nächste Zeile springt.
Das Ergebnis sollte sein:
F1;F2;F3
Hast du hierzu noch eine Lösung?
Hallo,
Zitatich meinte damit, dass ich mir in meinem Formular nicht alle Datensätze anzeigen lasse, welche in der zugehörigen Tabelle verfügbar sind
das war mir schon klar - so weit kann ich schon schwimmen... ;)
Meine Frage war eher danach ob das Formular auf einer Abfrage beruht, welche NUR relevante Daten liefert.
ZitatHast du hierzu noch eine Lösung?
Versuch mal...
Sub Form_Current()
Dim rs as Dao.Recordset, strFZ as String
Set rs=Me.RecordsetClone
If rs.Recordcount > 0 then
rs.Movefirst
Do Until rs.EOF
strFZ = strFZ & ";" &
rs!Fahrzeug
rs.Movenext
Loop
Me!FZListe = Mid(strFZ,2)
End If
End Sub
Sorry ich kenne mich wirklich nicht gut aus mit Access :(
Mein Formular beruht aber denke ich nicht auf einer Abfrage. Ich habe mir einfach in der Entwurfsansicht des Formulars die entsprechenden Felder angeordnet.
Wenn ich den Code auf
rs!Fahrzeug
änder dann kommt beim Ausführen die Fehlermeldung:
Element in dieser Auflistung nicht gefunden.
....dann ersetze bitte
rs!Fahrzeug durch rs!NameDeinesTabellenfeldesMitFemFahrzeug
ES GEHT! :)
Vielen dank euch beiden! Ihr habt mir wirklich sehr geholfen!!
Hallo,
sorry für den Tippfehler. Habe den korrigiert ...