1 sayfadan 1. sayfa
makro içinde çoklu koşul verme

Tarih:
09 Tem 2019 15:29
MasterofOmk
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
Cevap: makro içinde çoklu koşul verme

Tarih:
09 Tem 2019 23:13
ahmetilhan282
dosyanızı ekleyebilir misiniz?
Cevap: makro içinde çoklu koşul verme

Tarih:
10 Tem 2019 14:30
MasterofOmk
db sizde olmadığı çalışmayacaktır. Ancak sanırım ne anlatmak istediğimi anlamanıza yardımcı olur. Şimdiden teşekkürler.
Cevap: makro içinde çoklu koşul verme

Tarih:
15 Tem 2019 18:52
ahmetilhan282
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
Cevap: makro içinde çoklu koşul verme

Tarih:
23 Tem 2019 12:04
MasterofOmk
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.