Zum Inhalt springen

Access + VBA + ein bestimmter DS soll sofort angezeigt werden


R-U

Empfohlene Beiträge

Hi Folks,

Habe 2 Formulare. In den Einen wählt man ein Datensatz aus. danach klickt man auf ein button und das 2. Formular öffnet sich. In den 2. Formular soll der sofort der Datensatz angezeigt werden der auch im ersten Formular angezeigt wird. Ich habe dies schon versucht über DoCmd.runSQL aber dort kann ich keine Select abfragen erstellen sondern nur SELECT...INTO. Hat jemand eine Idee wie man es am einfachsten bewerkstelligen kann. Ach ja, habe ich erwähnt das ich das ganze über einen VBA Code machen will???

Danke an alle

Thats all Folks

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Wenn Du das 2. Formular öffnest, kannst Du doch Parameter übergeben. Zum Beispiel:

DoCmd.OpenForm "NAME" ,,,,,,Openargs

Da Dein DS bestimmt einen eindeutigen Wert ( Primärschlüssel ) hat , kannst Du den doch einfach übergeben.

So: Docmd.OpenForm "NAME",,,,,,Me.Primärschlüsselfeld

Bei Öffnen des 2. Formulares soll er dann einfach zu dem Datensatz gehen mit dem Wert, Me.OpenArgs:

DoCmd.GoToControl [Primärschlüsselfeld]

DoCmd.FindRecord Me.OpenArgs

So müsste das gehen. Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, R-U!

Ich hatte auch bis vor kurzen das Problem mit DoCmd.RunSql!

was Du ausführen möchtest, entspricht einer Auswahlabfrage!?

Und dafür kannst Du ein Recordset verwenden:

Sub <DeineSub>()

Dim Rec As Recordset

Set Rec = CurrentDb().OpenRecordset("<DeinTabellenName>")

...

Set Rec = Nothing

End Sub

Du kannst mit

Rec.MoveFirst

Rec.MoveNext

Rec.MoveLast

Rec.MovePrevious

in den Datensätzen navigieren!

Mit Rec!<DeinFeldName>=<Kriterium> kannst Du Deine Werte mit den Feldwerten vergleichen.

Heißt für Deinen Fall:

...OpenRecordset...

'Nur zur Sicherheit

Rec.MoveFirst

Do While Not Rec.EOF()

If Rec.<DeinFeld>=<Kriterium> then

Exit Do

Loop

Set Rec = Nothing

Damit hast Du den gesuchten Datensatz gefunden.

-----

Wenn Du es im Formular realisieren möchtest, kannst Du auch das Ereignis 'Beim Öffnen' benutzen:

Private Sub Form_Open(Cancel As Integer)

'Nur zur Sicherheit

DoCmd.GoToRecord , , acFirst

Do While Not Me.<SteuerelementName>.Text=<Kriterium>

DoCmd.GoToRecord , , acNext

Loop

Dann befindet sich der Fokus im gesuchten Datensatz.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...