collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 55
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13570
  • stats Beiträge insgesamt: 60064
  • stats Themen insgesamt: 8219
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: gefilterte Daten aus Formular an weiteres Formular übergebn  (Gelesen 131 mal)

Offline GAFT

  • Newbie
  • Beiträge: 2
Hallo zusammen,

ich bin ein absoluter VBA-Neuling und benötige eure Hilfe!

Ich habe ein Formular, dass mir Teilnehmer mit deren Emailadressen filtert. Nun möchte ich aber die gefilterten Emailadressen in ein weiteres Formular  (Textfeld = txtEmail) übergeben. Nur wie macht man das?

mein aktueller Code sieht folgendermaßen aus, nur wird immer nur der erste Datensatz (Emailadresse) in das neue Formular übergeben.
Ich hoffe sehr ihr könnt mir weiterhelfen :)

Private Sub Befehl22_Click() 'Öffnet das Formular:Formular1 und übergibt die Werte

     DoCmd.OpenForm "Formular1"

     Forms!Formular1!txtEmail = Me!EmailRef & "; " & Me!Email & " "
     Forms!Formular1!txtOrt = "Raum:" & " " & Me!Raum 'Raum / Ort
     Forms!Formular1!txtBetreff = "Schulungstermin:" & " " & Me!Kursnummer & " " & Me!Kursbezeichnung 'Betreff
     Forms!Formular1!txtBeginn = Me!Datum & " " & Me!Start 'Start
     Forms!Formular1!txtDauer = DateDiff("n", [Start], [Ende]) 'Dauer

Vielen Dank
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 744
Re: gefilterte Daten aus Formular an weiteres Formular übergebn
« Antwort #1 am: Mai 30, 2017, 09:20:45 »
Zitat
Nun möchte ich aber die gefilterten Emailadressen in ein weiteres Formular  (Textfeld = txtEmail) übergeben.
Was ist das genauere Ziel? Methoden leiten sich davon ab.

- Du könntest das zweite Formular mit der gleichen Datenherkunft wie im ersten ausstatten und dann einfach beim Öffnen den aktuellen Filter übergeben.
- Man könnte gleich das vorhandene Recordset hernehmen / übergeben.
- Falls eine kommagetrennte Liste der Mailadressen für eine Übergabe an eine Mail benötigt wird, würde man die unmittelbar erzeugen.
Mit freundlichem Glück Auf!

Eberhard
 

Offline GAFT

  • Newbie
  • Beiträge: 2
Re: gefilterte Daten aus Formular an weiteres Formular übergebn
« Antwort #2 am: Mai 30, 2017, 10:11:53 »
Hallo ebs17,

erstmals vielen lieben Dank für die schnelle Antwort, nur verstehe ich davon nicht wirklich viel?!

Ich vermute mal dein dritter Lösungsvorschlag könnte mein Problem lösen.

das erste Formular (frm_Teilnehmer) zeigt mir gefilterte Teilnehmer eines Schulungskurses an. In diesem Formular habe ich einen Button der ein weiteres Formular (frm_Email) öffnet und die gefilterten Daten aus dem ersten Formular (frm_Teilnehmer) übergeben soll, damit ich dann eine Email versenden kann.
Das Formular (frm_Email) dient mir nur dazu die Email nochmals zu kontrollieren und ggf. zu bearbeiten.

Den Code den ich aktuell benutze übergibt aber aus dem Datensatz der Teilnehmer (frm_Teilnehmer) nur den ersten Datensatz in das zweite Formular (frm_Email). Ich habe also mehrere Emailadressen die alle übergeben werden müssen.
Ich vermute ich benötige eine Schleife oder ein Array um die Daten zu übergeben nur hab ich keine Ahnung wie man das ganze mit VBA realisiert...
ich hoffe ich konnte mein Problem etwas besser beschreiben.

Viele Grüße

Anna
 

Offline Wurliwurm

  • Access-Profi
  • **
  • Beiträge: 351
Re: gefilterte Daten aus Formular an weiteres Formular übergebn
« Antwort #3 am: Mai 30, 2017, 11:29:17 »
Den Code den ich aktuell benutze übergibt aber aus dem Datensatz der Teilnehmer (frm_Teilnehmer) nur den ersten Datensatz in das zweite Formular (frm_Email).
Ich vermute ich benötige eine Schleife oder ein Array um die Daten zu übergeben nur hab ich keine Ahnung wie man das ganze mit VBA realisiert...

Hallo Anna,

das Me! referenziert immer einen Datensatz, und zwar den im Formular gerade aktiven.

Um eine ganze Liste (~Recordset) zu übergeben, würde ich im aufgerufenen Formular eine Public-Methode erstellen, die ein solches Recordset als Parameter übergeben bekommt (entspricht Variante 2 vom Kollegen ebs).

Deklaration im Formular1
Public Sub UebernehmeRecordset(byref rs as Recordset)
  Set Me.recordset = rs
End Sub

Aufruf aus dem Hauptformular:
Call Forms!Formular1!UebernehmeRecordset( rs )
Die Einarbeitung im Umgang mit Recordsets in VBA kann Dir aber keiner ersparen  :)
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22795
Re: gefilterte Daten aus Formular an weiteres Formular übergebn
« Antwort #4 am: Mai 30, 2017, 13:51:37 »
Hallo,


Zitat
das Me! referenziert immer einen Datensatz,...

dem muss ein bisschen widersprechen, bzw. ein wenig korrigieren...

Me referenziert auf das aktuelle Formular-Objekt (Instanz), das gerade geladen ist und in dem der damit verbundene Code abläuft.
Insofern zeigt die Eigenschaft Me.Recordset  auf die Datensätze, die im Form geladen (und evtl. gefiltert) sind.


Die Eigenschaft  Me!Steuerelementname verweist als abkürzende Schreibweise auf ein Steuerelement  (Control), das gebunden sein kann und in diesem Fall den entspr. Wert aus dem aktuell angezeigten Datensatz anzeigt.

@GAFT:

Alles in Allem würde ich vorschlagen, die Vorgehensweise (Übertragen von Werten in anderes Form) nochmal zu überdenken und die Frage von ebs17  genau  (im besten Fall: Aufgabe der DB, Tabellen, Tabellenaufbau, Beziehungen, Arbeitsablauf)  zu beantworten.  Oftmals gibt es  zielstrebigere  (zielführendere) Lösungen, um ans Ziel zu kommen und die ohne viel VBA (ohne das geht's ernsthafterweise aber nicht) auskommen.


Offline Wurliwurm

  • Access-Profi
  • **
  • Beiträge: 351
Re: gefilterte Daten aus Formular an weiteres Formular übergebn
« Antwort #5 am: Mai 30, 2017, 14:09:50 »
dem muss ein bisschen widersprechen, bzw. ein wenig korrigieren...

Absolut richtig. Wollte es zuerst auch so beschreiben wie Du, hatte mich dann entschieden, Begriffe wie Objekt, Instanz oder Steuerelement wegzulassen, um nicht zuviele Fachbegriffe reinzubringen.