Neuigkeiten:

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

Mobiles Hauptmenü

in anderes Formular verlinken

Begonnen von solar, November 12, 2010, 16:19:07

⏪ vorheriges - nächstes ⏩

solar

Hallo,
ich habe ich einer Datenbank ein Formular mit einem Unterformular, ich möchte aus dem Unterformular in den entsprechenden Datensatz eines anderen Formulars wechseln, z.B. durch einen Doppelklick oder durch eine Schaltfläche.....wer kann mir dabei helfen??

database

Hallo,

dazu MUSS im Unterformular der Primärschlüssel des anzusteuernden Datensatzes in dem weiteren Formular vorhanden sein.
Durch Doppelklick wäre dann dieser Schlüssel auszulesen und das andere Formular zu öffnen, indem du diesen Schlüssel als OpenArgs übergeben KANNST.

Zum Öffnen eines Formulars mit OpenArgs bzw. Link-Kriterien siehe die entsprechenden Hinweise in der OH unter dem Suchbegriff DoCmd.OpenForm

'HTH
Peter


solar

Hallo Peter,
kannst du mir das in VB hier rein schreiben???

database

Hallo,

sieh mal den Link in der Antwort von DF6GL - dahinter findest du EINE Lösungsmöglichkeit per VBA!  ;)

solar

hallo,
verflucht was ist da falsch???

Private Sub Seriennr_DblClick(Cancel As Integer)
Dim rs As DAO.Recordset
Set rs = Forms!Fahrzeug.RecordsetClone

'im RecordsetClone von Formular2 die Id aus dem aktuellen Formular finden
rs.FindFirst "Seriennr = " & Me!Id
If Not rs.NoMatch Then
  'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
  Forms!Fahrzeug.Bookmark = rs.Bookmark
End If

Set rs = Nothing

End Sub

Fahrzeug ist das Formular das geöffnet werden soll, Seriennr das entsprechende Feld

Gruß Heinz

DF6GL

#6
Hallo,

fluchen nützt nix, nur  genaues Hinsehen...

rs.FindFirst "Seriennr = " & Me!Seriennr


und falls Seriennr in der Tabelle vom Datentyp Text ist, muß es so heißen:
rs.FindFirst "Seriennr = '" & Me!Seriennr   & "'"



ps:  wobei ich denke, dass Du ganz falsch liegst, wenn der Code das Form erst öffnen soll/muß. Das tut er nicht, er synchronisiert nur das Form, wenn es bereits geöffnet ist.

Optiplex

Hallo,

ins Klick Ereignis eines Buttons oder sonstiges Ereignis

DoCmd.OpenForm "Formularname", , , [Forms]![aktuellesFormular]![ID] = [ID], , acWindowNormal

eintragen.

Öffnet das Angegebene Formular und selektiert den Datensatz.

Gruß Dieter


DF6GL

Hallo,

würde das eher dahingehend korrigieren:

DoCmd.OpenForm "Formularname", , , "[ID] = " & Me!ID, , acWindowNormal


Optiplex

Hallo DF6GL,
danke für die Korrektur, du hast natürlich recht, dass zuerst das Feld in dem zu öffneneden Formulars angegeben werden muss. Das kommt davon wenn man es aus den Kopf heraus macht.

Gruß Dieter

DF6GL

Hallo,

naja, die Syntax war auch nicht ganz kosher    ;)

sowas geht auch:


DoCmd.OpenForm "Formularname", , , Me![ID] & "= [ID]"

solar

ich glaube ich bin zu blöde dazu

Private Sub Seriennr_DblClick(Cancel As Integer)

DoCmd.OpenForm "Fahrzeug"

Dim rs As DAO.Recordset
Set rs = Forms!Fahrzeug.RecordsetClone

'im RecordsetClone von Formular2 die Id aus dem aktuellen Formular finden
rs.FindFirst "Seriennr = '" & Me!Seriennr & "'"
If Not rs.NoMatch Then
  'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
' Forms!Fahrzeug.Bookmark = rs.Bookmark
End If

Set rs = Nothing

End Sub

DF6GL

Hallo,


Du solltest Dir erst mal Gedanken machen, WAS GENAU passieren soll... (und alle  Postings hier lesen)


Willst Du jedes Mal bei Doppelklick das Form öffnen (laden) und synchronisieren?

oder willst Du ein permanent geöffnetes Form von einem anderen Form aus synchronisieren?


WAS geht an Deinem Code nicht?  Wenn ich ihn interpretiere, dann öffnet er nur das Form und tut nichts weiterhin Sichtbares....

solar

es soll beim Doppelklick auf das Feld Seriennr.  das Formular Fahrzeug geöffnet werden und der entsprechende Datensatz mit der gleichen Seriennr. angezeigt werden.

Optiplex

Solar,
dann schau dir mal die von DF6GL verbesserte Version meines postings an, da hast du deine Lösung, ID ist der Autowert in deiner Tabelle/Abfrage die dem Formular hinterlegt sein muss. Wenn du eine andere Feldbezeichnung für den Autowert in deiner Tabelle hast dann musst du den natürlich anpassen.

Gruß Dieter