Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datenzugriff auf Name und nicht Nummer

Begonnen von Andreas Irmer, Dezember 03, 2022, 21:38:27

⏪ vorheriges - nächstes ⏩

Andreas Irmer

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.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

MzKlMu

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.
Gruß
Klaus
  •  

Andreas Irmer

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.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •  

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor
  •  

Andreas Irmer

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.
Andreas Irmer
für jede Hilfe dankbar und für Tipps zum Thema Wohnmobil, Wohnwagen auch für jeden erreichbar
  •