So funktioniert JustAnswer:

  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten.
    Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.

Stellen Sie Ihre Frage an IT-Fachinformat...

IT-Fachinformatiker
IT-Fachinformatiker, Systemadministrator
Kategorie: Computer
Zufriedene Kunden: 6838
Erfahrung:  Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
32504664
Geben Sie Ihre Frage in der Kategorie Computer hier ein
IT-Fachinformatiker ist jetzt online.

Ich habe VBA Programme, die Daten einer Access Datenbank in

Kundenfrage

Ich habe VBA Programme, die Daten einer Access Datenbank in ein Word Dokument einfügen. Hierbei kommt das Mail Merge Funktion zum Einsatz. Mit der Installation von Office 2010 (vorher 2000) ist die Performence so drastisch gesunken, dass die Programme kaum noch zu gebrauchen sind (Bemerkung: die Syntax Änderungen des Mail Merge Objekts wurden eingearbeitet). Gibt es eine Möglichkeit die alte Perfomence wieder zu erlangen ohne Office 2010 zu deinstallieren?

Thomas Hoffmann
Gepostet: vor 5 Jahren.
Kategorie: Computer
Experte:  IT-Fachinformatiker hat geantwortet vor 5 Jahren.
Hallo,

wäre es möglich, wenn Sie mir morgen einmal genaue Details dazu übermitteln könnten? Das würde mir weiter helfen. Im allgemeinen haben Sie da offenbar einen enormen Schritt gemacht von Office 2000 auf Office 2010 das ist enorm. Es hat sich sehr viel geändert und es wird in Zukunft darauf hinaus laufen, das man VBA durch eine .NET Variante ersetzen wird allerdings heisst das nicht, das VBA dann nicht mehr verwendbar wäre. Dies nur am Rande.

Wie gesagt, wenn Sie mir Details übermitteln könnten würde mir das sehr helfen, denn nur so kann ich das ganze besser beurteilen und eine entsprechende Lösung für Sie finden.

LG Günter
Kunde: hat geantwortet vor 5 Jahren.
Hallo,

ihre Antwort betrifft das Problem nicht, denn die Performence unter Office 2000 lag bei unter einer haben Sekunde. Unter Office 2010 sind es 10 Sekunden. DasProgramm wurde nur an die geänderte Syntax angepasst.

Anbei erhalten Sie den Code:

Sub AutoRechnung(control As IRibbonControl)
'
' AutoRechnung Makro
' Makro erstellt am 30.08.98 von Dipl.-Ing. Thomas Hoffmann
'
Dokumentname = "e:\daten\winword-hilfsdateien\auto-blätter 2010\Autoausfüll-Rechnung.docx"
Bezeichnung = "Rechnung 1"
Projektnummer = InputBox("Eingabe der Projektnummer")
If Projektnummer = "" Then End
Documents.Add (Dokumentname)
With ActiveDocument.MailMerge

.OpenDataSource Name:="e:\daten\Datenbanken\Projektverwaltung.mdb", _
LinkToSource:=True, AddToRecentFiles:=False, _
Connection:="Query WordTbl", _
SQLStatement:="SELECT * FROM [WordTbl] WHERE ([ProjektNr] ='" & Projektnummer & "')"
.Destination = wdSendToNewDokument
.Execute
End With
Set dlg = Dialogs(wdDialogFileSummaryInfo)
With dlg
.Title = Projektnummer & " " & Bezeichnung
.Show 1
End With
ChangeFileOpenDirectory "e:\daten\Unterlagen\Beruf\Rechnungen\"
Documents(2).Close (wdDoNotSaveChanges)
Documents(1).Activate
DatumEinfügen
End Sub

Der Code wird von Word gestartet.

Thomas Hoffmann
Experte:  IT-Fachinformatiker hat geantwortet vor 5 Jahren.
Hallo,

es ist ein gewaltiger Unterschied zwischen Office 2000 (vollkommen veraltet) und Office 2010 Sie müssen bedenken, das es hier diverse Änderungen gab. Ich würde folgendes versuchen:

Die Datenbank sollten Sie direkt auf das Access 2010 Format umstellen, da das veraltete Access 2000 Format zu Performance Einbussen führen kann.

Microsoft arbeitet bereits intensiv an einem Service Pack für Office 2010 u.a. soll auch die Performance insgesamt und damit auch VBA verbessert werden. Es ist also nicht ausgeschlossen, das es genau an diesem Punkt scheitert wenn z.B. bestimmte aber nicht verzichtbare VBA-Aufrufe verwendet werden. Ein Termin für das Service Pack 1 ist unbekannt sehr wahrscheinlich zwischen Mai und November 2011.

Eine andere Variante wäre es, das ganze direkt in Access 2010 umzusetzen dazu gibt es auch ein sehr gutes Beispiel:

http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=714

Das folgende Beispiel könnten Sie z.B. prinzipiell an Ihrem VBA-Code in Word napssen:

