![]() |
Fehler: Operator oder Semikolon fehlt
Ich weiß, hört sich einfach an, dieser Fehler. Aber ich sitze nun schon mehr als einen Tag und bin am Suchen. Und finde nix!!! :x
Delphi-Quellcode:
Und er hängt sich bei der procedure Exportieren auf. Keine Ahnung warum. habe in der Unit Access einfach mal alles außer begin und end; rauskommentiert. und der Fehler existiert immer noch!
procedure TEingabe.ExportierenClick(Sender: TObject);
begin // Speichern-Dialog bei Anklicken des Buttons ausführen if SaveDialog.Execute then Ausgabetabelle(); // procedure aus Unit Access // Tabelle importieren (doppelte Angaben kopieren und einfügen) // procedure aus Unit Access DatenImportieren(); // Daten berechnen und exportieren // procedure aus Unit Access Exportieren(); end; Alleine, wenn ich die procdure entferne, bringt er mir keinen Fehler mehr. Ich hoffe, ihr findet etwas!!! |
Re: Fehler: Operator oder Semikolon fehlt
Der Fehler liegt nicht in dieser Methode. Er muß also im Code darüber liegen.
|
Re: Fehler: Operator oder Semikolon fehlt
Soweit bin ich auch schon gekommen. Leider finde ich nix! Zuerst hatte ich ja alles in dieser Unit und habs dann ausgelagert. Also copy and paste. Da kann man ja nicht viel falsch machen! :wall:
Hier ist der Quellcode, was überhalb steht...
Delphi-Quellcode:
{******************************************}
{ Unit zur Oberflächengestaltung } { Zuweisung der Eingangsdaten des Dialoges } {******************************************} unit Dialog; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ObjEin, ObjPers, ObjRent, ObjTeilw, HiType, HiFunc, Buttons, OleServer, ADOX_TLB; type TEingabe = class(TForm) TabelleEinlesen: TButton; ADOConnection: TADOConnection; ADOQuery: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; OpenDialog: TOpenDialog; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Bilanztermin: TEdit; Rechnungszins: TComboBox; PA_Maenner: TComboBox; PA_Frauen: TComboBox; Rentendynamik: TComboBox; ARKZ: TComboBox; IRKZ: TComboBox; WRKZ: TComboBox; RZahlungsweise: TComboBox; WRArtKz: TComboBox; OK: TBitBtn; Abbruch: TBitBtn; Label11: TLabel; Label12: TLabel; Exportieren: TButton; SaveDialog: TSaveDialog; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource2: TDataSource; Label13: TLabel; Label14: TLabel; Label15: TLabel; PSVAG: TCheckBox; Label16: TLabel; Firmenname: TEdit; {~~~~~~~~~~ Fenster instantiieren, Standardwerte setzen ~~~~~~~~~} procedure FormCreate(Sender: TObject); {~~~~~~~~~~ Dialog abbrechen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} procedure AbbruchClick(Sender: TObject); {~~~~~~~~~~ Einlesen der Eingangstabelle ~~~~~~~~~~~~~~~~~~~~~~~~} procedure TabelleEinlesenClick(Sender: TObject); {~~~~~~~~~~ Tabelle erstellen, berechnen, Daten übergeben ~~~~~~~} procedure ExportierenClick(Sender: TObject); {~~~~~~~~~~ Detailansicht ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~} procedure OKClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Eingabe : TEingabe; TEinlesen : boolean; implementation {$R *.dfm} uses Main, Math, Access; {***************************************} { PROCEDURE : Abbruch } { } { AUFGABE: schließen des Dialogfensters } {***************************************} procedure TEingabe.AbbruchClick(Sender: TObject); begin ModalResult:=mrCancel; end; {********************************************} { PROCEDURE : FormCreate } { } { AUFGABE: Instantiierung des Dialogfensters } {********************************************} procedure TEingabe.FormCreate(Sender: TObject); var JJ,MM,TT : word; function datumtostr(d : datum) : string; var s : string; begin s:=inttostr(d.TT)+'.'+inttostr(d.MM)+'.'+inttostr(d.JJ); datumtostr:=s; end; begin // Standardwerte setzten Bilanztermin.Text := '31.12.'+inttostr(JJ); Rechnungszins.ItemIndex := 0; PA_Maenner.ItemIndex := 5; PA_Frauen.ItemIndex := 3; Rentendynamik.ItemIndex := 0; RZahlungsweise.ItemIndex := 3; ARKz.ItemIndex := 1; IRKz.ItemIndex := 1; WRKz.ItemIndex := 1; WRArtKz.ItemIndex := 0; DecodeDate(Date,JJ,MM,TT); // Eingangsdaten zuweisen with angdaten.eindaten do begin Eingabe.Bilanztermin.Text := datumtostr(EinBil); Eingabe.Rechnungszins.Text := floattostr(EinRechZins); Eingabe.ARKz.ItemIndex := EinARKz; Eingabe.IRKz.ItemIndex := EinIRKz; Eingabe.WRKz.ItemIndex := EinWRKz; Eingabe.Rentendynamik.Text := floattostr(EinDynRenWert); Eingabe.WRArtKz.ItemIndex := EinWRArtKz; Eingabe.PA_Maenner.ItemIndex := EinPensAlter; Eingabe.PA_Frauen.ItemIndex := EinPensAlter; end; end; {****************************************************************} { PROCEDURE : Tabelle einlesen } { } { AUFGABE: den Ausgabedatensatz von Access einlesen und anzeigen } {****************************************************************} procedure TEingabe.TabelleEinlesenClick(Sender: TObject); begin // Bei Anklicken Dialog ausführen um Datenbank auszuwählen if OpenDialog.Execute then EingangsdatenEinlesen() // procedure aus Unit Access else // Fehlermeldung MessageDlg(Format('FEHLER!%s Die Tabelle konnte nicht geöffnet werden! Bitte den Name des Tabellenblattes im Quellcode überprüfen!',[#13#10]), mtError, [mbCancel], 0); end; |
Re: Fehler: Operator oder Semikolon fehlt
Schau mal Zeile 111 an
|
Re: Fehler: Operator oder Semikolon fehlt
Wenn du auf die Fehlermeldung doppelklickst, an welche Position sprint er dann?
|
Re: Fehler: Operator oder Semikolon fehlt
direkt auf
Delphi-Quellcode:
Exportieren();
|
Re: Fehler: Operator oder Semikolon fehlt
Dein Button heisst auch "Exportieren", oder? Dann musst die die Funktion aus der Unit Access Qualifizieren, also "Access.Exportieren;"
|
Re: Fehler: Operator oder Semikolon fehlt
bei Zeile 111 ist diese Funktion datumtostr. Sehe da aber keinen Fehler...
@dfried: Super! Danke! das wars! hab es völlig vergessen, dass der Button genauso genannt ist! :-D |
Re: Fehler: Operator oder Semikolon fehlt
Was mir gerade aufgefallen ist:
Delphi-Quellcode:
Bist du dir sicher, dass es nicht
procedure TEingabe.ExportierenClick(Sender: TObject);
begin // Speichern-Dialog bei Anklicken des Buttons ausführen if SaveDialog.Execute then Ausgabetabelle(); // procedure aus Unit Access // Tabelle importieren (doppelte Angaben kopieren und einfügen) // procedure aus Unit Access DatenImportieren(); // Daten berechnen und exportieren // procedure aus Unit Access Exportieren(); end;
Delphi-Quellcode:
lauten sollte?
procedure TEingabe.ExportierenClick(Sender: TObject);
begin // Speichern-Dialog bei Anklicken des Buttons ausführen if SaveDialog.Execute then begin Ausgabetabelle(); // procedure aus Unit Access // Tabelle importieren (doppelte Angaben kopieren und einfügen) // procedure aus Unit Access DatenImportieren(); // Daten berechnen und exportieren // procedure aus Unit Access Exportieren(); end; end; Wenn du den Speichern-Dialog abbrichst, wird bei deiner Version trotzdem DatenImportieren() und Exportieren() ausgeführt. |
Re: Fehler: Operator oder Semikolon fehlt
Zuerst hast du mich etwas stutzig gemacht, aber das passt schon so!
Bei der procedure Ausgabetabelle wird der Fehler abgefangen - ich kann ja keine Daten importieren oder exportieren, wenn das Tabellenblatt nicht existiert! :wink: Trotzdem danke fürs mitdenken! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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