collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 46
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13799
  • stats Beiträge insgesamt: 63494
  • stats Themen insgesamt: 8604
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Werte aus Abfrage und Formular ziehen  (Gelesen 233 mal)

Offline Daniel92

  • Newbie
  • Beiträge: 40
Werte aus Abfrage und Formular ziehen
« am: November 13, 2017, 09:20:35 »
Hallo zusammen,

gibt es eine Möglichkeit Werte aus einer Abfrage und einem Formular zu ziehen?

Ich möchte Email Adressen aus einer Abfrage und Termine aus einem Formular haben.
Mit der SELECT FROM Funktion bekomme ich die gewünschten Email Adressen aus der Abfrage, nur funktioniert dann die Me! Funktion nicht mehr, mit der ich das Textfeld auf dem Formular ansprechen möchte für das gewünschte Datum.
Mit welchen Funktionen kann ich also das Formular für das Datum und die Abfrage für die Email Adressen ansprechen?
Ich hoffe auf eure Hilfe!

Beste Grüße
Daniel 
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 248
    • Tipps zu Access, VBA, SQL und Co.
Re: Werte aus Abfrage und Formular ziehen
« Antwort #1 am: November 13, 2017, 12:03:44 »
...nur funktioniert dann die Me! Funktion nicht mehr, mit der ich das Textfeld auf dem Formular ansprechen möchte für das gewünschte Datum.
Me bezieht sich auf die "eigene" Instanz einer Objektvariable. D.h. innerhalb eines Formular kannst du dieses mit Me ansprechen. Außerhalb des jeweiligen Formulars kannst du dieses über die Forms-Collection ansprechen.

Wenn dir diese generelle Info noch nicht weiterhilft, solltest du den genauen (Programm-)Kontext des Problems schildern.

Offline Frithjiof

  • Newbie
  • Beiträge: 41
Re: Werte aus Abfrage und Formular ziehen
« Antwort #2 am: November 13, 2017, 12:47:22 »
Könnte so gehen:
SELECT Funktion.email, [Formulare]![XXXX]![TERMIN] AS TERMIN
FROM Funktion;

Frithjof
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23089
Re: Werte aus Abfrage und Formular ziehen
« Antwort #3 am: November 13, 2017, 13:04:17 »
Hallo,


dabei auf engl. Ausdrücke achten:

SELECT Funktion.email, [Forms]![XXXX]![TERMIN] AS TERMIN
FROM Funktion;

Offline Frithjiof

  • Newbie
  • Beiträge: 41
Re: Werte aus Abfrage und Formular ziehen
« Antwort #4 am: November 13, 2017, 13:13:14 »
Das ist richtig, und das Formular sollte auch geladen sein. 
 

Offline Daniel92

  • Newbie
  • Beiträge: 40
Re: Werte aus Abfrage und Formular ziehen
« Antwort #5 am: November 13, 2017, 14:29:47 »
Erstmal vielen Dank für eure Antworten!

Ehrlich gesagt komme ich damit leider immer noch nicht zum Ziel....
Ich habe beide Funktionen einzeln, bekomme aber die Verbindung nicht hin.

Mit diesem Code kann ich wie gewünscht 3 Termine/ Besprechungen verschicken. Leider nur an die Email Adresse, die ich bei outtest.Recipients.Add("MailAdresse") hinzufüge. (Der auskommentierte Befehl)

Option Compare Database
Option Explicit

Public Function fncOutlook_Termin_Eintragen(dStart1 As Date, dEnd1 As Date, dStart2 As Date, dEnd2 As Date, dStart3 As Date, dEnd3 As Date)
 
 Dim counter1 As Integer
 Dim Start(3) As Date
 Dim Ende(3) As Date
 
 
 Start(0) = dStart1
 Ende(0) = dEnd1
 Start(1) = dStart2
 Ende(1) = dEnd2
 Start(2) = dStart3
 Ende(2) = dEnd3
 
 For counter1 = 0 To 2
 
    Dim outApp As Outlook.Application
    Dim outtest As Outlook.AppointmentItem
    'Dim myRequiredAttendee As Outlook.Recipient
    Set outApp = New Outlook.Application
    Set outtest = outApp.CreateItem(olAppointmentItem)
   
   
    With outtest
        .MeetingStatus = olMeeting
        .Start = Start(counter1)
        .End = Ende(counter1)
        .Body = "Bitte um Teilnahme am Schulungsblock"
        .AllDayEvent = False
        .ReminderMinutesBeforeStart = 60
        .Subject = Me!SchulungsblockTitel
     
         'Set myRequiredAttendee = outtest.Recipients.Add("Daniel92@xyz.de")
         'myRequiredAttendee.Type = olRequired
        .Save
    End With
   
    Next counter1
End Function

Private Sub btnBlockerVersenden_Click()

fncOutlook_Termin_Eintragen Me!Termin1Beginn, Me!Termin1Ende, Me!Termin2Beginn, Me!Termin2Ende, Me!Termin3Beginn, Me!Termin3Ende