Private Sub cmdSerienbriefErstellen_Click()
'...Variablendeklaration
Set objWord = CreateObject("Word.Application")
Set objDocument = objWord.Documents.Open(Chr(34) & Me!txtDokument & Chr(34))

objDocument.Application.Visible = True
Set objMerge = objDocument.MailMerge

strDatabase = dbc.Name
strConnection = "DSN=Microsoft Access-Datenbank;DBQ=" & strDatabase & ";DriverId=25;
FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
objMerge.MainDocumentType = wdFormLetters
objMerge.OpenDataSource Name:=dbc.Name, LinkToSource:=True, Connection:=strConnection, _
SQLStatement:="SELECT * FROM [tblSerienbrief_Temp] WHERE [Serienbrief] = True", _
SubType:=wdMergeSubTypeAccess

Set tdf = dbc.TableDefs("tblSerienbrief_Temp")

For Each fld In tdf.Fields
Set objRange = objDocument.Range
Set objRangeFound = objDocument.Range(0, 0)
strPlatzhalter = "[" & fld.Name & "]"
With objRange.Find
.Text = strPlatzhalter
.Execute
Do While .Found = True
objRangeFound.SetRange objRange.Start, objRange.End
objRange.SetRange objRange.End, objDocument.Range.End
Set objMailMergeField = objMerge.Fields.Add(objRangeFound, fld.Name)
.Text = strPlatzhalter
.Execute
Loop
End With
Next fld

objMerge.ViewMailMergeFieldCodes = True
objMerge.Destination = wdSendToNewDocument
objMerge.Execute
Set objMailMergeDocument = objWord.Documents(1)

If Len(Nz(Me!txtSerienbrief)) = 0 Then
objMailMergeDocument.Application.Visible = True
Else
objMailMergeDocument.SaveAs Chr(34) & Me!txtSerienbrief & Chr(34)
objMailMergeDocument.Close
Set objMailMergeDocument = Nothing
End If

objDocument.Close False
Set objDocument = Nothing
objWord.Quit

Set objWord = Nothing

End Sub


Wenn sich die Dateien im Netzwerk befinden kann es allerdings auf Grund Systembedingter Änderrungen in Office 2010 im Einzelfall zu Leistungseinbussen kommen. Micrsoft arbeitet ja bereits an einem Service Pack. Wenn Sie o.a. Code entsprechend anpassen und übernehmen könnte sich das Resultat positiv auf die Leistung auswirken insofern wäre das ein Versuch wert. Die Datenbank Verbindung ist auch ganz anderes umgesetzt und auf jeden Fall sollten Sie keinesfalls das veraltete Access 2000/2003 Format nutzen. Ich bin mir sicher, das Sie dann wieder die "alte" Performance erreichen oftmals sind es Datenbankverbindungselemente und wie gesagt, allgemein arbeitet Microsoft bereits an diversen Verbesserungen.

LG Günter

IT-Fachinformatiker, Systemadministrator
Kategorie: Computer
Zufriedene Kunden: 6838
Erfahrung: Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
IT-Fachinformatiker und weitere Experten für Computer sind bereit, Ihnen zu helfen.
Kunde: hat geantwortet vor 5 Jahren.
Hallo,

das sind eine Menge Beispiele und ich werde etwas Zeit benötigen, sie auszuprobieren und ggf. einzuarbeiten.

Vielen Dank XXXXX XXXXX würde mich freuen, wenn Sie mir bei Bedarf noch eine Erklärung dazu geben könnten.

Mit freudlichen Grüßen
Thomas Hoffmann
Experte:  IT-Fachinformatiker hat geantwortet vor 5 Jahren.
Hallo,

vielen Dank für die Akzeptierung. Die Erklärung ist eigentlich ganz simpel:

1. Das neue Datenbankformat findet deutlich bessere Unterstützung, da Microsoft dies eher fördert als das alte welches nur aus Kompatibilitätsgründen noch supportet wird

2, DSN / DBO Wie Sie ersehen können ist dieser Ansatz ein anderer nämlich lokales ODBC wenn man sich da nicht "verhädert" ist es schnell genug, selbst über ein Netzwerk sofern die Datenbank nicht im Internet liegt

3. Tipp: SELECT * FROM sollten Sie durch SELECT col1, col2, coln FROM ersetzen damit ist die SQL-Anweisung deutlich effizienter da mit * alle Spalten selektiert werden und dies einfach zu viel Datenmengen produziert

4. Ob Sie es in Word oder Access machen ist Ansichtssache letzlich liegt es auch am Programmierstiel d.h. Schleifenkonstruktionen etc. Verschachtelungen usw.

Ich denke, das Sie das auf jeden Fall hin bekommen und stehe gern weiter zur Ihrer Verfügung. Ihnen vorerst schon mal ein schönes Wochenende.

LG Günter

