• DİKKAT

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

Ado SQL sorgusunda split fonksiyonu kullanımı

Katılım
29 Ocak 2024
Mesajlar
277
Excel Vers. ve Dili
Office 2016
Merhablar,

Aşağıdaki sorduda,
split fonksiyonu kullanımını nasıl düzenleyebiliriz?

yardımlarınız için şimdiden teşekkür ederim.

iyi çalışmalar.

Kod:
Set Con = VBA.CreateObject("Adodb.Connection")

yol = ThisWorkbook.FullName

Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=No"""

sorgu = "Select F1, Split([F3], '_')(0)  From [Panel$J2:AF] "
 
Sadece ilk eleman mi alınacak?
Eğer öyleyse split e gerek yok ınstr fonksiyonu ve len yeterli dir
 
Bildiğim kadarıyla exceldeki sorgularda spliti doğrudan kullanamıyoruz
Önce tüm veriyi alıp sonra parçalayabilirsiniz
Tabi yanılıyor da olabilirim.
 
Merhaba,

Deneyiniz.

Kod:
sorgu = "Select F1, Mid(F3, Instr(F3, ' ') + 1, " & _
        "Instr(Instr(F3, ' ') + 1, F3, ' ') - Instr(F3, ' ') - 1) As [F3 text] " & _
        "From [Panel$J2:AF] "
 
Merhaba,

Deneyiniz.

Kod:
sorgu = "Select F1, Mid(F3, Instr(F3, ' ') + 1, " & _
        "Instr(Instr(F3, ' ') + 1, F3, ' ') - Instr(F3, ' ') - 1) As [F3 text] " & _
        "From [Panel$J2:AF] "
Teşekkür ederim Hocam
1. elamanın alımında gayet güzel çalışıyor.
Yalnız ilk elaman değil, bunun yanında 2. elaman da alınacağı zaman mümkün olabilir mi?
iyi akşamlar.
 
Standart olarak sadece 2 eleman varsa o halledilebilir ama değişkende bazen 1 bazen 10 eleman olabiliyorsa dediğim gibi veri alındıktan sonra bölünmesi daha uygun olur
 
Aşağıdaki gibi yazarsanız olacaktır.

Kod:
sorgu = "Select F1, '" & Split([F3], '_')(0) & "' From [Panel$J2:AF] "
 
Aşağıdaki gibi yazarsanız olacaktır.

Kod:
sorgu = "Select F1, '" & Split([F3], '_')(0) & "' From [Panel$J2:AF] "
Erdem Hocam ilginize teşekkürleri yalnız bu şekilde olmadı.
ekli görseldeki gibi sorgu satırı kırmızı oldu.

iyi Çalışmalar
Kod:
Sub Test()
Dim Con As Object

sorgu = "Select F1, 'Split([F3], '_')(0) & " ' From [Panel$J2:AF] "


Set Con = VBA.CreateObject("Adodb.Connection")

yol = ThisWorkbook.FullName

Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
yol & ";extended properties=""Excel 12.0;hdr=No"""


Set RS = Con.Execute(sorgu)


Sayfa7.Range("A2").CopyFromRecordset RS


End Sub


 
Benim dediğim gibi yazmamışsınız.
 
Benim verdiğim cevap ile sizin son yazdığınız kodlar birbirine uyuyor mu?
Aşağıdaki ilk sıradaki benim verdiğim sorgu, ikincisi sizin koddaki sorgu.
Sizce sorgular aynı mı?

sorgu = "Select F1, '" & Split([F3], '_')(0) & "' From [Panel$J2:AF] "

sorgu = "Select F1, 'Split([F3], '_')(0) & " ' From [Panel$J2:AF] "
 
Benim verdiğim cevap ile sizin son yazdığınız kodlar birbirine uyuyor mu?
Aşağıdaki ilk sıradaki benim verdiğim sorgu, ikincisi sizin koddaki sorgu.
Sizce sorgular aynı mı?

sorgu = "Select F1, '" & Split([F3], '_')(0) & "' From [Panel$J2:AF] "

sorgu = "Select F1, 'Split([F3], '_')(0) & " ' From [Panel$J2:AF] "

Erdem Hocam sizin verdiğiniz sorguyu olduğu gibi kopyalayıp modüle yapıştırıyorum,
ekli ekran görüntüsünde olan hata mesajını vermekte;

https://dosya.co/666nuk9j3nhi/345.jpg.html

teşekkürler,
iyi çalışmalar.
 
Aşağıdaki yapıştırın. Sizin kod üzerinden düzeltirken burasını atlamışım.

Kod:
sorgu = "Select F1, '" & Split([F3], "_")(0) & "' From [Panel$J2:AF] "
 
F3 hücresinde bir şey yazmıyor.
Bu çalışmada nasıl bir sonuç alınacak, onu da yazar mısınız.
 
[F3] sorguda 3. sütun anlamına geliyor hocam
yani burada kast edilen C sütunundaki tüm veriler bölünecek
 
[F3] sorguda 3. sütun anlamına geliyor hocam
yani burada kast edilen C sütunundaki tüm veriler bölünecek
Özür!
[Panel$A2:E3]
sayfa1' in adı Panel olacaktı...
yada sorguyu [Sayfa1$A2:E3] olarak değiştirilebilir.

3. satıra kadar verilerin alınması yeterlidir.

iyi çalışmalar.
 
Geri
Üst