Hallo zusammen,
ich kann über ein Formular eingeben, welcher Monteur einen Montageauftrag ausführen soll. In der Tabelle der Montagen wird dann aber nur die Nummer des Monteurs gespeichert, nicht jedoch der Name.
Später exportiere ich das dann nach Outlook und das soll natürllich nicht die Nummer des Monteurs sondern der echte Name ausgegebene werden.
Wie kann ich das beim Export in Outlook erreichen?
.UserProperties("Monteur") = rst!Monteurschreibt nur die Nummer zurück und bemängelt natürlich auch noch, dass Monteur eigentlich eine Nummer und kein Text ist.
Hallo,
exportiere über eine Abfrage mit der Tabelle für den Monteur und der Tabelle für den Auftrag (mit der Verknüpfung über die Nummer), dann kannst Du aus beiden Tabellen die für den Export notwendigen Felder auswählen und dann exportieren.
Hallo Klaus,
erst einmal Danke für Deine Antwort. Leider sind meine Access-Zeiten aber schon eine Weile her und ich stehe echt auf dem Schlauch.
Public Sub TermineExportieren()
Dim objAppointment As Outlook.AppointmentItem
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim objUserProperty As Outlook.UserProperty
Dim lngTerminID As Long
Set db = CurrentDb
Set rst = db.OpenRecordset("tblTermine", dbOpenDynaset)
Do While Not rst.EOF
Set objAppointment = GetAppointmentFolder.Items.Find("[TerminID] = " & rst!TerminID)
If objAppointment Is Nothing Then
Set objAppointment = GetAppointmentFolder.Items.Add
With objAppointment
'.Subject = rst!Betreff
.Subject = rst!Kd_Name & ", " & rst!Auftr_beschr
.Body = Nz(rst!Inhalt, "")
.Start = rst!Datum & " " & rst!Anfang
.End = rst!Datum & " " & rst!Ende
.UserProperties("Kd-Nr") = rst!Kd_Nr
.UserProperties("Kd-Name") = rst!Kd_Name
.UserProperties("AB-Nr") = rst!AB_Nr
.UserProperties("Auftragsbeschreibung") = rst!Auftr_beschr
.UserProperties("AW") = rst!angesetzteAW
.UserProperties("Monteur") = rst!Monteur
Set objUserProperty = .UserProperties.Add("TerminID", olText)
objUserProperty.Value = rst!TerminID
.Save
End With
Else
With objAppointment
If Not (rst!GeaendertAm = .LastModificationTime) Then
.Subject = rst!Kd_Name & ", " & rst!Auftr_beschr
.Body = Nz(rst!Inhalt)
.Start = rst!BeginntAm
.End = rst!EndetAm
.UserProperties("Kd-Nr") = rst!Kd_Nr
.UserProperties("Kd-Name") = rst!Kd_Name
.UserProperties("AB-Nr") = rst!AB_Nr
.UserProperties("Auftragsbeschreibung") = rst!Auftr_beschr
.UserProperties("AW") = rst!angesetzteAW
.UserProperties("Monteur") = rst!Monteur
.Save
End If
End With
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set db = Nothing
End Sub
Das ist die Routine, die ich für den Export verwende. Aktuell kommt jedoch eine Fehlermeldung, weil das benutzerdefinierte Feld Monteur ein Textfeld ist und hier eine einstellige Zahl zurück gegeben wird.
Ich würde mich über jede Idee oder Anleitung freuen.
Das wesentliche ist, dass du nicht deine tblTermine als Quelle nimmst, sondern eine Abfrage erstellst, die mittels Join über die numerische Monteur-Id auf die Monteuer-Tabelle auch den Namen des Monteurs als Ergebnisspalte enthält. Diesen Monteuernamen übergibst du dann anstelle der numerische Monteur-Id an den Outlook-Termin.
Zitat von: PhilS am Dezember 06, 2022, 21:37:15Das wesentliche ist, dass du nicht deine tblTermine als Quelle nimmst, sondern eine Abfrage erstellst, die mittels Join über die numerische Monteur-Id auf die Monteuer-Tabelle auch den Namen des Monteurs als Ergebnisspalte enthält. Diesen Monteuernamen übergibst du dann anstelle der numerische Monteur-Id an den Outlook-Termin.
Das heißt, ich sollte in die Abfrage alle benötigten Daten aus beiden Tabellen aufnehmen, damit ich alle Felder zur Verfügung habe. Und dann kann ich die Felder entsprechend schreiben.
Das klingt einleuchtend und ich werden es testen.
In welchem Bereich hier kann ich denn Unterstützung bekommen, wenn es um den Export nach Outlook geht. Ich möchte gerne im Formular eine Schaltfläche zufügen, die dann das Schreiben des Datensatzes in Outlook ermöglicht. Gleichzeitig sollte auch überprüft werden, ob es den Datensatz schon gibt......
Ich möchte hier nicht die falschen Leute nerven.