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
Antwort Antwort
Seite 1 von 2  1 2      
Overclocker

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

Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 2. Aug 2008, 20: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
rotfc
(Gast)

n/a Beiträge
 
#2

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 2. Aug 2008, 21:00
Wie es mit Delphi ginge, habe ich noch nie probiert, aber ich würde an Word keine Access-Tabelle, sondern eine Access-Auswahlabfrage übergeben (notfalls eben ein * in der Auswahlabfrage).

Probier das doch mal aus.
  Mit Zitat antworten Zitat
Overclocker

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

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 2. Aug 2008, 21:04
wie meinst du das?

anstatt select * from profil
ein select * from profil where id=1 oder sowas in der art???
habe ich schon versucht,alles nichts gebracht
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 07:34
Hallo,

das sollte kein Problem von Delphi sein, sondern ein "Word-Sicherheitsproblem" . Und Du kannst noch froh sein, daß du überhaupt ein Fenster in Word aufpoppen siehst, das ist nicht immer so

Probier mal das hier:
http://support.microsoft.com/default...b;en-us;825765

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Overclocker

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

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 11:01
das mit dem einen fenster habe ich hier schon gelesen, wo der SQL Command etc. steht

problem bei mir ist aber, dass nicht dieses fenster kommt, sondern das fenster wo ich die TABELLE selber wählen kann.

d. h. wenn ich die tabelle wähle dann macht word selber n select * from [tabelle] befehl und mein im delphi programm zusammengesetzter query funktioniert überhaupt nicht mehr.

darum geht es mir und da muss es doch ne möglichkeit geben, nur bestimmte datensätze an den serienbrief zu übergeben
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#6

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 11:15
Nochmal zum Mitlesen: An Word eine mit Access generierte Auswahlabfrage schicken!
  Mit Zitat antworten Zitat
Overclocker

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

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 11:37
kann mir vllt jemand mal sagen was rotfc damit meint ??

in meinem code muss ich selbst die sql abfrage eingeben da kann ich schlecht eine von access hernehmen
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#8

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 12:24
Sag's doch so, wie es ist:

Du möchtest mit Word Serienbriefe erstellen, wobei die Empfängeradressen in einer Access-Datenbankdatei (.mdb) gespeichert sind.

Und Du möchtest mit Deinem Delphi-Programm Word so "ansteuern", daß Word aus der Access-Datenbankdatei nur die Empfänger auswühlt, die Du haben möchtestes?

Also Du möchtest mit Delphi ein Programm achreiben, welches Word als "Front-End" für Access-Abfragen benutzt?

Oder wie oder was? :drunken

Ansonsten fände ich nicht gänzlich überflüssig, von Dir ein pssr zusätzliche Informationen zu bekommen

- Welche Version von Windows
- Welche Version von MS-Office
- Welche Version von Delphi

Da lässt sich noch viel überdenken
  Mit Zitat antworten Zitat
Overclocker

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

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 12:46
Also Du möchtest mit Delphi ein Programm achreiben, welches Word als "Front-End" für Access-Abfragen benutzt?

Genau richtig, ich möchte sozusagen die SQL Abfrage an Word übergeben, welches sich dann alle Empfänger aufgrund der SQL Abfrage ermittelt.

- Welche Version von Windows: Windows XP
- Welche Version von MS-Office: Office 2003
- Welche Version von Delphi: Delphi 6 Enterprise

Ich hoffe das genügt, dachte es wäre nur eine kleinigkeit im quellcode um das problem zu beseitigen.

danke für deine hilfe schon mal
  Mit Zitat antworten Zitat
Overclocker

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

Re: Serienbrief Datenbank-Tabelle wird nicht übermittelt??

  Alt 3. Aug 2008, 17:58
keiner eine idee??

ich find auch nix bei google wie man einen QRY an word übergeben kann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz