Excel Query de SQL formulune ekleme

Katılım
4 Temmuz 2006
Mesajlar
239
Altın Üyelik Bitiş Tarihi
20/04/2019
Merhaba arkadaslar

Dosyama Excel Query ile very tablolarinda verileri otamatik olarak aktariyorum asagidaki code ile.

SELECT "AcFeeHistory"."FeeEarnerCode", "AcFeeHistory"."CostsAllocated", "AcFeeHistory"."Period", "AcFeeHistory"."Year", "AcFeeHistory"."BillReference", "AllMatters"."EntityRef", "AllMatters"."Number", "AllMatters"."FeeEarnerRef", "AllMatters"."PartnerRef", "AllMatters"."Description", "AllMatters"."CaseType", "AcFeeHistory"."BillDate", "Entities"."Name", "Users"."FullName", "Entities"."ShortCode"'',

FROM ("Partner"."dbo"."AllMatters" "AllMatters" INNER JOIN (("Partner"."dbo"."AcFeeHistory" "AcFeeHistory" INNER JOIN "Partner"."dbo"."Ac_Billbook" "Ac_Billbook" ON "AcFeeHistory"."TransactionNo"="Ac_Billbook"."TransactionNo") INNER JOIN "Partner"."dbo"."Users" "Users" ON "AcFeeHistory"."FeeEarnerCode"="Users"."Code") ON ("AllMatters"."EntityRef"="Ac_Billbook"."EntityRef") AND ("AllMatters"."Number"="Ac_Billbook"."MatterRef")) INNER JOIN "Partner"."dbo"."Entities" "Entities" ON "Ac_Billbook"."EntityRef"="Entities"."Code"

Koddaki "AcFeeHistory"."Period" stunu aylari sayi olarak veriyor , yani 1,2,3 diye. Benim vergi ayim April'den basliyor yani period1 = April, period 2 = May ...etc.

Bu dosyaya yeni bir stun eklemek istiyorum Periodu ay olarak yazdirmak icin , yukardaki koda yeni bir kismi ekledim SWITCH komutuyla FROM kisminin uzerine fakat hata veriyor.hatanin resmini ekledim.

Switch komutumda asagida, sizce nerede hata yapiyorum yardim ederseniz cok sevinirim.

Saygilar sunuyorum

Switch ("AcFeeHistory.Period" = 1, "April","AcFeeHistory.Period" = 2, "May","AcFeeHistory.Period" = 3, "June","AcFeeHistory.Period"= 4, "July",
"AcFeeHistory.Period" = 5, "August","AcFeeHistory.Period" = 6, "September","AcFeeHistory.Period" = 7, "October","AcFeeHistory.Period" = 8, "November",
"AcFeeHistory.Period" = 9, "December","AcFeeHistory.Period" = 10, "January","AcFeeHistory.Period" = 11, "February","AcFeeHistory.Period" = 12, "March") as [Month]
 

Ekli dosyalar

Son düzenleme:
Katılım
4 Temmuz 2006
Mesajlar
239
Altın Üyelik Bitiş Tarihi
20/04/2019
Merhaba tekrar, bu konuda yardimci olcak kimese varmi acaba?


kodu bir ay olarak degistirdim bu sekilde yine hata veriyor


Switch ("AcFeeHistory"."Period" = 1, "April") as [Month]

saygilar sunuyorum
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

SELECT "AcFeeHistory"."FeeEarnerCode", "AcFeeHistory"."CostsAllocated", "AcFeeHistory"."Period", DATENAME(month,DATEFROMPARTS(2016,IIF("AcFeeHistory"."Period"<10,"AcFeeHistory"."Period"+3,"AcFeeHistory"."Period"-9),1)), "AcFeeHistory"."Year",.................
 
Katılım
22 Şubat 2005
Mesajlar
10
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
04-08-2021
Merhaba arkadaşlar

VBA ile aşağıdaki Query sorgusunu nasıl yapabilirim destek olmanız rica.

Teşekkürler ve Saygılar.

SELECT hesplan_0.hes_no, muhfis_detay_0.aciklama, hesplan_0.hes_ad, muhfis_detay_0.borc_tutar, muhfis_detay_0.alacak_tutar FROM UYUM2007.PUB.hesplan hesplan_0, UYUM2007.PUB.muhfis_detay muhfis_detay_0 WHERE muhfis_detay_0.firma_kod = hesplan_0.firma_kod AND muhfis_detay_0.hes_no = hesplan_0.hes_no AND ((hesplan_0.firma_kod='ELKAY-15') AND (muhfis_detay_0.fis_tarih Between {d '2017-01-01'} And {d '2017-01-31'}))
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Çalışan bir koddan düzenleme yaptım. Kodu denemedim.

Aşağıdaki şekilde deneyiniz.

VBA/ Tools/ References/ Microsoft ActiveX Data Objects 6.1 Library seçili olmalı.

Kırmızı alanları sizdeki bilgilere göre güncelleyiniz.

Kod:
Option Explicit
Private CN As ADODB.Connection
Dim barkod, masasi, kart As String
Dim sayi As Integer

Dim RS As ADODB.Recordset
Dim Field As ADODB.Field
Dim Col As Long
Dim s As String
 
Dim SQL As String
Dim Connected As Boolean
 
Function Disconnect()
    CN.Close
End Function

Sub SQLsorgu()
    Connected = Connect([COLOR=Red]"SERVER IP", "DATABASEADI", "KULLANICIADI", "SIFRESI"[/COLOR])
    If Connected Then
        Set RS = New ADODB.Recordset
      
        SQL = ""
        SQL = SQL + " SELECT hesplan_0.hes_no, muhfis_detay_0.aciklama, hesplan_0.hes_ad, muhfis_detay_0.borc_tutar, muhfis_detay_0.alacak_tutar"
        SQL = SQL + " FROM UYUM2007.PUB.hesplan hesplan_0, UYUM2007.PUB.muhfis_detay muhfis_detay_0 "
        SQL = SQL + " WHERE muhfis_detay_0.firma_kod = hesplan_0.firma_kod AND muhfis_detay_0.hes_no = hesplan_0.hes_no AND ((hesplan_0.firma_kod='ELKAY-15') AND (muhfis_detay_0.fis_tarih Between {d '2017-01-01'} And {d '2017-01-31'}))"
      
        RS.Open SQL, CN, adOpenStatic, adLockReadOnly, adCmdText
     
        If RS.RecordCount = 0 Then
             MsgBox "Kayıt bulunamadı."
        Else
          If RS.State Then
             Col = 1
             For Each Field In RS.Fields
               Cells(5, Col) = Field.Name
               Col = Col + 1
             Next Field
             Cells(6, 1).CopyFromRecordset RS
             Set RS = Nothing
          End If
       End If
        Call Disconnect
   End If
            
End Sub


Function Connect(Server As String, Database As String, kullanici As String, sifre As String) As Boolean
 
    Set CN = New ADODB.Connection
    On Error Resume Next
 
    With CN
      .ConnectionString = "Provider=SQLOLEDB.1;" & _
                             "Persist Security Info=False;" & _
                             "Initial Catalog=" & Database & ";" & _
                             "Data Source=" & Server & ";" & _
                             "User ID=" & kullanici & ";Password=" & sifre & ";"
        .Open
    End With
    
    ' Check connection state
    If CN.State = 0 Then
        Connect = False
    Else
        Connect = True
    End If
 
End Function
 
Katılım
22 Şubat 2005
Mesajlar
10
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
04-08-2021
Teşekkürler deneme yapıp dizede bilgi vericem
 
Üst