End Sub



Mit dem Code kann ich eine einzelne Email an die Leute verschicken die ich in der Abfrage gefiltert habe:

Option Compare Database
Option Explicit

Public Sub TutorSenden()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
   
    Dim emailTo As String
    Dim emailSubject As String
    Dim emailText As String
   
    Dim outApp As Outlook.Application
    Dim outMail As Outlook.MailItem
    Dim outStarted As Boolean
   
    On Error Resume Next
    Set outApp = GetObject("", "Outlook.Application")
    On Error GoTo 0
    If outApp Is Nothing Then
        Set outApp = CreateObject("Outlook.Application")
        outStarted = True
    End If
   
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT Vorname, Nachname, EmailAdresse FROM qry_Tutoren")
                               
    Do Until rs.EOF
   
        emailTo = rs.Fields("EmailAdresse").Value
        emailSubject = "test"
        emailText = "Test123"
       
        Set outMail = outApp.CreateItem(olMailItem)
        outMail.To = emailTo
        outMail.Subject = emailSubject
        outMail.Body = emailText
        outMail.Send
   
        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    Set db = Nothing

    If outStarted Then
        outApp.Quit
    End If
   
    Set outMail = Nothing
    Set outApp = Nothing
     
End Sub

Ich schaffe es leider nicht beide Codes so zu kombinieren, dass ich die 3 Besprechungen/Termine an die Email Adressen aus der Abfrage verschicken kann. Ich schaff es nicht mal einen Termin an die Email Adressen aus der Abfrage zu verschicken.

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23089
Re: Werte aus Abfrage und Formular ziehen
« Antwort #6 am: November 13, 2017, 15:46:15 »
Hallo,

etwa so  (Luftcode):

Public Function fncOutlook_Termin_Eintragen(parSubject as String, dStart1 As Date, dEnd1 As Date, dStart2 As Date, dEnd2 As Date, dStart3 As Date, dEnd3 As Date)
 
 Dim counter1 As Integer
 Dim Start(3) As Date
 Dim Ende(3) As Date
 Dim db as Database
 
 Start(0) = dStart1
 Ende(0) = dEnd1
 Start(1) = dStart2
 Ende(1) = dEnd2
 Start(2) = dStart3
 Ende(2) = dEnd3
 
 For counter1 = 0 To 2
 
    Dim outApp As Outlook.Application
    Dim outtest As Outlook.AppointmentItem
    'Dim myRequiredAttendee As Outlook.Recipient
    Set outApp = New Outlook.Application
    Set outtest = outApp.CreateItem(olAppointmentItem)
   
   
    With outtest
        .MeetingStatus = olMeeting
        .Start = Start(counter1)
        .End = Ende(counter1)
        .Body = "Bitte um Teilnahme am Schulungsblock"
        .AllDayEvent = False
        .ReminderMinutesBeforeStart = 60
        .Subject = parSubject     

Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT Vorname, Nachname, EmailAdresse FROM qry_Tutoren")
                               
    Do Until rs.EOF
       .Recipients.Add  rs!EmailAdresse
      rs.MoveNext
    Loop

   

         'myRequiredAttendee.Type = olRequired
        .Save
    End With
   
    Next counter1


'Alle Object-Variablen hier zerstören

Set db = Nothing
rs.Close
Set rs = Nothing
End Function

Die Abfrage "qry_Tutoren"  muss die gefilterten (aktuell gewünschten) Email-Adressen liefern.
  Aufruf:
fncOutlook_Termin_Eintragen Me!SchulungsblockTitel, Me!Termin1Beginn, Me!Termin1Ende, Me!Termin2Beginn, Me!Termin2Ende, Me!Termin3Beginn, Me!Termin3Ende
« Letzte Änderung: November 14, 2017, 08:46:06 von DF6GL »
 
Folgende Mitglieder bedankten sich: Daniel92

Offline Daniel92

  • Newbie
  • Beiträge: 40
Re: Werte aus Abfrage und Formular ziehen
« Antwort #7 am: November 13, 2017, 17:18:05 »
Ich hab mir fast einen abgebrochen und versucht ein dynamisches Array zu erstellen... die Lösung ist natürlich viel eleganter und kürzer! vielen Danke dafür!!!

Jetzt muss ich nur noch hinbekommen, dass je nach gewählter Teilnehmergruppe auch die passende Abfrage dazu gewählt wird und die Email an die richtigen Teilnehmer versendet wird. Die Auswahl der Teilnehmergruppen findet in einem Listenfeld statt, es können auch mehrere Teilnehmergruppen gleichzeitig eingeladen werden.
Mit dem Befehl 
Set rs = db.OpenRecordset("SELECT Vorname, Nachname, EmailAdresse FROM X ")
kann ich eine bestimmte Abfrage ansprechen, nur möchte ich je nach Auswahl im Listenfeld die passende Abfrage dazu ansprechen.
Also mit Klick im Listenfeld auf 1 = Abfrage 1 aufrufen
mit Klick auf 2 = Abfrage 2 aufrufen
und mit Klick auf 1 & 2 = Abfrage 1 & 2 aufrufen

