Sorunla ilgili olabilecek tüm konuları incelediğimi belirterek sorunumu yazıyorum

FireBird 4 Adet Tablom var,
1. Yıl
2. Dönem
3. Okullar
4. Öğrenciler şeklinde.
Öğrencileri xls dosyasından EMS import ile alıyorum. İmport tamamlanınca tüm öğrencilerin mesela Türkçe dersinin Toplamını almak ve Okullar tablosundaki ilgili okulun TürkçeOrtalama alanına göndermek istiyorum ve gönderiyorum, buraya kadar sorun yok .
Lakin import tamamlandıktan sonra başka bir okulu seçiyorum öğrenci ve ders notlarının bulunduğu xls dosyasını import ettiğimde önceki okulun toplamını alıyor. Denemediğim yöntem kalmadı query'yi, table'i herşeyi close, open ile refresh yapmama rağmen bir türlü çözemedim. Query'de Kullandığım kod
Kod: Tümünü seç
SELECT OKULLAR.OKULADI, SUM(OGRENCILER.TURKCE),SUM(OGRENCILER.MATEMATIK),SUM(OGRENCILER.FENBILIMLERI),SUM(OGRENCILER.INKILAPTARIHI),SUM(OGRENCILER.INGILIZCE),SUM(OGRENCILER.DINKULTURU) FROM OGRENCILER,OKULLAR,DONEM WHERE DONEM.DONEM_ID=OKULLAR.DONEM_ID AND OKULLAR.OKUL_ID=OGRENCILER.OKUL_ID
GROUP BY OKULLAR.OKULADI,DONEM.DONEMADI
EmS import wizardın after importunda kullandığım kod.
Kod: Tümünü seç
var
s,t :integer;
begin
IBQuery1.close; IBQuery1.open;
Form2.TableOkul.edit;
i := (Sender as TQImport3).TotalRecCount;
Form2.TableOkul.FieldByName('OGRENCISAYISI').value := i;
Form2.TableOkul.Post;
Form2.IBTransaction1.CommitRetaining;
Label1.Visible := True;
Label1.Caption := Form2.TableOkul.FieldByName('OGRENCISAYISI').value;
s:= Form2.TableOkul.FieldByName('OGRENCISAYISI').value;
Form2.TableOkul.edit;
// IBQuery1.Close; IBQuery1.open;
Form2.TableOkul.FieldByName('TURKDONEMTOPLAM').Value := IBQuery1sum.Asinteger;
t := IBQuery1sum.Asinteger;
//M := IBQuery2MatToplam.Asinteger;
begin
Form2.TableOkul.Fieldbyname('TURKCE').value := T /s;
Form2.TableOkul.Post;
Form2.IBTransaction1.CommitRetaining;
IBQuery1.Close;IBQuery1.open;
QUERY'leri perişan ettim orada olmadı şurada , burada olmadı orada aç kapa denemediğim yer kalmadı. Table'ın after post da dahil.
query code da geçen diğer sum ları sonradan ekledim,şimdilik kullanmıyorum, 1nci dersi halledebilsem diğerlerini ekleyeceğim
Tamam bundan vazgeçeyim, kayıtlar import edildikten sonra hesaplamayı yapayım dedim.
Kod: Tümünü seç
Form2.TableOkul.First;
while not Form2.TableOkul.Eof do
begin
Form2.TableOkul.edit;
// IBQuery2.Close; IBQuery2.open;
Form2.TableOkul.FieldByName('TURKDONEMTOPLAM').Value := ibquery2.FieldByName('SUM').Asinteger;
s:= Form2.TableOkul.FieldByName('OGRENCISAYISI').value;
T := ibquery2.FieldByName('SUM').Asinteger;}
//M := IBQuery2MatToplam.Asinteger;
Form2.TableOkul.Fieldbyname('TURKCE').value := T /s;
Form2.TableOkul.post; Form2.TableOkul.Next;
//Form2.IBTransaction1.CommitRetaining;
//IBQuery2.Close; IBQuery2.open;
Lütfen yardımlarınızı bekliyorum.
Konuyu yanlış yere açtım galiba. Buraya yenisini açıyorum.