- Katılım
- 11 Mart 2005
- Mesajlar
- 3,102
- Excel Vers. ve Dili
- Office 2013 İngilizce
Çok teşekkür ederim Halil Hocam iyiki varsınız!kodun son hali, x1 için sıralama işlemi yok
Kod:Sub SorguAdet_hy_5_2() Dim Con As Object Dim Sorgu As String Dim yol As String Application.ScreenUpdating = False Set Con = VBA.CreateObject("adodb.Connection") yol = ThisWorkbook.FullName Sayfa2.Activate Sayfa2.Cells.ClearContents '___________________________________________________________ 'Dim DzK() As Variant 'DzK = Sayfa3.Range("A1:C4") Set dict = CreateObject("Scripting.Dictionary") dict.Add 1, Array(5, 3) dict.Add 0, Array(2, 4) dict.Add 2, Array(3, 3) '___________________________________________________________ Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _ yol & ";extended properties=""Excel 12.0;hdr=yes""" Sorgu = Sorgu & "Select top 3 * From [Data$] Where x1=1 And x2=1 " & vbNewLine & "union all " & vbNewLine Sorgu = Sorgu & "Select top 2 * From [Data$] Where x1=0 And x2=0 " & vbNewLine & "union all " & vbNewLine Sorgu = Sorgu & "Select top 3 * From [Data$] Where x1=2 And x2=2 " Set rs = Con.Execute(Sorgu) Sayfa2.Range("A2").CopyFromRecordset rs x = 1 For Each baslik In rs.Fields Sayfa2.Cells(1, x) = baslik.Name x = x + 1 Next baslik rs.Close Sorgu = "Select * From [Data$] Where x1<>x2 " '____________________________________ Set rsH = CreateObject("adodb.recordset") rsH.CursorType = 1 ' adOpenKeyset rsH.LockType = 3 ' adLockOptimistic rsH.Open "select * from [Rapor$]", Con ', 1, 3 Set RsK = Con.Execute(Sorgu) With RsK 'loop If Not .BOF And Not .EOF Then .MoveFirst While (Not .EOF) rsH.Filter = "x1=" & RsK("x1"): If rsH.RecordCount = dict(Val(RsK("x1")))(0) Then GoTo 10 rsH.Filter = "x2=" & RsK("x2"): If rsH.RecordCount = dict(Val(RsK("x2")))(1) Then GoTo 10 rsH.addnew For x = 0 To rsH.Fields.Count - 1 rsH(x) = RsK(x) Next x rsH.Update 10 .MoveNext Wend End If End With Con.Close Application.ScreenUpdating = True End Sub
şimdi benim bu alagoritmayı iyice bir içselleştirdikten sonra biraz geliştirmek istiyorum.
Örnek: şimdiye kadar 2. alanı (x1, x2) kontrol ediyorduk, şimdi bana düşen aynı şekilde 3. alanı da (x3) buraya entegre etmek olacak
Selamlar, Saygılar.