Bekannt aus:

 
 
 
„[...]mehr als Zehntausend Experten weltweit; 1500 davon in Deutschland. Acht Jahre nach dem Start ist das [...] Online-Unternehmen mit seinen 90 Mitarbeitern die größte Web-Seite für das Vermitteln von Experten von Anwälten über Ärzte bis hin zu Universitätsprofessoren.“
„Wer eine fachmänische Lösung für ein medizinisches, rechtliches oder technisches Problem sucht, kann das jetzt auch im Internet tun. Lebenshilfe auf die schnelle, unkomplizierte und vor allem erschwingliche Art bietet die Seite www.justanswer.de. Etwa 1500 Experten stehen per Mail für Fragen zu ca. 200 Fachgebieten rund um die Uhr zur Verfügung."
„Rat gewünscht? Rechtliche, medizinische oder allgemeine Fragen beantworten Experten unter www.justanswer.de."
„JustAnswer, die weltweit führende Online-Plattform für Expertenfragen und -antworten, bietet ab sofort noch mehr Sicherheit und Qualität für Verbraucher."
„Ob Vorbereitung, Notfall oder Reklamation nach dem Urlaub - JustAnswer bietet jederzeit schnelle, kompetente Antworten"
„Die Online-Plattform JustAnswer bringt Ratsuchende und Experten in über 200 Fachgebieten zusammen."
 
 
 

Was unsere Besucher über uns sagen:

 
 
 
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
< Zurück | Weiter >
  • Ich bedauere, dass ich nicht gleich bei Ihnen gelandet bin. Die Leerung des Cache hat das Problem gelöst. Danke Gerd Schönbuchner Grafrath
  • Endlich ein Experte, der mir wirklich weiterhelfen konnte! DANKE! JustAnswer Kunde Taunusstein
  • Ihre Antwort hat mir sehr geholfen, die richtigen Entscheidungen zu treffen. Dass Sie mir darüber hinaus noch 2 Empfehlungen gegeben haben fand ich super. Vielen Dank! JustAnswer Kunde Freiburg
  • Die ausgearbeiteten Hilfen waren gut strukturiert, leicht verständlich und zu 100% hilfreich für mich. Vielen Dank Markus B. Karlsruhe
  • Sehr schnelle und kompetente Antwort, die für mich bares Geld bedeutet. Vielen Dank! S.Stober K.
  • Herzlichen Dank! Hab durch Ihre Antwort viel Geld gespart! Ben R. Deutschland
  • Sehr schnelle und kompetente Hilfestellung. Besonders für mich als Laien wurde alles sehr verständlich erklärt. Gerne wieder! Rosengl Bad Tölz
 
 
 

Lernen Sie unsere Experten kennen:

 
 
 
  • Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
< Zurück | Weiter >
  • http://ww2.justanswer.com/uploads/PY/Pyroflash/2011-4-21_104934_tronic.64x64.jpg Avatar von Tronic

    Tronic

    IT-Specialist

    Zufriedene Kunden:

    2269
    Elektroniker und EDV-Service
  • http://ww2.justanswer.com/uploads/rufushoschi/2010-11-08_135947_bild.jpg Avatar von IT-Fachinformatiker

    IT-Fachinformatiker

    Systemadministrator

    Zufriedene Kunden:

    6338
    Software Entwicklung, Projekt Erfahrung, Windows-Netzwerke, Linux-Netzwerke, Windows/Linux-Server
  • http://ww2.justanswer.com/uploads/COMINAROSA/2010-02-03_172238_PASSBILD.JPG Avatar von COMIN IT-Service

    COMIN IT-Service

    Dipl.-Ing.

    Zufriedene Kunden:

    779
    Dipl.Ing (FH) ET, NT, IT
  • http://ww2.justanswer.com/uploads/RaubergerConcep/2010-03-02_102740_Portraet64.jpg Avatar von RaubergerConcept

    RaubergerConcept

    IT-Specialist

    Zufriedene Kunden:

    234
    Mehr als 10 Jahre Erfahrung in Softwareentwicklung und Netzwerktechnik
  • http://ww2.justanswer.com/uploads/LF/lfalkenburg/2015-2-8_01843_.64x64.jpg Avatar von Lutz Falkenburg

    Lutz Falkenburg

    IT-Specialist

    Zufriedene Kunden:

    96
    Seit über 20 Jahren beruflich im IT-/IUK-Bereich tätig. Egal ob EinzelPC der Netzwerk...
  • http://ww2.justanswer.com/uploads/BI/BigDaddyXD/2012-10-24_20126_WhySoSeriousJob.64x64.jpg Avatar von BigDaddyXD

    BigDaddyXD

    Informatiker

    Zufriedene Kunden:

    1588
    Microsoft Certified Professional, Microsoft Certified Desktop Support Technican,...
  • http://ww2.justanswer.com/uploads/PU/Pucky80/2011-5-14_54537_pucky80.64x64.jpg Avatar von Pucky80

    Pucky80

    IT-Systemkaufmann

    Zufriedene Kunden:

    1322
    MCITP (Microsoft Server 2008 Enterprise Administrator)
 
 
 

Ähnliche Fragen in der Kategorie Computer