Hallo Ihr alle,
habe da ein kleines Problem mit Access 2007.
In meinem FE habe ich nur die Standartsymbolleiste aktiviert. Will ich nun mit dem unten geposteten Code eine Mail generieren, geht dies nur mit der Textdatei.
Die Tabelle und das HTML-Format können nicht generiert werden. Meldung:"Die Funktion 'AusgabeIn' steht nicht zu Verfügung!' oder so ähnlich.
LAsse ich die gesamte Menüleiste (Symbolleiste) unter "Einstellungen" aktiviert, funktioniert dies alles problemlos.
Meine Vermutung: Die Aktion ist nur möglich, wenn die Symbolleiste "Export" aktiviert ist, da laut VB-Hilfe der Code (nicht von mir, wäre froh ich könnte sowas) genau die gleiche Aktion auslöst.
Kann das so sein?
WIe löse ich das Problem? Kann ich das kurzzeitig über VBA aktivieren?
ZitatFunction SendenMailLst()
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim Betreff As String: Betreff = "Abwesenheiten für Alarmierungsliste"
Dim Nachricht As String, An As String, ATT1, ATT2
Dim db As Database, rs As Recordset
'DoCmd.Echo False, "Visual Basic-Code wird ausgeführt."
'Verzeichnis erstellen und Berichte reinschieben
On Error Resume Next
MkDir "C:\temp\"
MkDir "C:\temp\Ber_verz"
On Error GoTo Er
'Berichte ausgeben
'Der dritte Bericht wird im HTML- Format als Textdatei gespeichert
'Es müssen keine Berichte sein, wenn was anderes gewünscht wird, in die Hilfe vom "OutputTo" schauen.
DoCmd.OutputTo acReport, "BerichtAlarmListeLst", "RichTextFormat(*.rtf)", "C:\temp\Ber_verz\BerichtTXT.rtf", False, ""
DoCmd.OutputTo acQuery, "AbfrZwischenStrichliste_Kreuztabelle", "Excel-Arbeitsmappe (*.xlsx)", "C:\temp\Ber_verz\BerichtTab.xlsx", False, ""
DoCmd.OutputTo acReport, "Abwesenheitsliste", "HTML(*.html)", "C:\temp\LST.txt", False, ""
ATT1 = "C:\temp\Ber_verz\BerichtTXT.rtf"
ATT2 = "C:\temp\Ber_verz\BerichtTab.xlsx"
'Quelltext vom dritten Bericht einlesen.
Nachricht = readTxtFile("C:\temp\LST.txt")
'prüfen ob Outlook gestartet ist
fctIsOutlookOpen
'im Bedarfsfall Outlook starten
fctOpenOutlook
'Mailobjekt erstellen
Set objOutlook = New Outlook.Application
Set objOutlookMsg = objOutlook.CreateItem(0)
With objOutlookMsg
'Inhalt des Mails festlegen
.Recipients.Add "feuerwehrleitstelle@stadt-heilbronn.de"
.Importance = 2 ' niedrige priorität
'.Sensitivity = olPersonal
.Subject = Betreff
.HTMLBody = Nachricht 'HTML-Format
.Attachments.Add ATT1 'Berichte anhängen
.Attachments.Add ATT2
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve 'Namen überprüfen
Next
.Display 'Nachricht wird angezeigt
'.Send 'Nachricht wird sofort gesendet
End With
Ex:
On Error Resume Next
rs.Close
Set objOutlook = Nothing
'Verzeichnis und Dateien werden gelöscht
Kill "C:\temp\Ber_verz\*.*"
Kill "C:\temp\LST.txt"
RmDir "C:\temp\Ber_verz"
Exit Function
Er:
MsgBox Err.Description
Resume Next
'Resume Ex
End Function
Hallo,
also mit
DoCmd.OutputTo acOutputReport, "rptArtikel", "HTML(*.html)", "C:\temp\LST.txt", False, ""
DoCmd.OutputTo acOutputQuery, "qryArtikel", "Excel-Arbeitsmappe (*.xlsx)", "C:\temp\LST.xlsx", False, ""
Exportiere ich die angegebenen Objekte FEHLERFREI, egal welche Symbolleisten ein- oder ausgeblendet sind.
ZitatMeldung:"Die Funktion 'AusgabeIn' steht nicht zu Verfügung!' oder so ähnlich.
kannst du mal von der Fehlermeldung einen Screenshot machen und hochladen, diese Angabe ist zuuuuu dürftig!
Das steht sicher auch dabe warum die Aktion nicht zur Verfügung steht oder zumindest eine Fehlernummer etc.
Ich denke, dass da an der DB Einstellungen wirken, die aus deinem Code nicht hervorgehen.
Der dürfte bis auf die Parameterbezeichnungen (z.B. acReport statt acOutputReport aus dm Kontext) in Access 2007 laufen (m.E. stammt der Code aus einer älteren Access-Version)
Hier die Meldung. Leider ohne Nummer oder irgendwas anderes genaues.
Habe es mit 'acoutputquery' probiert. Immer noch das Gleiche.
Habe die Einstellungen auch noch gepostet (Bild).
Wenn ich den rot umkreisten Menüpunkt aktiviere, steht auch 'OutputTO' zu verfügung.
[Anhang gelöscht durch Administrator]
Hallo,
Auch wenn ich deine Einstellung vornehme funktioniert die Ausgabe bei mir fehlerlos.
wenn du ins Modul DoCmd. schreibst --- sollte doch die Liste aufklappen und dort sollte auch OutputTo drin vorhanden sein ....
Sieh auch mal in die Verweise, ob da ein eintrag mit NICHT VORHANDEN drin steht.
Welche Verweise sind bei dir gesetzt?
Hallo Peter,
erst einmal vielen Dank für Deine Mühen.
In der angebotenen Liste wird outputTo geführt.
Verweise mit nicht vorhanden gibt es nicht.
Verweise im Anhang. Müsste eigentlich alles benötigte da sein.
[Anhang gelöscht durch Administrator]
Hallo,
nein, in den Verweisen passt auch alles
*grummel*
Versuch mal meine Datei im Anhang....
Mit der habe ich experimentiert - und bei mir fehlerfrei ausgeführt.
[Anhang gelöscht durch Administrator]
Hallo Peter,
mit Deiner DB kann ich machen was ich will, sie funktioniert.
Bei meiner habe ich mich geirrt. Nicht wenn ich die Symbolleisten ausblende funktioniert sie nicht, sondern wenn ich das Navigationsfenster ausblende.
Entschuldige. Anfängerfehler. 2 Dinge auf einmal verändert. :P
Es muss wohl irgendwo im Code liegen. Starte ich die DB mit der SHift-Tatse, funktioniert alles bestens. Da muss ich wohl weitersuchen. Trotzdem vielen Dank.
MIchel
Hallo,
Zitatmit Deiner DB kann ich machen was ich will, sie funktioniert
Das möchte ich aber auch stark hoffen ;) :D ;D
Ich hab' das eben mal probiert mit dem Navigationsbereich - ändert nichts daran, funktioniert nach wie vor.
Erstelle mal eine neue Datenbank und importiere ALLE Objekte aus deiner DB dorthin - versuch dann mal den Export
Ich glaube nämlich fast, dass das VBA-Projekt in deiner Datei was abgekriegt hat.
Du kannst auch an einer
K O P I E deiner Originaldatei den DECOMPILE-Schalter ausprobieren:
http://www.donkarl.com?FAQ1.23 (http://www.donkarl.com?FAQ1.23)
Hallo Peter,
hilft alles nichts.
Poste hier einmal ein Bruchstück meiner DB.
Die Ganze sprengt leider den 200kb Rahmen.
Auf dem Startformular den mittleren Button drücken, und im nächsten Formular den Button Mail.
Bin mal gespannt, ob es bei Dir funktioniert.
:-[ Störe Dich bitte nicht an dem katastrophalen Code. Liege noch in den Anfängen.
michel
[Anhang gelöscht durch Administrator]
Hallo,
hab das ausprobiert ...
funktioniert!
... nachdem ich die Codes, die beim Aufrufen des Berichts 'BerichtAlarmListeLst' ausgeführt werden deaktiviert habe.
somit ist der 'Feind' lokalisiert!
Ich hab' mir jetzt nicht genau angeschaut, was da alles abläuft, glaube aber erkannt zu haben, dass da an der Datenherkunft des Berichts herumgewerkelt wird wenn der Bericht geladen wird.
Dieser Vorgang wird natürlich auch beim Export ausgeführt - und da kracht's dann.
Die Berichte sollten allesamt OHNE Code beim Laden und Öffnen auskommen um beim Export ohne Probleme zu funktionieren.
Hier musst du nun den Hebel ansetzen und die Sache bereinigen - die Datei an sich funktioniert, speichert die Berichte und Abfragen, generiert das Mail und zeigt es sendebereit im Outlook an!!!!
Wie das Problem aber mit dem Navigationsbereich zusammenspielt und beim Starten mit der SHIFT-Taste funktioniert (was bei mir allerdings nichts genutzt hat) kann ich nicht sagen.
Die Datei wurde ursprünglich unter Windows 98 und Access 97 entwickelt?
*hüstel* da wird noch mehr zum Ändern sein... ;)
HTH
Hallo Peter,
vielen herzlichen Dank.
OH, ja. Bis ich in Access auch mal ein gaaaaanz Großer bin, habe ich an der Datei wohl viel geändert.
Ähem, die Datei ist eigentlich relativ neu, nur das überall zusammengeklonte Material ist vermutlich stellenweise älter, hüstel :P
Das Problem ist nur: Der Bericht wird exportiert (TXT), nur die Excel- und Html-Exporte funktionieren nicht.
michel
Hallo mal wieder,
habe inzwischen vieles an meiner Datenbank hinbekommen. Nur dieses Problem konnte ich nicht lösen. Dafür aber genau eingrenzen:
Wenn die Option "Navigationsbereich anzeigen" unter "Office Schaltfläche -> Access Optionen -> aktuelle Datenbank" deaktiviert ist, funktioniert das mit "DoCmd.OutputTo" in dem hier am Anfang geposteten VBA nicht.
Ist das bei Euch auch so?
Wenn ja, kann man das hinbiegen?
Also,
wen es interessiert, ich habe es "hingebogen".
Der Bericht Nr. 1 ist wenn er generiert wird schon einmal offen und wird angezeig. Letztendlich ist es wohl wie Peter meinte. ZUviel in Bewegung, welches sich gegenseitig blockiert. Wenn ich den angezeigten Bericht vor dem erstellen des Ausgabeberichts schliesse, funktioniert es.
Danke nochmals.