Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   SQL (http://www.excel.web.tr/forumdisplay.php?f=66)
-   -   Excel Query de SQL formulune ekleme (http://www.excel.web.tr/showthread.php?t=159931)

lapot 18-11-2016 14:07

Excel Query de SQL formulune ekleme
 
1 Eklenti(ler)
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"."Tran sactionNo") 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]

lapot 21-11-2016 11:28

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

Levent Menteşoğlu 14-12-2016 20:35

Aşağıdaki gibi deneyin.

SELECT "AcFeeHistory"."FeeEarnerCode", "AcFeeHistory"."CostsAllocated", "AcFeeHistory"."Period", DATENAME(month,DATEFROMPARTS(2016,IIF("AcFeeHistor y"."Period"<10,"AcFeeHistory"."Period"+3,"AcFeeHis tory"."Period"-9),1)), "AcFeeHistory"."Year",.................

bulents 02-03-2017 11:11

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'}))

asri 02-03-2017 11:30

Ç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("SERVER IP", "DATABASEADI", "KULLANICIADI", "SIFRESI")
    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


bulents 06-03-2017 10:41

Teşekkürler deneme yapıp dizede bilgi vericem


Saat 22:59

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.