DelphiからMicrosoft Accessデータベースに少しのコードを書き込もうとしています。私はTStringGridからデータを取得しています。最初の列にはItemIDがあり、2列目には数量があります。私はそれがTStringGridをループし、私のデータベース内のreperate行として各行を保存し、すべての列にそれとともに注文IDを保存したい(注文IDは、各注文について同じままで、変更する必要はない)。MS Accessデータベース(Delphi)への書き込みに関する問題
"Project Heatmat.exe raised an exception class EVarientInvalidArgError with message 'Invalid Argument'. Process Stopped."
を言うどの実行しているとき、私はエラーを取得しています、それは私にこのエラーを与えている、なぜ私が理解できない、と私はまだコーディングで非常によくないよおそらく見ることができるように。どんな助けもありがとう!
ありがとうございます。
procedure TCreateNewOrder.btnSaveClick(Sender: TObject);
var
intNumber, count : integer;
begin
Count:= 0;
if messagedlg ('Are you sure?', mtWarning, [mbyes, mbno], 0) = mryes then
begin
with HeatmatConnection.HeatmatDatabase do
begin
intNumber:= TBLOrder.RecordCount;
TBLOrder.Append;
TBLOrder['CustomerID']:= CompanyName.ItemIndex+1;
TBLOrder['OrderID']:= intNumber +1;
for count:= 1 to StringGrid1.RowCount-1 do
begin
TBLOrderedItem.Append;
TBLOrderedItem['OrderID']:= intNumber+1;
TBLOrderedItem['ItemID']:= StringGrid1.Cells[1, count];
TBLOrderedItem['Quantity']:= StringGrid1.Cells[2, count];
TBLOrderedItem.Post;
end;
end;
end;
end;
フィールド 'Quantity'はいくつかの数値型ですので、 'TBLOrderedItem [' Quantity ']:= StrToInt(StringGrid1.Cells [2、count]);' – ain
try TBLOrderedItem.FieldByName(' Quantity ' ).AsString:= StringGrid1.Cells [2、count] '。数値の場合は 'ItemID'と同じです。ところで、あなたは 'TBLOrder.Post'を忘れています。 – kobik
これはうまくいきました!このプログラムは私にとても苦痛を与えています!私はエラーの後にエラーが発生し続ける! – Craig