Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Bademeister am September 08, 2011, 08:15:24

Titel: VBA felder verketten als string
Beitrag von: Bademeister am September 08, 2011, 08:15:24
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!!
Titel: Re: VBA felder verketten als string
Beitrag von: database am September 08, 2011, 08:41:57
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?
Titel: Re: VBA felder verketten als string
Beitrag von: Bademeister am September 08, 2011, 08:50:41
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?
Titel: Re: VBA felder verketten als string
Beitrag von: DF6GL am September 08, 2011, 08:57:41
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
Titel: Re: VBA felder verketten als string
Beitrag von: Bademeister am September 08, 2011, 09:09:21
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?
Titel: Re: VBA felder verketten als string
Beitrag von: database am September 08, 2011, 09:12:00
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

Titel: Re: VBA felder verketten als string
Beitrag von: Bademeister am September 08, 2011, 09:18:45
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.

Titel: Re: VBA felder verketten als string
Beitrag von: database am September 08, 2011, 09:20:38
....dann ersetze bitte

rs!Fahrzeug   durch rs!NameDeinesTabellenfeldesMitFemFahrzeug
Titel: Re: VBA felder verketten als string
Beitrag von: Bademeister am September 08, 2011, 09:39:29
ES GEHT! :)

Vielen dank euch beiden! Ihr habt mir wirklich sehr geholfen!!
Titel: Re: VBA felder verketten als string
Beitrag von: DF6GL am September 08, 2011, 09:50:41
Hallo,

sorry für den Tippfehler. Habe den korrigiert  ...