Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrere outlook Termine aus access 2010 versenden

Frage Entwicklung VB for Applications

Mitglied: Rico-WM

Rico-WM (Level 1) - Jetzt verbinden

30.01.2014 um 13:02 Uhr, 1958 Aufrufe, 11 Kommentare, 2 Danke

Hallo, benötige mal wieder Eure Hilfe.

Ich habe in access2010 ein Formular, dass sich auf die Tabelle "Buchung_Fluginfos" bezieht
In der Tabelle werden meine gebuchten Flüge abgelegt.
Ein "Vorgang" besteht aus einer Vorgangsnummer hinter der nun natürlichen mehrere Flüge liegen können.

Bespiel:
Vorgangsnummer Datum Airline von bis Abflug Ankunft
54856 10.01.14 LH 123 Düsseldorf München 10:00 11:00
54856 10.01.14 LH 456 München Düsseldorf 19:00 20:00


Ich möchte nun aus Access 2 Termine an eine Outlook mail, die ich versende, anhängen

Der Code dazu sieht wie folgt aus:
Set rs = Me.RecordsetClone

sStr = sStr & rs!Datum & vbNewLine & rs!Airline & vbTab & rs!von & " - " & _
rs!bis & vbTab & Format(rs!Abflug, "hh:mm") & " - " & vbTab & Format(rs!Ankunft, "hh:mm") & vbNewLine & vbNewLine


rs.MoveFirst
Do Until rs.EOF

Set OutApp = CreateObject("Outlook.Application")
Set OutApptmt = OutApp.CreateItem(0)
With OutApptmt
.Subject = rs!filekey
.Start = rs!Abflug
.End = rs!Ankunft
' make it a meeting request
.MeetingStatus = 1 '1=olMeeting
.Body = sStr
'.Save
Set OutMail = .ForwardAsVcal

End With
rs.MoveNext
Loop
rs.Close

On Error Resume Next
With OutMail
.GetInspector.Display
.To = ""
.cc = ""
'.Attachments.Add
.bcc = ""
.Subject = "Flug"
.htmlBody = "<span style=" & Chr(34) & " font-family:Arial; " & _
" font-size:10pt; " & Chr(34) & _
">Hallo " & ", <BR><BR>" & _
"anbei meine Flüge " & _
<BR><BR>" & _
"Schöne Grüße " & olOldBody

Set OutMail = Nothing
Set OutApp = Nothing

End With

End Sub

Das funktioniert aber nur in der Form, daß mir nur 1 Termin für beide Flüge gemacht wird und nicht 2 Termine. Also einen für den Hinflug und einen für den Rückflug

Hat jemand eine Idee?

Bin am verzweifeln! Würde mir echt riesig helfen.

Vielen Dank im voraus

VG
Rico
Mitglied: colinardo
30.01.2014, aktualisiert um 16:20 Uhr
Hallo Rico,
versuchs mal hiermit:
01.
Set rs = Me.RecordsetClone 
02.
 
03.
rs.MoveFirst 
04.
Set OutApp = CreateObject("Outlook.Application") 
05.
Set OutMail = OutApp.CreateItem(0) 
06.
 
07.
Do Until rs.EOF 
08.
        Set OutApptmt = OutApp.CreateItem(1) 
09.
        sStr = rs!Datum & vbNewLine & rs!Airline & vbTab & rs!von & " - " & rs!bis & vbTab & Format(rs!Abflug, "hh:mm") & " - " & vbTab & Format(rs!Ankunft, "hh:mm") & vbNewLine & vbNewLine 
10.
	With OutApptmt 
11.
		.Subject = rs!filekey 
12.
		.Start = rs!Datum & " " & rs!Abflug 
13.
                 if TimeValue(rs!Abflug) > TimeValue(rs!Ankunft) then 
14.
                    .End = DateAdd("d",1,DateValue(rs!Datum)) & " " & rs!Ankunft 
15.
                 else 
16.
                    .End = rs!Datum & " " & rs!Ankunft 
17.
                 end if 
18.
		' make it a meeting request 
19.
		.MeetingStatus = 1 '1=olMeeting 
20.
		.Body = sStr 
21.
                .Save 
22.
                OutMail.Attachments.Add OutApptmt 
23.
      	End With 
24.
	rs.MoveNext 
25.
        OutApptmt.Delete 
26.
Loop 
27.
rs.Close 
28.
 
29.
On Error Resume Next 
30.
With OutMail 
31.
	.To = "" 
32.
	.cc = "" 
33.
	.bcc = "" 
34.
	.Subject = "Flug" 
35.
	.htmlBody = "<span style=" & Chr(34) & " font-family:Arial; " & _ 
36.
	" font-size:10pt; " & Chr(34) & _ 
37.
	">Hallo " & ", <BR><BR>" & _ 
38.
	"anbei meine Flüge " & _ 
39.
	"<BR><BR>" & _ 
40.
	"Schöne Grüße " & olOldBody 
41.
       .Display 
42.
End With 
43.
 
44.
Set OutMail = Nothing 
45.
Set OutApp = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: Rico-WM
30.01.2014 um 14:48 Uhr
Hallo Uwe,

vielen Dank für Deine superschnelle Antwort.
Es werden zwar die beiden Termine erzeugt, aber in jedem Termin steht im Body "Düsseldorf-München"...
Es sollte aber im ersten Termin der Datensatz "Düsseldorf-München" stehen und im zweiten Termin "München-Düsseldorf"

Hast Du eine Idee?

