hallo,
ich kann garnicht sagen wie sehr ich dir fuer den tipp mit dem vba makro danke ... ich habe den wald vor baeumen
nicht mehr gesehen und bin auf das simpelste nicht draufgekommen.
Vielen Vielen dank !!
ich weiss nicht ob ich das hier noch mit dranschieben kann, ich mach einfach mal ...
die erstellung des serienbriefes geht, aber nur teilweise.
in der vorlage sind noch diverse Checkboxen drinne.
diese gilt es ebenfalls noch einzustellen ...
da die makro aufzeichnung beim aendern der werte streikt habe ich das mal anders versucht.
ich habe im netz was gefunden was sich rel simpel durchfuehren laesst
Delphi-Quellcode:
// SerienBrief
procedure TForm4.Image8Click(Sender: TObject);
var
Word : OLEVariant;
wState, wName: OleVariant;
strPfad: string;
begin
wState := OleVariant(flag);
wName := OleVariant(cbName);
strPfad := ExtractFilePath(ParamStr(0)); //ExtractFilePath(Application.ExeName);
// Define a string list object, and point our variable at it
try
Word:=CreateOleObject('Word.Application');
except
ShowMessage('Kann Word nicht starten!');
Exit;
end;
Word.Visible:=false;
Word.Documents.Open(FileName:=strPfad +'\geraetebuecher\Gerätebuch v8.0.doc', ConfirmConversions:=
False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:='',
PasswordTemplate:='', Revert:=False, WritePasswordDocument:='',
WritePasswordTemplate:='', Format:=wdOpenFormatAuto, XMLTransform:='');
Word.ActiveDocument.MailMerge.OpenDataSource(Name:=
strPfad +'\geraetebuecher\' + Edit1.Text +'_HW.xls',
ConfirmConversions:=False, ReadOnly:=True, LinkToSource:=True,
AddToRecentFiles:=False, PasswordDocument:='', PasswordTemplate:='',
WritePasswordDocument:='', WritePasswordTemplate:='', Revert:=False,
Format:=wdOpenFormatAuto, Connection:='Provider=Microsoft.Jet.OLEDB.4.0;Password='''
, SQLStatement:='SELECT * FROM `'+ Edit1.Text +'$`', SQLStatement1:='', SubType:=
wdMergeSubTypeAccess);
Word.ActiveDocument.MailMerge.Execute(Pause:= True) ;
// Peripherie
if Checkbox1.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox1).CheckBox.Value := TRUE;
if Checkbox4.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox2).CheckBox.Value := TRUE;
if Checkbox5.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox3).CheckBox.Value := TRUE;
if Checkbox6.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox4).CheckBox.Value := TRUE;
if Checkbox7.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox5).CheckBox.Value := TRUE;
if Checkbox8.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox6).CheckBox.Value := TRUE;
if Checkbox9.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox7).CheckBox.Value := TRUE;
if Checkbox10.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox8).CheckBox.Value := TRUE;
// Reguliertes codex Umfeld
if Checkbox11.Checked = TRUE then Word.ActiveDocument.FormFields.Item(CheckBox9).CheckBox.Value := TRUE;
if Checkbox1.Checked = FALSE then Word.ActiveDocument.FormFields.Item(CheckBox10).CheckBox.Value := TRUE;
// Codex Client
if ComboBox5.Text = 'JA' then Word.ActiveDocument.FormFields.Item(CheckBox11).CheckBox.Value := TRUE;
if ComboBox5.Text = 'NEIN' then Word.ActiveDocument.FormFields.Item(CheckBox12).CheckBox.Value := TRUE;
Word.ActiveDocument.SaveAs(FileName:= strPfad + 'geraetebuecher\GB_temp_'+ Edit1.Text +'.doc', FileFormat:=wdFormatDocument,
LockComments:=False, Password:='', AddToRecentFiles:=True, WritePassword
:='', ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False,
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=
False );
Word.Documents.Close(False, EmptyParam, EmptyParam);
Word.Quit; //Beendet Excel
Image9.Visible := TRUE;
end;
tjahaa folgendes problem nun ...
der compiler meint nun , dass flag und cbName nicht deklariert waeren ...
bin ich doof oder was, das habe ich doch schon im vorfeld getan ...
etwas ratlos bin momentan
EDIT //
gelöst
if Checkbox10.Checked = TRUE then Word.ActiveDocument.FormFields.Item('CheckBox8').C heckBox.Value := TRUE;
langt vollkommen und alles passt