ASMET67
Altın Üye
- Katılım
- 8 Haziran 2007
- Mesajlar
- 410
- Excel Vers. ve Dili
- Excel 2016
- Altın Üyelik Bitiş Tarihi
- 30-11-2027
Exlden SQL severe göndermiş olduğum sorguda aynı verileri grouplamaya çalıtığımda kayıt seti bos geliyor. Ama sorgu içerisinden Group by ifadesini çıkarttığımızda sorgu mükerrer kayıtlarla geliyor. aynı sekilde DISTINCT ile denediğimde sorgu boş geliyor. DISTINCT kaldırdığımda sorgu çalışıyor.
Buton altında kullandığım kon ve fonksiyon kodları aşağıdaki. Yardımlarınız için teşekkürler
Buton altında kullandığım kon ve fonksiyon kodları aşağıdaki. Yardımlarınız için teşekkürler
Kod:
Private Sub Magaza()
Dim Conn As ADODB.Connection, datarec, tb_rec As ADODB.Recordset
Dim Yol As String
Dim s1 As Worksheet
Me.FrListe.Left = 80
Me.FrListe.Top = 90
veritabani = "LOGISTIC"
tablename = "[Magaza_Liste]"
'FROM [dbo].[Magaza_Liste]
FROM = veritabani & ".[dbo]." & tablename
Sorgu = "SELECT count(Id) as SayId, InfologNo,Infolog_Magaza_Adi From " & FROM & " Where Id<>0 "
If Me.OptDepoMagazasi = True Then Sorgu = Sorgu & " And DepoInfolgoNo=" & Val(DepoNumarasi)
If Me.OptDepo = True Then Sorgu = Sorgu & " And Tip='" & Me.OptDepo.Caption & "'"
If Me.OptExpres = True Then Sorgu = Sorgu & " And Tip='" & Me.OptExpres.Caption & "'"
If Me.OPtHiper = True Then Sorgu = Sorgu & " And Tip='" & Me.OPtHiper.Caption & "'"
If Me.TxtBul.Value <> "" Then Sorgu = Sorgu & " And Infolog_Magaza_Adi Like'%" & Me.TxtBul.Value & "%'"
Sorgu = Sorgu & " GROUP BY InfologNo , Infolog_Magaza_Adi"
'
Sorgu = Sorgu & " ORDER BY Infolog_Magaza_Adi"
MsgBox Sorgu
'Cells(1, 1) = Sorgu
Call LWDoldur(Me.ListView3, LWSutunAdi, Sorgu)
End Sub
Kod:
Sub LWDoldur(LWAdi As MSForms.Control, Baslik, Sorgu As Variant)
Dim Satir, Sutun As Long
Dim Bagm As ADODB.Connection
Dim KSm As ADODB.Recordset
Dim strConn As String, stsql As String
Dim gen As Long
Dim password As String
Dim user As String
Dim servername As String
Dim veritabani As String
'On Error Resume Next
veritabani = "LOGISTIC"
servername = "**.**.**.**"
user = **
password = "**"
Set Bagm = New ADODB.Connection
Set KSm = New ADODB.Recordset
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=" & servername & ";INITIAL CATALOG=" & veritabani & ";"
strConn = strConn & "UID=" & user & ";PWD=" & password
Bagm.Open strConn
LWAdi.ListItems.Clear
With LWAdi
On Error Resume Next
KSm.Close
On Error GoTo 0
' MsgBox Sorgu
KSm.Open Sorgu, Bagm, 1, 3 '= Bagm.Execute(Sorgu)
gen = 0
If Not KSm.EOF Then
.ColumnHeaders.Clear
For Sutun = 0 To KSm.Fields.Count - 1
' Agen = .Width
' BGen = Agen * Ksm.Fields.Count
If Sutun = 0 Then
.ColumnHeaders.Add , , KSm(Sutun).Name, 50
Else
gen = (.Width - 65)
gen = gen / (KSm.Fields.Count - 1)
.ColumnHeaders.Add , , KSm(Sutun).Name, gen
End If
Next
LWAdi.ListItems.Clear
For Satir = 0 To KSm.RecordCount - 1
On Error Resume Next
For Sutun = 0 To KSm.Fields.Count - 1
If Sutun = 0 Then
' s1.Cells(no, "e").Value = KSm(sutun)
.ListItems.Add , , KSm(Sutun)
Else
On Error Resume Next
' stn = stn + 1
' s1.Cells(no, stn).Value = KSm(sutun)
.ListItems(Satir + 1).SubItems(Sutun) = KSm(Sutun)
' No = KSm(0)
End If
On Error GoTo 0
Next
' No = No + 1
KSm.MoveNext
Next
End If
Bagm.Close
Set KSm = Nothing
Set Bagm = Nothing
End With
End Sub