Vielen vielen Dank und

VG
Rico
Bitte warten ..
Mitglied: colinardo
30.01.2014, aktualisiert um 15:08 Uhr
Das im Body immer das selbe steht war einer deiner Fehler, auf die ich nicht geachtet habe, sorry...der Code für diesen stand nicht innerhalb der Schleife
Ist oben korrigiert ...

Grüße Uwe
Bitte warten ..
Mitglied: Rico-WM
30.01.2014 um 15:13 Uhr
Hi Uwe,

sorry dafür!
Leider funktioniert es noch nicht ganz so.

Folgendes Problem:
Ich habe nun eine weitere Reise mit 4 Flügen. Sagen wir Düsseldorf-München, München-Zurich, Zürich-München, München-Düsseldorf.
Folgendes passiert nun:
Im 1.Termin steht "Düsseldorf-München"

Im 2.Termin steht "Düsseldorf-München"
München-Düsseldorf"

Im 3.Termin steht "München-Zürich"

Im 4.Termin steht "München-Zürich"
"Zürich-München"

Es soll aber so sein:
Im 1.Termin steht "Düsseldorf-München"

Im 2.Termin steht "München-Zürich"

Im 3.Termin steht "Zürich-München"

Im 4.Termin steht "München-Düsseldorf"

Vielen Dank nochmals
VG
Rico
Bitte warten ..
Mitglied: colinardo
30.01.2014, aktualisiert um 15:28 Uhr
da war noch eine Verdoppelung in deiner ursprünglichen Body-Zeile, denke jetzt müsste es laufen (s.o.) bin grad im Stress
Bitte warten ..
Mitglied: Rico-WM
30.01.2014 um 15:56 Uhr
Total genial Uwe,

vielen vielen Dank!!

Hab noch ein hoffentlich kleines Problem bekommen.

Der Beginn des Termins ist natürlich immer Datum und Abflugzeit
.Start = rs!Datum & " " & rs!Abflug

Das Ende des Termins ist immer Datum und Ankunftszeit
.End = rs!Datum & " " & rs!Ankunft

Wenn ich aber mehrere Flüge habe, erhalte ich die Meldung "Das von Ihnen angegebene Ende liegt vor dem Beginn"

Was mach ich falsch?

By the way, find ich super von Dir, dass Du so schnell und kompetent antwortest, obwohl Du Stress hast.

VG
Eric
Bitte warten ..
Mitglied: colinardo
30.01.2014, aktualisiert um 16:06 Uhr
wenn du natürlich einen Flug hast der über 0:00 geht kommt es natürlich zu diesem Fehler, das müsste man mit einer prüfung abfangen ....
Bitte warten ..
Mitglied: Rico-WM
30.01.2014 um 16:03 Uhr
Oh mein Gott, sehe das Problem!
Das liegt am letzten Flug. Das ist ein Langstreckenflug der erst am nächsten Tag ankommt.
Sprich, Abflug 08.02.14, 22.30, Ankunft 09.02.14, 07.20

Logisch, daß er dann meckert. Nur wie kann ich ihm klar machen, daß es Flüge gibt, die erst am nächsten Tag ankommen.
Richtig wäre dann Anfangstermin 08.02.14, 22.30 hrs
Endtermin 09.02.07:20 hrs

Ich könnte natürlich ein zusätzliches Feld in die Tabelle einbauen, in das ich "+1" schreibe, wenn die Ankunft am nächsten Tag ist.
Dann benötige ich aber eine Select Funktion oder so.
Damit kenn ich mich ja überhaupt nicht aus.

Hast Du einen Vorschlag/Idee?

VG
Rico
Bitte warten ..
Mitglied: colinardo
30.01.2014, aktualisiert um 16:06 Uhr
am besten eine zusätzliche Spalte in deiner Tabelle mit Ankunftsdatum...
Bitte warten ..
Mitglied: Rico-WM
30.01.2014 um 16:14 Uhr
Will echt nicht nerven Uwe, aber könnte man das auch so machen, daß ich mir eine weitere Spalte mache in der als Standardwert nichts oder 0 drin steht und wenn die Ankunftszeit am nächsten Tag ist, schreib ich einfach "+1" in die Spalte?
Dann könnte geprüft werden: Wenn in dem besagten Feld 0 oder nichts steht, dann schreibe mir das Abflugdatum, ansonsten schreibe mir das Abflugdatum +1

Eine geniale Lösung wäre natürlich eine Prüfung in dieser Form:
Wenn die Endzeit im Vergleich zur Anfangszeit nach 00:00 Uhr liegt, ist das Endatum = Anfangsdatum +1

Sprengt das den VBA Rahmen?

VG
Rico
Bitte warten ..
Mitglied: colinardo
30.01.2014, aktualisiert um 16:27 Uhr
sprengt das den VBA Rahmen?
Quatsch, nie und nimmer
habe oben schon eine Lösung eingebaut, ohne das du was an deiner Tabelle ändern musst
01.
if TimeValue(rs!Abflug) > TimeValue(rs!Ankunft) then 
02.
    .End = DateAdd("d",1,DateValue(rs!Datum)) & " " & rs!Ankunft 
03.
else 
04.
    .End = rs!Datum & " " & rs!Ankunft 
05.
end if
sollte aber ein Flug länger als ein Tag dauern solltest du über eine weitere Spalte nachdenken...
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 Abfrage erster Werktag (10)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access 2010 komplizierte Abfrage (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Hilfe bei "Distinct" Befehl in Access 2010 (3)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...