[Yardım]  makro içinde çoklu koşul verme

Excel sayfalarında kullandığımız yerleşik fonksiyonlar ya da kendi yazabileceğiniz fonksiyonlar ile ilgili bilmek istedikleriniz, sorunlar ve çözümleri

makro içinde çoklu koşul verme

İleti#1)  MasterofOmk » 09 Tem 2019 15:29

Kolay gelsin arkadaşlar foruma ilk defa kayıt açıyorum. Genelde açılan konular çok yardımcı oluyor. Hemen konuya gireyim. Makro ile sql veritabanından verileri çektim. Ancak sql sorgusunda sadece tek where sorgusu yapabiliyorum. Yani tarih aralığı, müşteri ve irsaliye no değerleri ile kayıt getirmek istiyorum. Bunların üçünü de belirtebilirim, sadece tarih, müşteri veya irsaliye no yazabilirim. where koşulunun doldurmadığım alanları görmeden çalışmasını ve ona göre veri getirmesini sağlamaya çalışıyorum. Umarım anlatabilmişimdir. Konu daha önceden açılmışmıdır bilmiyorum bu tarz bir talep bulamadım. Ya da konuyu doğru yere mi açtım emin de değilim. Yardımcı olacak arkadaşlara şimdiden çok teşekkürler
Kullanıcı avatarı
MasterofOmk
İsimsiz Üye
 
Kayıt: 27 Mar 2019 22:06
Meslek: analist
Yaş: 42
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: beylikdüzü

Cevap: makro içinde çoklu koşul verme

İleti#2)  ahmetilhan282 » 09 Tem 2019 23:13

dosyanızı ekleyebilir misiniz?
Kullanıcı avatarı
ahmetilhan282
Site Dostu
 
Adı Soyadı:Ahmet İLHAN
Kayıt: 15 Oca 2014 00:04
Konum: Adana
Meslek: Güvenlik
Yaş: 29
İleti: 873
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Mersin

Cevap: makro içinde çoklu koşul verme

İleti#3)  MasterofOmk » 10 Tem 2019 14:30

db sizde olmadığı çalışmayacaktır. Ancak sanırım ne anlatmak istediğimi anlamanıza yardımcı olur. Şimdiden teşekkürler.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
MasterofOmk
İsimsiz Üye
 
Kayıt: 27 Mar 2019 22:06
Meslek: analist
Yaş: 42
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: beylikdüzü

Cevap: makro içinde çoklu koşul verme

İleti#4)  ahmetilhan282 » 15 Tem 2019 18:52

Bu kodları deneyin
Kod: Tümünü seç
Public Sub Bob_Irs()

Dim cnPubs  As ADODB.Connection
Set cnPubs = New ADODB.Connection
Dim strConn As String
cnPubs.Open strConn


Dim rsPubs As ADODB.Recordset
Set rsPubs = New ADODB.Recordset
Dim tarih As String, irsno As String
Dim irsno1 As String
Dim firma As String

If Range("B2") <> "" And Range("C2") <> "" Then
    tarih = " and convert(datetime,convert(nvarchar(10),bobirs.irsaliye_tarih,104),104) between convert(datetime,convert(nvarchar(10),'" & Range("B2") & "' ,104),104)   and   convert(datetime,convert(nvarchar(10),'" & Range("C2") & "' ,104),104)"
ElseIf Range("B2") <> "" Then
    tarih = " and convert(datetime,convert(nvarchar(10),bobirs.irsaliye_tarih,104),104) = convert(datetime,convert(nvarchar(10),'" & Range("B2") & "' ,104),104)"
Else
    tarih = ""
End If

If Range("B4") <> "" And Range("C4") <> "" Then
    irsno = " AND bobirs.belge_no BETWEEN " & Range("B2") & " and " & Range("C4")
ElseIf Range("B4") <> "" Then
    irsno = " AND bobirs.belge_no= '" & Range("B4") & "' "
Else
    irsno = ""
End If

firma = Sheets(1).FirmaAdi


With rsPubs
.ActiveConnection = cnPubs

