es geht mal wieder um meine DB.
Also:
Ich habe in meiner DB u.a. ein Hauptformular ?Kunden?,
weiterhin ein Unterformular ?Anleitungen?. Schlᅵsselspalten sind ?
Masch_ID?
Der ᅵbersicht halber, weil mehrere Anleitungen auf eine Maschine zutreffen
kᅵnnen, habe ich das Unterformular einmal als Einzelformular (auf dem sind
Schaltflᅵchen und andere grafische Dinge untergebracht) und dann noch
einmal als Datenblatt gleich darunter angeordnet. Hier sehe ich dann
gleich die anderen Anleitungen, welche fᅵr diese Maschine noch zutreffen,
aufgereiht.
Jetzt mᅵchte ich realisieren, dass bei einem Doppleklick auf dem
betreffenden Datensatz ( Feldname ist ?Thema?) im unteren Formular
(Datenblatt), dieser Datensatz auch im oberen Einzelformular angezeigt
wird.
Wie muss ich diese Anweisung schreiben
Schon mal vielen Dank im Vorfeld
Andreas
Deine Erlᅵuterung ist etwas verwirrend, nicht nur wegen der vielen
Fragezeichen. Falls ich richtig verstehe, willst du im Datenblatt-UFo
auf das Textfeld "Thema" doppelklicken, und dadurch im Einzel-UFo
(Anleitungen?) zum Datensatz mit der gleichen Masch_ID (oder dem
gleichen Thema?) wechseln.
Der VBA-Code in der Ereignisprozedur "Beim Doppelklick" des
Textfeldes kᅵnnte ungefᅵhr so aussehen wie in:
www.donkarl.com?FAQ4.4
Du musst nur die richtige Syntax fᅵr UFos beachten. Die findest du in
www.donkarl.com?FAQ4.2
Das Ergebnis wᅵre ca.
'*********
Dim rs As DAO.Recordset
Set rs = Me.Parent!Anleitungen.Form.RecordsetClone
rs.FindFirst "Masch_ID = " & Me!Masch_ID
If Not rs.NoMatch Then
Me.Parent!Anleitungen.Form.Bookmark = rs.Bookmark
End If
Set rs = Nothing
'*********
Wenn's das nicht ist, solltest du nochmal versuchen, die Situation
zu schildern und dabei alle relevanten Objektnamen (ohne
Fragezeichen) nennen.
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
3. SQL Server-Entwickler-Konferenz - Nᅵrnberg im Mai
danke an dieser Stelle fᅵr deine Antwort.
Also das mit den Fragezeichen sehe ich jetzt auch. War nicht gewollt,
sondern sind einfach nur Formatierungsmacken. Habe den Text auf Arbeit
geschrieben und hier nur eingefᅵgt. Dabei muss das Ganze passiert sein.
Die Fragezeichen sind nichts anderes als Anfᅵhrungszeichen, die aber
ignoriert werden kᅵnnen, da sie nicht Bestandteil des Namens sind. SORRY.
ᅵndert sich dadurch jetzt deine Anweisung?
Im ᅵbrigen hast du meine Schilderung des Problems dennoch richtig gedeutet.
In jedem Fall werde ich ᅵbers Wochenende ein wenig weiter an meiner DB
basteln. Mal sehen.
Andreas
> Deine Erlᅵuterung ist etwas verwirrend, nicht nur wegen der vielen
> Fragezeichen. Falls ich richtig verstehe, willst du im Datenblatt-UFo
> auf das Textfeld "Thema" doppelklicken, und dadurch im Einzel-UFo
> (Anleitungen?) zum Datensatz mit der gleichen Masch_ID (oder dem
> gleichen Thema?) wechseln.
>
> Der VBA-Code in der Ereignisprozedur "Beim Doppelklick" des
> Textfeldes kᅵnnte ungefᅵhr so aussehen wie in:
> www.donkarl.com?FAQ4.4
>
> Du musst nur die richtige Syntax fᅵr UFos beachten. Die findest du in
> www.donkarl.com?FAQ4.2
>
> Das Ergebnis wᅵre ca.
> '*********
> Dim rs As DAO.Recordset
> Set rs = Me.Parent!Anleitungen.Form.RecordsetClone
>
> rs.FindFirst "Masch_ID = " & Me!Masch_ID
> If Not rs.NoMatch Then
> Me.Parent!Anleitungen.Form.Bookmark = rs.Bookmark
> End If
>
> Set rs = Nothing
> '*********
>
> Wenn's das nicht ist, solltest du nochmal versuchen, die Situation
> zu schildern und dabei alle relevanten Objektnamen (ohne
> Fragezeichen) nennen.
>
Hallo Karl
Irgendwie bin ich zu doof oder ich kann nicht deuten was du vorgeschlagen
hast bzw. nicht zuordnen was in donkarls access Seiten steht. Jedenfalls
bekomme ich es nicht hin. Vielleicht schildere ich das Ganze noch einmal
ganz konkret.
Mein Hauptformular heisst Anleitungen. Das erste Ufo heisst Anleitung
Unterformular. Dieses ufo ist ein Einzelformular. (Hier wird also jeweils
der erste Datensatz angezeigt, der sich auf eine Maschine im Hauptformular
bezieht. Es gibt aber mehrere Anleitungen, die sich auf eine Maschine
beziehen kᅵnnen. Eine Liste dieser Anleitungen sehe ich, wenn ich z.Bsp.
aus dem Einzelformular eine Datenblattansicht machen wᅵrde. Da mehrere
Felder vorhanden - nicht besonders ᅵbersichtlich.)
Deshalb habe ich ein zweites ufo mit Namen Anleitungen Unterformular1
unter dem ersten ufo platziert. Das zweite ufo wird in der
Datenblattansicht gezeigt und zeigt alle Anleitungen im Bezug zur
betreffende Maschine im Hauptformular. Datensatzquelle beider ufo`s ist
jeweils die Tabelle Anleitung.
Beide ufo?s sind jeweils ᅵber das Verknᅵpfungsfeld Masch_ID zum
Hauptformular verbunden. Jetzt mᅵchte ich erreichen, dass mit einem
Doppelklick auf auf das Feld Themabeschreibung des jeweiligen Datensatzes
im ufo Anleitungen Unterformular1, dieser Datensatz dann im ufo Anleitung
Unterformular angezeigt wird, also im oberen Einzelformular.
Dadurch hᅵtte ich dann die Mᅵglichkeit weitere Informationen zum
jeweiligen Datensatz ᅵber Schaltflᅵchen o.ᅵ. im Einzelformular abzurufen.
Ist halt ᅵbersichtlicher.
Geht das denn alles so zu machen? Wie kann ich das realisieren? Ich hoffe
dieses mal alles ᅵbersichtlich geschildert zu haben.
Vielen Dank im voraus
Andreas
Es fehlt noch der Hinweis, woran man einen bestimmten Datensatz
in den UFos erkennt. Du brauchst zum Navigieren ein eindeutiges
Feld (am besten ein Primᅵrschlᅵsselfeld) in der Tabelle "Anleitung".
Hast du so etwas und wie heiᅵt es? Ist es "Themabeschreibung"?
Besser wᅵre so etwas wie ein Autowertfeld.
Ich nenne es hier im Beispiel mal "AnleitungId".
Weiᅵt du grundsᅵtzlich, wie man VBA-Code benᅵtzt?
Wenn ja, dann kopiere den folgenden Code mal in die Ereignisprozedur
"Beim Doppelklick" deines Steuerelementes "Themabeschreibung"
im Datenblatt-UFo, also dort, wo du die Aktion auslᅵsen willst:
'*********
Dim rs As DAO.Recordset
Set rs = Me.Parent![Anleitung Unterformular].Form.RecordsetClone
rs.FindFirst "AnleitungId = " & Me!AnleitungId
If Not rs.NoMatch Then
Me.Parent!Anleitungen.Form.Bookmark = rs.Bookmark
End If
Set rs = Nothing
'********
Wenn das nicht klappt, dann schildere genau, wo und wie es nicht
funktioniert und nenne ggf. die Fehlermeldung, -nummer und -position.
BTW Deine UFo-Namen sind nicht optimal. Du solltest in allen
Objektnamen Sonder- und Leerzeichen vermeiden.
s.a. www.donkarl.com?FAQ1.5
Ich habe solch ein Feld in meiner Tabelle Anleitung und es heisst
Anleitung_ID
>
> Besser wᅵre so etwas wie ein Autowertfeld.
> Ich nenne es hier im Beispiel mal "AnleitungId".
>
> Weiᅵt du grundsᅵtzlich, wie man VBA-Code benᅵtzt?
> Wenn ja, dann kopiere den folgenden Code mal in die Ereignisprozedur
> "Beim Doppelklick" deines Steuerelementes "Themabeschreibung"
> im Datenblatt-UFo, also dort, wo du die Aktion auslᅵsen willst:
Habe ich getan und zwar im 2. Ufo AnleitungUnterformular1
Im ᅵbrigen habe ich deinen Hinweis beherzigt und das Freizeichen im
Unterformularnamen weggelassen. Ich habe also diese Namen geᅵndert.
Danach habe ich den Code ein wenig geᅵndert.
Private Sub Themabeschreibung_DblClick(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Me.Parent![Anleitung Unterformular].Form.RecordsetClone
rs.FindFirst "Anleitung_Id = " & Me!Anleitung_ID
If Not rs.NoMatch Then
Me.Parent!Anleitung.Form.Bookmark = rs.Bookmark
End If
Set rs = Nothing
'********
End Sub
Wenn ich jetzt im Feld Themabeschreibung des Unterformulars
AnleitungenUnterformular1eines Datensatzes doppelklicke sollte der
entsprechende Datensatz im ufo AnleitungenUnterformular erscheinen, statt
dessenerscheint noch folgender Fehler:
Laufzeitfehler 2465
Microsoft Office Access kann das in ihrem Ausdruck angesprochene Feld
Anleitungnicht finden.
Was sollte denn da jetzt stehen?
Andreas
>
> '*********
> Dim rs As DAO.Recordset
> Set rs = Me.Parent![Anleitung Unterformular].Form.RecordsetClone
>
> rs.FindFirst "AnleitungId = " & Me!AnleitungId
> If Not rs.NoMatch Then
> Me.Parent!Anleitungen.Form.Bookmark = rs.Bookmark
> End If
>
> Set rs = Nothing
> '********
>
> Wenn das nicht klappt, dann schildere genau, wo und wie es nicht
> funktioniert und nenne ggf. die Fehlermeldung, -nummer und -position.
>
> BTW Deine UFo-Namen sind nicht optimal. Du solltest in allen
> Objektnamen Sonder- und Leerzeichen vermeiden.
> s.a. www.donkarl.com?FAQ1.5
>
--
Erstellt mit Operas revolutionᅵrem E-Mail-Modul: http://www.opera.com/mail/
Dim rs As DAO.Recordset
Set rs = Me.Parent!AnleitungenUnterformular.Form.RecordsetClone
rs.FindFirst "Anleitung_Id = " & Me!Anleitung_ID
If Not rs.NoMatch Then
Me.Parent!AnleitungenUnterformular.Form.Bookmark = rs.Bookmark
End If
Set rs = Nothing
--
vielen Dank nochmals. Jetzt hat es funktioniert.
Ein kleines Manko gibt es da zwar noch, aber vielleicht bekomme ich das
noch hin. Es mᅵsste wohl nur noch die Bedingung eingefᅵgt werden, dass
dieser Code nur dann ausgefᅵhrt wird, wenn es auch tatsᅵchlich einen
Datensatz gibt.
Denn wenn ich auf einen leeren Datensatz klicke, bzw. auf die Zeile eines
neuen Datensatzes, erhalte ich die Fehlermeldung:
Laufzeitfehler 3077
Syntaxfehler (fehlender Operator) in Ausdruck
Andreas
>> dessenerscheint noch folgender Fehler:
>>
>> Laufzeitfehler 2465
>> Microsoft Office Access kann das in ihrem Ausdruck angesprochene Feld
>> Anleitungnicht finden.
>>
>> Was sollte denn da jetzt stehen?
>
> Dim rs As DAO.Recordset
> Set rs = Me.Parent!AnleitungenUnterformular.Form.RecordsetClone
>
> rs.FindFirst "Anleitung_Id = " & Me!Anleitung_ID
> If Not rs.NoMatch Then
> Me.Parent!AnleitungenUnterformular.Form.Bookmark = rs.Bookmark
> End If
>
> Set rs = Nothing
>
--
Als 1. Zeile im Code:
If IsNull(Me!Anleitung_Id) Then Exit Sub
Andreas
>>
>> Laufzeitfehler 3077
>> Syntaxfehler (fehlender Operator) in Ausdruck
>
> Als 1. Zeile im Code:
>
> If IsNull(Me!Anleitung_Id) Then Exit Sub
>
--