Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Ansprache Formular, dass in Reg-Steuerelement eingefügt ist

Begonnen von AccessMakesMeInsane, August 07, 2012, 10:48:13

⏪ vorheriges - nächstes ⏩

AccessMakesMeInsane

Hallo zusammen,
wieder mal eine Frage von mir.

Ich bastle gerade (wieder mal) an einer Datenbank.
Dabei möchte ich wieder per Button ein Formular aufrufen, in dem dann ein Adresssatz verkettet wird.
Das Ganze hat sich ja grundsätzlich schon als funktionierend erwiesen
(http://www.access-o-mania.de/forum/index.php?topic=15948.0)

Allerdings kann Access das Formular nicht finden, von dem es die Adressdaten ziehen soll.
Kann es daran liegen, dass dieses "Quell"-Formular als Unterformular auf ein Registersteuerelement gesetzt wurden? Wie müsste ich dieses Unterformular ansprechen?

Anbei noch mal der Basis-VBA-Code, den ich nutzen will:

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


Theoretisch müsste ich doch dann hier etwas ändern:
" = Forms![frm_behoerde_read]![txt_behoerdename] "

Vielen Dank im Voraus für eure Tips!

Philipp

database

Hallo,

"Allerdings kann Access das Formular nicht finden..."

Das Formular ist m.E. ein 'Unterelement' des Formulars auf dem es angezeigt wird und ist wie ein Steuerelemnt desselben zu betrachten.
Bei 'echten' Unterformularen ist es in der Form zu sehen.

Du könntest daher versuchen das Formular auf der Registerkarte so anzusprechen:

Forms!DeinHauptformular!![frm_behoerde_read]![txt_behoerdename] ....

bzw. vom Hauptformular aus   Me![frm_behoerde_read]![txt_behoerdename]

siehe dazu auch folgenden Link und die dort angeführten weiterführenden Links:

http://www.donkarl.com?FAQ4.2

AccessMakesMeInsane

Zu Don Karl hätte ich auch mal vorher schauen können, bevor ich hier poste. ::)
Sorry!!!


Besten Dank für den Link! Hatte schon dunkel geahnt, dass ich erst das Hauptformular ansprechen muss.

AccessMakesMeInsane

Hallo,
leider muss ich den Thread doch noch einmal aufmachen.

Also, das Grundproblem ist ja geklärt, jetzt wird es aber noch mal speziell.

Ich habe auf dem Unterformular, das auf ein Registersteuerelement gesetzt ist, einen Button plaziert. Mit diesem möchte ich ein neues Formular öffnen, in das der im Unterformular gezeigte Datensatz übernommen wird, damit ich ihn in diesem neuen, passwortgeschützten, Formular überarbeiten kann.

Leider hat die Ansprache via Recordset nicht funktioniert. Habe mich dafür an Don Karls FAQ 4.4 orientiert und den Code wie folgt adaptiert:

frm_international ist das Formular, auf dem das Reg-Steuerelement ist,
frm_read ist das Leseformular, welches auf das Reg-Steuerelement kopiert ist
frm_write ist das Bearbeitungsformular, dass sich durch den Button auf  frm_read öffnet

txt_id_r  = Feld in dem der Primärschlüssel angezeigt wird (für frm_read)
txt_id_w = Feld in dem der Primärschlüssel angezeigt wird (für frm_write)


'gilt für das Bearbeitungsformular frm_write
Private Sub Form_Current()

Dim rs As DAO.Recordset
                       
Set rs = Forms![frm_international]![frm_read].RecordsetClone

'im RecordsetClone von Formular2 die Id aus dem aktuellen Formular finden
rs.FindFirst "txt__id_w = " & Me!txt_aut_id_r
If Not rs.NoMatch Then
  'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
  Forms![frm_international]![frm_authority].Bookmark = rs.Bookmark
End If

Set rs = Nothing
End Sub


Besten Dank für eure Hilfe!

DF6GL

Hallo,

ZitatIch habe auf dem Unterformular, das auf ein Registersteuerelement gesetzt ist, einen Button plaziert. Mit diesem möchte ich ein neues Formular öffnen, in das der im Unterformular gezeigte Datensatz übernommen wird

Sub btnButton1_Click()
Docmd.Openform "frm_write", , ,"ID_Tabellenfeld= " & Me!txt_id_r , , acDialog
End Sub

btw: Wenn das Unterform ein Endlosform ist, muss darauf geachtet werden, dass der Button im Detailbereich plaziert ist (und somit bei jedem Datensatz zu sehen ist). Ansonsten wäre ein (Doppel-) Klick auf z. B. das ID-Textfeld oder auf den Datensatzmarkierer eher anzuraten.

Das RegisterSteuerelement kann im vorliegenden Fall außen vor bleiben (ignoriert werden).

AccessMakesMeInsane

Hallo,
Vielen Dank für den Tip. Das ist natürlich ein deutlich eleganterer Weg und wesentlich kürzer!

Zitat
Sub btnButton1_Click()
Docmd.Openform "frm_write", , ,"ID_Tabellenfeld= " & Me!txt_id_r , , acDialog
End Sub


Was ist denn mit ID_Tabellenfeld gemeint bzw. wie setze ich das um? Stehe ich da vielleicht gerade auf dem Schlauch?
Ich hab an dieser Stelle jetzt erstmal das "txt_id_w" gesetzt, weil dieses ja identisch zum "txt_id_r" sein muss.

DoCmd.OpenForm "frm_authority_write", , , "Me!txt_id_w= " & Me!txt_id_r, , acDialog

Leider wird mir dann aber beim Ausführen mitgeteilt, dass das angesprochene Feld "txt_id_r" nicht gefunden werden kann.


Die Doppelklick-Variante hatte ich auch erst ins Auge gefasst, hab dann aber dem Tenor der div. anderen Foren entnommen, dass dies nicht so ganz elegant ist.

DF6GL

Hallo,

"ID_Tabellenfeld2"  ist das Tabellenfeld in der Tabelle, auf der "frm_Write" basiert (--->Datenherkunft!) und das den Primär-/Fremdschlüssel(-Wert)  entspr. dem Wert aus  "txt_id_r"  beinhaltet.




...", "Me!txt_id_w= " & Me!txt_id_r, , acDialog

ist ganz falsch... 




"hab dann aber dem Tenor der div. anderen Foren entnommen, dass dies nicht so ganz elegant ist."


hat man dann auch gesagt, warum??


Ein Button außerhalb des Detailbereiches in einem Endlosforms kann den Focus auf den akt. Datensatzes "verschmieren", was bedeutet, das das neu zu öffnende Form bei einem undefiertem, bzw. gar keinem Datensatz (bzgl. seiner Anzeige) landet.

AccessMakesMeInsane

Hallo Franz,

ok hab es noch mal so umgesetzt, das vorne .Leider konnte er im Skript nicht das das Feld "txt_id_r" finden.
Muss ich denn bei ""ID_Tabellenfeld" nicht auf die Column verweisen?So ähnlich hattest du das schon mal aufgebaut, nur eben bei einer Doppelklickgeschichte.
http://www.wer-weiss-was.de/theme153/article4792732.html

Diese jedenfalls adaptier ich.
Hier ist es eh egal, wie ich das aufbaue. Meine Kollegen haben noch weniger Ahnung von Access als ich. ;)

AccessMakesMeInsane

Hi Franz,
nochmals vielen Dank! Es funktioniert großartig!

Ich Honk hab nur einen Präfix im Feldnamen vergessen. So kann er das angesprochene Feld natürlich nicht finden.Asche auf mein Haupt!

Beste Grüße
Philipp