AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Serienbrief Datenbank-Tabelle wird nicht übermittelt??
Thema durchsuchen
Ansicht
Themen-Optionen

Serienbrief Datenbank-Tabelle wird nicht übermittelt??

Ein Thema von Overclocker · begonnen am 2. Aug 2008 · letzter Beitrag vom 3. Aug 2008
 
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#1

Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 2. Aug 2008, 21:47
Hi,

folgender code erzeugt mir einen Serienbrief:

Delphi-Quellcode:
Procedure MachEinSerienBrief(Titel:TRichEdit; DBQuelle: String; DBFelder:TStringlist; VertAbstand: Integer; HorAbstand: Integer);
var
  Word: OLEVariant;
  i:integer;
  SHorAbstand:String;
begin
  try
    Word:=GetActiveOleObject('Word.Application');
  except
    try
      Word:=CreateOleObject('Word.Application');
    except
      ShowMessage('Microsoft Word kann nicht starten.');
      screen.cursor:=crDefault;
      exit;
    end;
  end;
  Word.ActiveDocument.MailMerge.MainDocumentType:= wdFormLetters;
  titel.SelectAll;
  titel.CopyToClipboard;
  Word.Selection.paste;
  //word.ActiveDocument.MailMerge.OpenDataSource(DBQuelle,'SELECT * FROM [" '+ DBQuelle +' "]"'); DBQuelle ist ja der Pfad zur Access Datenbank, da kann ich ja kein Select machen
  Word.ActiveDocument.MailMerge.EditMainDocument;
  for i:=0 to VertAbstand do
  begin
    Word.Selection.TypeParagraph;
  end;
  SHorAbstand:='';
  for i:=0 to HorAbstand do
  begin
    SHorAbstand:=SHorAbstand+' ';
  end;
  for i:=0 to DBFelder.Count-1 do
  begin
    Word.Selection.TypeText(SHorAbstand);
    Word.ActiveDocument.MailMerge.Fields.Add(Word.Selection.Range,DBFelder.Strings[i]);
    Word.Selection.TypeParagraph;
  end;
  Word := Unassigned;
end;
Funktioniert auch ganz gut, nur was mich stört ist, dass in Word ein fenster aufpoppt, wo ALLE Tabellen meiner Datenbank angezeigt werden und ich somit meine Tabelle auswählen muss, welche als Datenquelle genutzt werden soll.
Mit folgendem Code habe ich es auch schon versucht allerdings erscheint immer wieder das Fenster:
word.ActiveDocument.MailMerge.OpenDataSource(DBQuelle,'SELECT * FROM Profil'); Wird die Tabelle an einer falschen Position übergeben oder warum nimmt er den Select Befehl nicht an?

Ich möchte später auch einmal einen Serienbrief erstellen, der mit einem größeren Select abgefragt wird, weil ich manchmal nur bestimmte Datensätze als Serienbrief drucken möchte.


Jemand eine Idee
Grüße
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz