• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Soru ado.recordset

blgisl

Yeni Üye
Katılım
8 Eki 2021
Mesajlar
24
Aldığı beğeni
3
Excel V
Office 2010 EN
GELEN_BILGI Sayfasındaki kayıtları FNO ya göre tek tek TESCILLER Sayfasında arayacak bulduklarını yeni sayfaya kaydececek bir sorgu yaptım ancak GELEN_BILGI Sayfasındaki ilk kaydı yapıyor ikinci kayda gelmeden hata veriyor. dosya ekdedir.
 

Ekli dosyalar

Fatura Numarasına göre izah edersem şayet KRD202000041 numaralı fatura tutarı GELEN BILGI sayfasında 9,027.2 TESCILLER sayfasında
toplam 37,866.7 aradaki fark =28,839.5 rakamını bulmalıyım.
Emin miyiz?
 
fark adlı bir sayfa oluşturup aşağıdaki fonksiyonu dener misiniz?
Kod:
Sub FarkBul()

'Excel Excel Bağla Referanslı _________________________________________________

Dim SQL As String
Dim ADO_RS As ADODB.Recordset
Dim ADO_CN As ADODB.Connection

SQL = "SELECT G.FNO, T.ToplaTutar AS Tescil, G.ToplaTUTAR AS Genel, [Genel]-[Tescil] AS Fark " & _
      "FROM " & _
      "(SELECT [TESCILLER$].FatMus_IlkNo, Sum([TESCILLER$].Tutar) AS ToplaTutar " & _
      "FROM [TESCILLER$] " & _
      "GROUP BY [TESCILLER$].FatMus_IlkNo) as T " & _
      "INNER Join " & _
      "(SELECT [GELEN_BILGI$].FNO, Sum([GELEN_BILGI$].TUTAR) AS ToplaTUTAR " & _
      "FROM [GELEN_BILGI$] " & _
      "GROUP BY [GELEN_BILGI$].FNO) as G " & _
      "ON T.FatMus_IlkNo = G.FNO " & _
      "GROUP BY G.FNO, T.ToplaTutar, G.ToplaTUTAR;"


Set ADO_RS = New ADODB.Recordset
Set ADO_CN = New ADODB.Connection

ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & _
                          ";extended properties=""excel 8.0;hdr=Yes"""
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1 ' güncelleme yapabilmek için 1,3 0lmalı yada  adOpenKeyset, adLockOptimistic
'
'   Eğer Hiç Kayıt Yoksa
If ADO_RS.RecordCount = 0 Then
    MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok"
    GoTo son
End If
ADO_RS.MoveLast
ADO_RS.MoveFirst
Sheets("Fark").Cells.Clear
For x = 1 To ADO_RS.Fields.Count
    Sheets("Fark").Cells(1, x) = ADO_RS(x - 1).Name
Next x
 Sheets("Fark").Range("A2").CopyFromRecordset ADO_RS

son:
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing

End Sub
 
Fatura Numarasına göre izah edersem şayet KRD202000041 numaralı fatura tutarı GELEN BILGI sayfasında 9,027.2 TESCILLER sayfasında
toplam 37,866.7 aradaki fark =28,839.5 rakamını bulmalıyım.
Bu farkı gelen bilgi ekranında tablonun yanındaki şütuna yazdığında işinizi görecekse ÇOKETOPLA formülü ile makro olmadan çözebilirsiniz.
 
Geri
Üst