Mit welchen Befehl kann ich das machen?

Beste Grüße und nochmals vielen Dank!
Daniel

 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1600
Re: Werte aus Abfrage und Formular ziehen
« Antwort #8 am: November 13, 2017, 17:25:37 »
Zitat
Set rs = db.OpenRecordset("SELECT Vorname, Nachname, EmailAdresse FROM Tabelle WHERE Gruppe = lngBla")
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23089
Re: Werte aus Abfrage und Formular ziehen
« Antwort #9 am: November 14, 2017, 08:54:58 »
Hallo,

wie Ekkehard schon andeutet, braucht es dazu nicht mehrere Abfragen. Eine genügt, die die GruppenID beinhaltet und danach gefiltert wird.

Public Function fncOutlook_Termin_Eintragen(parSubject as String, parGruppe as Long, dStart1 As Date, dEnd1 As Date, dStart2 As Date, dEnd2 As Date, dStart3 As Date, dEnd3 As Date)
.
.
.
Set rs = db.OpenRecordset("SELECT Vorname, Nachname, EmailAdresse FROM qry_Tutoren Where GruppeID = " & parGruppeID)
.
.

fncOutlook_Termin_Eintragen Me!SchulungsblockTitel, Me!GruppeId, Me!Termin1Beginn, Me!Termin1Ende, Me!Termin2Beginn, Me!Termin2Ende, Me!Termin3Beginn, Me!Termin3Ende

Offline Daniel92

  • Newbie
  • Beiträge: 40
Re: Werte aus Abfrage und Formular ziehen
« Antwort #10 am: November 14, 2017, 11:14:04 »
Danke erstmal für eure Antworten.

Ich haben eine Abfrage erstellt und versucht diese zu Filtern, jetzt bekomme ich den Laufzeitfehler '3831'
Das mehrwertige Feld 'TeilnehmergruppenID' kann nicht in einer WHERE- oder einer HAVING- Klausel verwendet werden.

Das liegt vermutlich daran, dass ich mehrere Werte im Listenfeld auswählen kann und das auch so möchte.
Gibt es einen alternativen Weg oder hab ich ein Verständnisproblem?

Beste Grüße
Daniel
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23089
Re: Werte aus Abfrage und Formular ziehen
« Antwort #11 am: November 14, 2017, 11:24:24 »
Hallo,

die Krux ist das Mehrwertfeld.  (diese Einführung der Mehrwertfelder ist ein danebengegangener Versuch, Datenbankentwürfe user-freundlicher zu machen. Meistens geht der Schuss aber nach hinten los.)

 Wirf das Ding in die Tonne und erstelle eine neue Tabelle , die zur vorhandenen Tabelle in 1:n-Beziehung gesetzt wird.

Anschließend kann eine Filterung auch mit ein paar Zeilen Code mit Hilfe eines (normalen) Listenfeldes im  Mehrfachauswahl-Modus erfolgen.

Offline Daniel92

  • Newbie
  • Beiträge: 40
Re: Werte aus Abfrage und Formular ziehen
« Antwort #12 am: November 14, 2017, 11:53:26 »
So wie ich das verstehe liegt das am Kombifeld, ja?

Ich kann ja jetzt einfach in der tbl_Mitarbeiter das Steuerelement von Kombinationsfeld zu Listenfeld ändern, dann kann ich aber nur einen Wert wählen, also nur eine Teilnehmergruppe. Jetzt gibt es einen Code mit dem ich mehrere Werte aus dem Listenfeld wählen kann?

Beste Grüße
Daiel
 
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6938
Re: Werte aus Abfrage und Formular ziehen
« Antwort #13 am: November 14, 2017, 12:17:13 »
Hallo,
es nutzt nix vom Kombi zum Listenfeld zu wechseln. Listenfeld und Kombi sin in ihrem Verhalten gleich.
Du brauchst noch eine weitere Tabelle zur Erstellung einer korrekten n:m Beziehung.
Mehrwertige Listen/Kombifelder sind Schrott.

Zeige mal ein Bild des Beziehungsfensters mit den relevanten Tabellen, damit man mal die Zusammenhänge sieht.
« Letzte Änderung: November 14, 2017, 12:21:49 von MzKlMu »
Gruß
Klaus
 

Offline Daniel92

  • Newbie
  • Beiträge: 40
Re: Werte aus Abfrage und Formular ziehen
« Antwort #14 am: November 14, 2017, 12:55:16 »
Hier ein Screenshot von meinen Beziehungen.
Muss ich in dem Fall noch 3 Tabellen erstellen um saubere n:m Beziehungen zu haben?
Also zwischen tbl_Teilnehmergruppen und den anderen 3 Tabellen?

Beste Grüße und Danke
« Letzte Änderung: November 14, 2017, 13:09:07 von Daniel92 »