2012-06-07 2 views
3

Я только начал работать с FoxPro в школе, и у меня есть несколько проблем, когда я пытаюсь создать форму, которая должна добавлять данные для многосетевых таблиц (без дизайнера).Visual FoxPro Multi Table Form

Я использую команду APPEND, но это, кажется, добавляет данные только в основную таблицу.

Любые предложения по решению приветствуются.

Благодаря

ответ

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 формы, вы можете гарантировать, что они открыты первые, выполнив следующие действия ДО выше Append/Заменить

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

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

и т.д ...

Кроме того, VFP не поддерживает 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 
+0

+1 за предложение INSERT – stuartd