Hallo zusammen,
ich habe bisher nix dazu gefunden, deswegen meine Frage hier:
Ist es möglich den Inhalt mehrer Felder aus einer Tabelle zusammen in einem Formular (Memofeld) auszugeben?
Das Ganze wäre bei Adressen äußerst schick.
Ich nutze zur Zeit Access 2003.
Ich freue mich auf eure Ideen.
Hallo,
"Das Ganze wäre bei Adressen äußerst schick."
Für wen? Für die DB bestimmt nicht....Eine "schicke" (normgerechte) Adresse brauchst Du nur z. B. in einem Adressfeld in einem Brief. Für diesen Fall kannst Du die Adresse entspr. den Anfordernissen einfach als String zusammenbauen.
Das kann auch in einem Formular gemacht werden, indem im Steuerelementinhalt eines Textfeldes etwa dieses zu stehen kommt:
= [Anrede] & " " & [Vorname] & " " & [Nachname] & chr(13) & chr(10) & [Strasse] & chr(13) & chr(10) & [Landkz] & " " & [PLZ] & " " & [Ort]
oder als VBA-Code im Form_Current-Ereignis:
Sub Form_Current()
Me!Adressfeld= Me![Anrede] & " " & Me![Vorname] & " " & Me![Nachname] & vbCrLf & Me![Strasse] & vbCrLf & Me![Landkz] & " " & Me![PLZ] & " " & Me![Ort]
End Sub
Hey,
schick wäre es aber für die User, respektive meine Benutzer.Die wünschen sich das schon länger.
Und das es für n Brief schick wäre brauchst du mir nun definitiv nicht erklären....
Was den produktiven Teil deines Posts angeht: Besten Dank dafür!!!
Ich werds gleich mal ausprobieren und dann Feedback geben oder Fragen stellen
Hallo AccessMakesMeInsane,
Und damit's dann auch wirklich schick wird, bastelst Du
den String von Franz so zusammen:
= ([Anrede] + " ") & ([Vorname] + " ") & [Nachname] & chr(13) & chr(10) & [Strasse] & chr(13) & chr(10) & ([Landkz] + " ") & ([PLZ] + " ") & [Ort]
Und wenn die Hausnummer, wie's richtig wäre, in einem eigenen Feld steht:
... & ([Strasse] + " ") & [HausNr] & chr(13) & chr(10) & ...
(Quelle: http://www.donkarl.com?FAQ2.12 (http://www.donkarl.com?FAQ2.12))
gruss ekkehard
Moin,
habe hier noch ein paar iif + nz-Befehle verteilt, damit bei fehlenden Daten keine unnötigen Leerzeichen die Anzeige "unschick" machen.
iif(nz([Anrede],"") > "", [Anrede] & " ", "") & _
iif(nz([Vorname], "") > "", [Vorname] & " ", "") & _
nz([Nachname],"") & chr(13) & chr(10) & _
[Strasse] & chr(13) & chr(10) & _
iif(nz([Landkz],"") > "", [Landkz] & " ", "") & _
iif(nz([PLZ],"") > "", [PLZ] & " ", "") & _
nz([Ort],"")
Harald
Moin Moin,
ich seh grad, dass ich mich etwas zu knapp ausgedrückt hab.
Die Feldinhalte sind in den einem Formular und sollen dann in einem neuen, sich öffnenden Formular in einem Textfeld konkatiniert werden.
Das mit dem neuen, sich öffnenden Feld klappt dank Beakers Tipp hier http://www.ms-office-forum.net/forum/archive/index.php?t-285496.html (http://www.ms-office-forum.net/forum/archive/index.php?t-285496.html) sehr gut, allerdings bekomme ich es nicht hin, dass im Textfeld die Daten aus dem anderen Formular gezogen werden.
Ich habe es jetzt wie folgt probiert:
Steuerelementinhalt im sich öffnenden Feld:
txt_adressausgabe = [frm_behörde]!([txt_behördename + " ") & [frm_behörde]!([txt_behördeabteilung] + " ") ....
Zitat von: AccessMakesMeInsane am Juli 12, 2012, 12:01:31
Die Feldinhalte sind in den einem Formular und sollen dann in einem neuen, sich öffnenden Formular in einem Textfeld konkatiniert werden.
In einem FORMULAR hieße ja, dass sie ungebunden sind.
Daher hätte ich eher erwartet, dass die Inhalte in einer TABELLE sind. Wenn dem so ist, können sie doch daraus oder aus einer Abfrage aufbereitet und angezeigt werden.
Harald
Ja, die Daten sind natürlich in einer Tabelle.
Aber die Auswahl des Datensatzes, dessen Adresse in besagtem neuen Formular mit Textfeld angezeigt werden soll, erfolgt in einem Formular, in dem der Datensatz über eine Kombibox ausgewählt wird.
Ich würd auch lieber die Adresse direkt in Word übertragen, aber meine Kollegen wollen das zur Zeit noch nicht.
Hallo,
dann binde das "neue" Form an die Tabelle und öffne es mit einer passenden Where-Kondition (ID_Feld aus der Kombi-Auswahl). Im "neuen" Form wird die Adresse analog vorstehender Vorschläge zusammengesetzt.
Es ist letzendlich auch möglich, beim Öffnen des 2. Forms den Inhalt des Adressfeldes durch den Openargs-Parameter zu übergeben:
Docmd.Openform "frmForm2",,,,,,Me!Adressfeld
und im 2. Form:
Sub Form_Load()
If not isnull(Me.Openargs) Then Me!Adressfeld= Me.Openargs
End Sub
Zitat von: AccessMakesMeInsane am Juli 11, 2012, 21:52:55
Ich freue mich auf eure Ideen.
Hi,
es ist auch möglich, ohne den Formular-Verweis auszukommen, wenn Du den dlookup-Befehl verwendest.
In der Art:
Mein_gesuchtes_Feld = nz(dlookup("HierStehtDerNameVomFeldAusDerTabelle", "TabellenName_oder_Name_der_Abfrage", "ID_Adresse = " & Deine_ausgesuchte_Adress_ID),"")
Bitte die Namen/Bezeichnungen anpassen an die von Dir genutzten.
Diesen Befehl gilt es dann für alle Felder zu machen, um für das zweite Formular die Daten aus der Tabelle zu holen.
Und danach dann die weiter oben beschriebene Konkatinierung.
Harald
Hallo zusammen,
erstmal vielen Dank für euren Input!
Ich habe das Ganze nun wie folgt gelöst:
Hier der Code im Hauptformular um das Ausgabefenster zu öffnen:
Private Sub cmd_open_adressausgabe_Click()
On Error GoTo Err_cmd_open_adressausgabe_Click
Dim stDocName As String
Dim stLinkCriteria As String
stForm = "frm_adressausgabe"
DoCmd.OpenForm "frm_adressausgabe", , , , acFormAdd
Exit_cmd_open_adressausgabe_Click:
Exit Sub
Err_cmd_open_adressausgabe_Click:
MsgBox Err.Description
Resume Exit_cmd_open_adressausgabe_Click
End Sub
Und hier ist der Code, um die jeweiligen Felder im Ausgabefenster zu konkatinieren:
Private Sub Form_Open(Cancel As Integer)
Me![txt_adressausgabe] = Forms![frm_behoerde_read]![txt_behoerdename] & Chr(13) & Chr(10) & Forms![frm_behoerde_read]![txt_behoerdeabteilung] & Chr(13) & Chr(10) & Forms![frm_behoerde_read]![txt_behoerdestraße] ...
End Sub
Hallo,
OT
@AccessMakesMeInsane
wenn schon ein Fremdwort, dann aber richtig: konkatenieren. ;D
Mit VBA spricht man hier eher vom Verketten, da weis jeder gleich was gemeint ist.
Kam mir schon so komisch vor.Hatte aber auch keine Lust, die gesamten Uni-Unterlagen durchzugehen. ::)
Hallo,
ZitatHatte aber auch keine Lust, die gesamten Uni-Unterlagen durchzugehen
Google fragen, 5sec. ;D
Shame on me :-D
Hallo,
ZitatShame on me :-D
Na ja, wir wollen ja nicht gleich übertreiben.
Aber jetzt reichts, sonst kommt noch die Forumsaufsicht. ;D
Hallo Harald,
Zitathabe hier noch ein paar iif + nz-Befehle verteilt, damit bei fehlenden Daten keine unnötigen Leerzeichen die Anzeige "unschick" machen.
Das kannst Du dir mit dem, von mir zitiertem, Coding von Don Karl sparen, - der macht genau das.
Schau Dir den Link in der FAQ mal an.
gruss ekkehard
Hi Ekkehard,
danke, wieder etwas dazu gelernt.
Harald
So lernen auch die Cracks noch was dazu.
Ich liebe das Internet. :-D
Danke euch allen!