Hallo MrSpock,
ich hab poste hier mal den ganzen Code (wg. Übersichtlichkeit und so...)
Code:
with dmGeneral.tblSD_Buildings do begin
if Active then
Active := False;
Filtered := False;
Active := True;
//----Prüfen, ob bereits ein Gebäude für diesen Kunden mit diesem
// Namen existiert:
blBuilding :=
Locate('strShortName;ID_Link',VarArrayOf([cbxWSheet.Text,intCustID]),[]);
if blBuilding then begin
//------Fehlerroutine: Es muss nachgefragt werden, ob die Räume dem bereits
// vorhandenen Gebäude hinzugefügt werden sollen oder ob ein neues Gebäude
// erzeugt werden soll.
strMsgText := 'Achtung: Das Gebäude "' + cbxWSheet.Text + '" ';
strMsgText := strMsgText + 'ist für diesen Kunden bereits vorhanden!';
strMsgText := strMsgText + #13#10#13#10;
strMsgText := strMsgText + 'Mit Klick auf JA werden die Räume dem ';
strMsgText := strMsgText + 'bereits bestehenden Gebäude hinzugefügt.';
strMsgText := strMsgText + #13#10#13#10;
strMsgText := strMsgText + 'Mit Klick auf NEIN wird ein neues Gebäude ';
strMsgText := strMsgText + 'mit dem gleichen Namen angelegt.';
strMsgText := strMsgText + 'Sie sollten dieses Gebäude später ';
strMsgText := strMsgText + 'zur besseren Unterscheidung umbenennen.';
intAnswer := Application.MessageBox(PChar(strMsgText),
PChar('Wichtiger Hinweis'), MB_YESNOCANCEL + MB_ICONQUESTION);
case intAnswer of
IDYES: ;
IDNO : begin
//-----------------Neues Gebäude hinzufügen und ID feststellen:
Append;
FieldByName('ID_Link').AsInteger := intCustID;
FieldByName('strShortName').AsString := cbxWSheet.Text;
Post;
end;
IDCANCEL: exit;
end;
end else begin
//------Neues Gebäude hinzufügen und ID feststellen:
Showmessage('intCustID: ' + intToStr(intCustID));
Append;
FieldByName('ID_Link').AsInteger := intCustID;
FieldByName('strShortName').AsString := cbxWSheet.Text;
Post;
end;
Zu Deinen anderen Fragen:
- Es ist eine TTable
- Die Datenbank ist
Paradox 7 (
BDE)
- intCustID ist wirklich nur ein Integer-Feld, kein AutoInc, Index o. ä.
- Welcher zweite Satz? Meinst Du das zweite Feld (strShortname)?
Grüsse
Frank