Skip to main content

AccessTr.neT


Satırdaki Max Değeri Ve Firmayı Bulmak

Satırdaki Max Değeri Ve Firmayı Bulmak

Çözüldü #1
Arkadaşlar ekleyeceğim programda ihale iş türüne göre, fiyatı en az veren firmanın;
ismini, adresini ve verdiği tutarı "tbl_kim" deki ilgili kısımlara nasıl getirebiliriz?
.rar DTPmax.rar (Dosya Boyutu: 174,35 KB | İndirme Sayısı: 1)
Cevapla
#2
Merhaba, bu tür sorularda, tbl_ihtiyac tablosunda "asdasd" isminde firma olmamalı ve firma1,firma2 ve firma3 alanlarının tamamı dolu olmalı. "asdasd" diye bir firma firmalar tablosunda yok.
Cevapla
#3
Tamam sayın hocam. Verileri güncelledim.

İki adet sorunum var.
Birincisi: Her ihtiyaç için max. 3 firma seçip atamalıyım. Bu işlemi ürün bazında değilde iş bazında yapmak istiyorum.
İkincisi: Raporda kullanmak üzere; İş konusu bazında en az fiyat teklifi veren firmanın: Verdiği fiyat, Adresi ve Firma adı bilgilerini Tbl_kimo ya nasıl aktarabilirim. Buradan Dlookup la almayı senaryo ettim.
.rar DTPmaxYeni.rar (Dosya Boyutu: 157,05 KB | İndirme Sayısı: 2)
Cevapla
#4
Listefirma liste kutusunun çift tıklandığında olayındaki kodu aşağıdaki ile değiştir.
On Error GoTo ListefirmaHata

If IsNull(Me.txtsecim) Or Me.txtsecim = 0 Then

Me.txtsecim = 1
Else
Me.txtsecim = Me.txtsecim + 1
End If

If txtsecim = 4 Then
Me.txtsecim = 1
End If

If IsNull(Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim)) Or Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = "" Then

    If MsgBox("ihaleye katılan " & txtsecim & ". firma, " & Me.listefirma.Column(1) & " isimli firma olarak güncellensin mi?", vbYesNo) = vbYes Then
   
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        Me.frm_ihtiyac.SetFocus
        DoCmd.GoToRecord , , acFirst
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        For x = 1 To Forms![frm_malzemeler]![frm_ihtiyac].Form.RecordsetClone.RecordCount - 1
        DoCmd.GoToRecord , , acNext
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        Next x
        DoCmd.RunCommand acCmdSaveRecord
       
    End If


Else

    If MsgBox("ihaleye katılan " & txtsecim & ". firma olan " & Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) & " isimli firma, " & Me.listefirma.Column(1) & " isimli firma olarak değiştirilsin mi?", vbYesNo) = vbYes Then
   
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        Me.frm_ihtiyac.SetFocus
        DoCmd.GoToRecord , , acFirst
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        For x = 1 To Forms![frm_malzemeler]![frm_ihtiyac].Form.RecordsetClone.RecordCount - 1
        DoCmd.GoToRecord , , acNext
        Forms![frm_malzemeler]![frm_ihtiyac].Form!("txtf" & txtsecim) = Me.listefirma.Column(1)
        Next x
        DoCmd.RunCommand acCmdSaveRecord
   
    End If

End If

Forms![frm_malzemeler]![frm_ihtiyac].Requery

ListefirmaCikis:
    Exit Sub

ListefirmaHata:
    MsgBox ("Firma Seçimleri Tamamlandı")
    Resume ListefirmaCikis
Forms![frm_malzemeler]![frm_ihtiyac].Requery

Koddaki listefirmaHata: kısmında hata var, buraya dokunmadım.

2. sorunuz için, 
SELECT TOP 1 GSorgu.ihale_id, firma, teklif, firma_adresi, firma_yetkilisi, firma_telefonu
FROM (SELECT  ihale_id, firma1 AS firma, Sum([fr1_toplam]) AS teklif
FROM tbl_ihtiyac GROUP BY ihale_id, firma1 HAVING (((ihale_id)=1))
UNION SELECT ihale_id, firma2 AS firma, Sum([fr2_toplam]) AS teklif
FROM tbl_ihtiyac GROUP BY ihale_id, firma2 HAVING (((ihale_id)=1))
UNION SELECT ihale_id, firma3 AS firma, Sum([fr3_toplam]) AS teklif
FROM tbl_ihtiyac GROUP BY ihale_id, firma3
HAVING (((ihale_id)=1)))  AS GSorgu INNER JOIN tbl_firmalar ON GSorgu.firma = tbl_firmalar.firma_adi ORDER BY GSorgu.teklif;

Kodu ihaleid=1 için en az fiyat teklifi veren firmayı gösterir, istediğiniz bu ise ihaleid düzenlemesi yapılabilir.
Cevapla
#5
Evet. Bir açık var. Oda aynı firmayı kullanıcı sürekli çift tıklarsa 3 firmaya da aynısı atıyor. Mantiken seçilen bir firmanın ikinci bir firma olarak seçilmemesi gerekiyor.
Cevapla
#6
(19/03/2020, 14:54)ozanakkaya yazdı: Kodu ihaleid=1 için en az fiyat teklifi veren firmayı gösterir, istediğiniz bu ise ihaleid düzenlemesi yapılabilir.

bu kodu firmalara göre nasıl çalıştıracağım: Tarif edebilirmisiniz?
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task