• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel Query de SQL formulune ekleme

  • Konbuyu başlatan Konbuyu başlatan lapot
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Temmuz 2006
Mesajlar
239
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

  • CaptureSQL error.JPG
    CaptureSQL error.JPG
    29.8 KB · Görüntüleme: 22
Son düzenleme:
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:
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",.................
 
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'}))
 
Ç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
 
Teşekkürler deneme yapıp dizede bilgi vericem
 
Geri
Üst