- Katılım
- 11 Mart 2005
- Mesajlar
- 3,062
- Excel Vers. ve Dili
- Office 2013 İngilizce
Merhaba,
Aşağıdaki kodda;
1 Nolu safadaki verilere göre 2 nolu sayfadan kriterlere uyan verileri Toplam alarak 1 nolu sayfaya getirmeye çalışıyorum
Dİğer bir deyişle TOPLA.ÇARPIM fonksiyonun yaptığı işlemi yapmaya çalışıyorum.
Yalnız bu şekilde satır-satır işlem yaptığı için çok uzun zaman alıyor,
bu işlemi for .... next döngüsüne girmeden UPDATE ifadesini kullanarak tablomuzda bulunan toplam kayıtları güncellemek mümkün olabilir mi?
iSQL = "Update [1$] SET [Toplam] = " & RS() & "" & _
" WHERE [İş Emri No-1]=" & ie1 & " And [İş Emri No-2]=" & ie2 & " And [Kalite]='" & klt & "'"
bunun benzeri bir sorgu ile hızlandırmak ne derece mümkün olabilir?
teşekkürler,
iyi Çalışmalar.
Aşağıdaki kodda;
1 Nolu safadaki verilere göre 2 nolu sayfadan kriterlere uyan verileri Toplam alarak 1 nolu sayfaya getirmeye çalışıyorum
Dİğer bir deyişle TOPLA.ÇARPIM fonksiyonun yaptığı işlemi yapmaya çalışıyorum.
Yalnız bu şekilde satır-satır işlem yaptığı için çok uzun zaman alıyor,
bu işlemi for .... next döngüsüne girmeden UPDATE ifadesini kullanarak tablomuzda bulunan toplam kayıtları güncellemek mümkün olabilir mi?
iSQL = "Update [1$] SET [Toplam] = " & RS() & "" & _
" WHERE [İş Emri No-1]=" & ie1 & " And [İş Emri No-2]=" & ie2 & " And [Kalite]='" & klt & "'"
bunun benzeri bir sorgu ile hızlandırmak ne derece mümkün olabilir?
teşekkürler,
iyi Çalışmalar.
Kod:
Sub SumSayfa2()
Dim Con As Object
Dim RS As Object
Dim SH As Worksheet, Arr As Variant
Dim myFile As String
Dim uSQL As String, klt As String
Dim LR As Long, i As Long, ub As Long
Dim ie1 As Variant, ie2 As Variant
Set SH = Sheets("1")
LR = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row
Set Con = VBA.CreateObject("adodb.Connection")
Set RS = VBA.CreateObject("adodb.Recordset")
myFile = ThisWorkbook.FullName
Con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
myFile & ";extended properties=""Excel 12.0;Hdr=Yes;IMEX=1"""
ReDim Arr(1 To LR - 1, 1 To 1)
For i = 2 To LR
ie1 = SH.Range("E" & i)
ie2 = SH.Range("F" & i)
klt = SH.Cells(i, "G")
uSQL = "Select Sum(Miktar2) AS Miktar From [2$]" & _
" WHERE [İş Emri No-1]=" & ie1 & " And [İş Emri No-2]=" & ie2 & " And [Kalite]='" & klt & "'"
RS.Open uSQL, Con, 3, 1
Arr(i - 1, 1) = RS(0)
RS.Close
' ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
klt = ""
ie1 = Empty
ie2 = Empty
Next i
ub = UBound(Arr, 1)
SH.Range("N2").Resize(ub, 1).Value = Arr
Con.Close
Set Con = Nothing: Set RS = Nothing
Set SH = Nothing
End Sub