掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
テーブルにレコード追加をするには (ID:43989)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
KHE00221 さんのコードは、 > 複数のレコードを書き込む為のものではない なのですよ。 > 空のテーブルは既に作成してあり、テーブルに追加するため だったら、AppendRecord ではなく Table1.Append; Table1.FieldByName('フィールド名1').AsString := 値; Table1.FieldByName('フィールド名2').AsString := 値; ... Table1.Post; ってやるのがいいかと思います。 以下は、DATA.XLSX (Excel) と全く同じ構造の DATA.DBF (Paradox) へ データを登録するコードです (CODE と NAME という2 つのフィールドがあります)。 uses ..., DBTables, ADODB; procedure TForm1.Button1Click(Sender: TObject); var Table: TTable; ADOT: TADOTable; ParadoxFile, ExcelFile: string; ConnnectionParam: TStringList; begin ParadoxFile := '.\DATA.DBF'; ExcelFile := '.\DATA.XLSX'; ADOT := TADOTable.Create(nil); Table := TTable.Create(nil); try // Excel(XLSX) の設定 ConnnectionParam := TStringList.Create; try ConnnectionParam.Values['Provider' ] := 'Microsoft.ACE.OLEDB.12.0'; ConnnectionParam.Values['Data Source' ] := ExcelFile; ConnnectionParam.Values['Extended Properties'] := 'Excel 12.0'; ADOT.ConnectionString := StringReplace(ConnnectionParam.Text, #$0D#$0A, ';', [rfReplaceAll]); finally ConnnectionParam.Free; end; ADOT.TableName := '[Sheet1$]'; // XLSX の Sheet1 をテーブルとみなす // Paradox の設定 Table.TableName := ParadoxFile; // オープン ADOT.Open; Table.Open; while not ADOT.Eof do begin Table.Append; // 追加モード Table.FieldByName('CODE').AsInteger := ADOT.FieldByName('CODE').AsInteger; Table.FieldByName('NAME').AsString := ADOT.FieldByName('NAME').AsString; Table.Post; // 登録 ADOT.Next; end; // クローズ Table.Close; ADOT.Close; finally Table.Free; ADOT.Free; end; end; [データセットについて:インデックス (DocWiki)] http://docwiki.embarcadero.com/RADStudio/ja/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%EF%BC%9A%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.