• DİKKAT

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

Sql Sorgusunda karakter sayısına göre filtreleme

  • Konbuyu başlatan Konbuyu başlatan tamer42
  • Başlangıç tarihi Başlangıç tarihi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Kanak dosyada ilk sütununun satırlarında aşağıdaki gibi veriler bulunuyor

burada karakter sayısına göre filtreleme yaptırabilir miyiz?

Örnek: satırdaki veri içeriğinde 4'den fazla "0" olanları getir gibi....
aşağıda koyu olarak işaretlenen veriler....

@120001223001110
@120001223111112
@120001223102212
@100111223001012
@021001223111102
@122201223112210


Kod:
Set WB = ThisWorkbook

myPath = WB.Path

yol = myPath & "\Data.xlsx"

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

    sorgu = "Select F1 From [Rapor$] Where F1 ......"

    RS.Open sorgu, Con, 3, 1

teşekkürler,
iyi Çalışmalar.
 
Son düzenleme:
Merhaba,
Kanak dosyada ilk sütununun satırlarında aşağıdaki gibi veriler bulunuyor

burada karakter sayısına göre filtreleme yaptırabilir miyiz?

Örnek: satırdaki veri içeriğinde 4'den fazla "0" olanları getir gibi....
aşağıda koyu olarak işaretlenen veriler....

@120001223001110
@120001223111112
@120001223102212
@100111223001012
@021001223111102
@122201223112210


Kod:
Set WB = ThisWorkbook

myPath = WB.Path

yol = myPath & "\Data.xlsx"

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

    sorgu = "Select F1 From [Rapor$] Where F1 ......"

    RS.Open sorgu, Con, 3, 1

teşekkürler,
iyi Çalışmalar.

Kod:
Set WB = ThisWorkbook

myPath = WB.Path

yol = myPath & "\Data.xlsx"

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

sorgu = "SELECT F1 FROM [Rapor$] WHERE LEN(F1) - LEN(REPLACE(F1, '0', '')) > 4"

RS.Open sorgu, Con, 3, 1
 
alternatif olarak
sorgu = "Select F1 From [sayfa1$] Where F1 like '%0%0%0%0%0%'"
 
Kod:
Set WB = ThisWorkbook

myPath = WB.Path

yol = myPath & "\Data.xlsx"

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

sorgu = "SELECT F1 FROM [Rapor$] WHERE LEN(F1) - LEN(REPLACE(F1, '0', '')) > 4"

RS.Open sorgu, Con, 3, 1
Musa Hocam çok teşekkürler,
kayıtları hücreye aldıktan sonra;
WST.Range("A1").CopyFromRecordset RS
satırında ekli görseldeki hata mesajını veriyor.
aslında hücrelere satırları kopyalıyor, ondan sonra hata mesajını veriyor.
bunun sebebi ne olabilir?

iyi çalışmalar.
 

Ekli dosyalar

  • 123.jpg
    123.jpg
    141 KB · Görüntüleme: 9
Musa Hocam çok teşekkürler,
kayıtları hücreye aldıktan sonra;
WST.Range("A1").CopyFromRecordset RS
satırında ekli görseldeki hata mesajını veriyor.
aslında hücrelere satırları kopyalıyor, ondan sonra hata mesajını veriyor.
bunun sebebi ne olabilir?

iyi çalışmalar.
Kod:
Sub CopyDataToWorksheet()
    Dim WB As Workbook
    Dim Con As Object
    Dim RS As Object
    Dim WST As Worksheet
    Dim myPath As String
    Dim yol As String
    Dim sorgu As String
    Dim rowCounter As Integer
    
    ' Set reference to the workbook and worksheet
    Set WB = ThisWorkbook
    Set WST = ActiveSheet
    
    ' Set the path to the Excel file
    myPath = WB.Path
    yol = myPath & "\Data.xlsx"
    
    ' Create and open the connection
    Set Con = CreateObject("ADODB.Connection")
    Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
             yol & ";Extended Properties=""Excel 12.0;HDR=No"""
    
    ' Create and execute the SQL query
    sorgu = "SELECT F1 FROM [Rapor$] WHERE LEN(F1) - LEN(REPLACE(F1, '0', '')) > 4"
    Set RS = CreateObject("ADODB.Recordset")
    RS.Open sorgu, Con, 3, 1
    
    ' Clear the target range before copying data
    WST.Range("A1").Clear
    
    ' Copy data row by row
    rowCounter = 1
    Do Until RS.EOF
        WST.Cells(rowCounter, 1).Value = RS.Fields(0).Value
        rowCounter = rowCounter + 1
        RS.MoveNext
    Loop
    
    ' Close the recordset and connection
    RS.Close
    Con.Close
End Sub
denermisiniz.
 
Geri
Üst