3

学校で FoxPro を使い始めたばかりですが、データを複数のテーブル (デザイナーなし) に追加する必要があるフォームを作成しようとすると、いくつかの問題が発生します。

APPEND コマンドを使用していますが、これはメイン テーブルにのみデータを追加するようです。

解決策の提案は大歓迎です。

ありがとう

4

1 に答える 1

3

追加を行う前に、ワークエリア (エイリアスまたはテーブル) を明示的に選択する必要があります。たとえば、「CLICK」イベントでは、次のようなことを行います...

SELECT FirstTableName
append blank
replace FieldW with "something",;
        FieldX with 1.23,;
        FieldY with SomeVariable,;
        FieldZ with Thisform.SomeTextbox.Value

SELECT SecondTableOrAlias
append blank
replace FieldA with Thisform.AnotherTextbox.Value,;
        FieldB with Thisform.SomeCheckBox.Value

SELECT ThirdTableOrAlias
append blank
replace ...

テーブルがフォームの DataEnvironment からまだ開かれていない場合は、上記の追加/置換の前に次の操作を行って、テーブルが最初に開かれていることを確認することをお勧めします。

if not used( "FirstTableName" )
   select 0
   use FirstTableName
ENDIF 

if not used( "SecondTableOrAlias")
   select 0
   use SecondTableOrAlias
endif 

等...

さらに、VFP DOES は SQL もサポートしているため、次のことができます。

insert into FirstTableName ;
   ( FieldW,;
     FieldX,;
     FieldY,;
     FieldZ ;
   );
   values ;
   ( "something",;
     1.23,;
     SomeVariable,;
     Thisform.SomeTextbox.Value ;
   )

そして、SQL-Select 経由でデータをクエリするには

select * from FirstTableName ;
   where FieldW = "something" ;
   into cursor C_SomeTempResultSet READWRITE
于 2012-06-07T18:47:58.427 に答える