Set rsPubs = cnPubs.Execute("Select bobirs.gelen_irsaliye_no as irsID ,bobirs.belge_no as irsaliyeno,bobgiris.stok_nox as stokid, tedarikci.firma_kodu,tedarikci.firma_ad,convert(datetime,convert(nvarchar(10),bobirs.irsaliye_tarih,104),104) as irstarihi,bobgiris.bobin_no,irsdetay.firma_bobin_no, bobirs.irsaliye_kg as gelentopkg,bobgiris.giren_miktar,dbo.fnCharPad(month(bobirs.irsaliye_tarih),0,0,2) as ayid,aylar.ad as ayadi,dbo.fnCharPad(month(bobirs.irsaliye_tarih),0,0,2) +' - '+aylar.ad as donem,depo.deposu,bobcins.cins_ad,bobkart.bobin_en,bobkart.gram " _
& " from gelen_irsaliye as bobirs inner join " _
& " m_firma as tedarikci on bobirs.sirket_kod=tedarikci.sirket_kod and bobirs.firma_no=tedarikci.firma_no inner join " _
& " gelen_irsaliye_detay as irskalem on bobirs.gelen_irsaliye_no=irskalem.gelen_irsaliye_no and bobirs.sirket_kod=irskalem.sirket_kod inner join " _
& " bobin as irsdetay on bobirs.sirket_kod=irsdetay.sirket_kod and bobirs.gelen_irsaliye_no=irsdetay.girsaliye_no inner join " _
& " (SELECT sirket_kod, fis_no, stok_nox, bobin_no, giren_miktar, bobin_metre,ambar_no " _
& " FROM bobin_hareket " _
& " where (islem_tip = 1)) as bobgiris on irsdetay.sirket_kod=bobgiris.sirket_kod and irsdetay.stok_nox=bobgiris.stok_nox and irsdetay.girsaliye_no=bobgiris.fis_no and irsdetay.bobin_no=bobgiris.bobin_no inner join " _
& " lkaylar as aylar on MONTH(bobirs.irsaliye_tarih)=aylar.kod inner join " _
& " ( SELECT nox, sirket_kod, ad as deposu FROM masraf_ana " _
& " where (sirket_kod = 2) And (oluklu = 9) And tip = 1 ) as depo on bobgiris.ambar_no=depo.nox inner join " _
& " stok_ana as bobkart on bobgiris.sirket_kod=bobkart.sirket_kod and bobgiris.stok_nox=bobkart.nox inner join " _
& " (SELECT grup_no, cins_no, cins_ad, cins_kisa_ad, cins_kod FROM cins " _
& " where (sirket_kod = 2) And (depo_no = 1) And (grup_no = 2)) as bobcins on bobkart.grup=bobcins.grup_no and bobkart.cins=bobcins.cins_no " _
& " where bobirs.sirket_kod=2 and bobirs.irsaliye_tip=201 " & irsno & tarih)


'Hücre başlıklarını almak için
For i = 0 To rsPubs.Fields.Count - 1
                Sheets(2).Cells(1, i + 1).Value = rsPubs.Fields(i).Name
            Next i
           
    If Not rsPubs.EOF Then
             
    If Sheets(2).Range("A2") = "" Then
    Sheets(2).Range("A2").CopyFromRecordset rsPubs
           
     Else
    Sheets(2).Range("A2", "XFD1048576").Clear
    Sheets(2).Range("A2").CopyFromRecordset rsPubs
     End If
   
         Else
        MsgBox "Kayıt Bulunamadı", vbCritical
        End If
       
              rsPubs.Close
       
    End With


   cnPubs.Close
    Set rsPubs = Nothing
    Set cnPubs = Nothing
   
   
End Sub
Kullanıcı avatarı
ahmetilhan282
Site Dostu
 
Adı Soyadı:Ahmet İLHAN
Kayıt: 15 Oca 2014 00:04
Konum: Adana
Meslek: Güvenlik
Yaş: 29
İleti: 873
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Mersin

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: makro içinde çoklu koşul verme

İleti#5)  MasterofOmk » 23 Tem 2019 12:04

Değerli ahmetilhan bey,
Yardımınız için çok teşekkür ederim.
Bu kodlar hem işimi gördü hem de sayenizde bir kaç şey öğrendim. Ne kadar teşekkür etsem azdır.
Kullanıcı avatarı
MasterofOmk
İsimsiz Üye
 
Kayıt: 27 Mar 2019 22:06
Meslek: analist
Yaş: 42
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: beylikdüzü


Forum Kullanıcı Tanımlı Fonksiyonlar ( KTF )

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe