AccessTr.neT

Tam Versiyon: Satırdaki Max Değeri Ve Firmayı Bulmak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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?
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.
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.
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.
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.
(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?
Sayfalar: 1 2