cavanoos
Altın Üye
- Katılım
- 17 Aralık 2008
- Mesajlar
- 781
- Excel Vers. ve Dili
- Microsoft 365
Merhaba arkadaşlar;
Alttaki makro kodumda veritabanına bağlanıp kayıt atıyorum.Elimdeki veri 2000 satırdan oluşuyor.Veritabanına ise 2000 kayıt atamıyor.300 gibi kayıt atabiliyor.Her çalışmasında.
Yapmak istediğim şey,alttaki makro kodu çalıştıktan sonra,300 kayıt içeri atıldıktan sonra,301.satırda eğer satır dolu ise bir başka makroyu çalıştırmak istiyorum.Eğer boş ise kayıt edildi uyarısı versin mesela.
Ya da 2000 satırı bir kerede atacağım bir makro kodu mevcut mu?Nasıl yapılabilir?
Yardım edebilir misiniz ?
Sub kaydet()
Dim cn As ADODB.Connection
Dim cm As ADODB.Command
Set cn = New ADODB.Connection
Set cm = New ADODB.Command
cn.connectionstring = "Driver={SQL Server};Server=teanserver;Database=open;Uid=uuuu;p wd=cava"
cn.Open
If cn.State = adStateOpen Then
cm.ActiveConnection = cn
cm.CommandType = adCmdText
cm.CommandText = ""
For i = 4 To 300
If Range("L" + Trim(Str(i))).Value2 <> "" Then
cm.CommandText = cm.CommandText + Range("L" + Trim(Str(i))).Value2 + ";"
Else
Exit For
End If
Next
cm.Execute
Set cn = Nothing
Else
MsgBox ("Bağlantı Kurulamıyor!!")
End If
MsgBox ("Kayıt edildi.")
End Sub
Alttaki makro kodumda veritabanına bağlanıp kayıt atıyorum.Elimdeki veri 2000 satırdan oluşuyor.Veritabanına ise 2000 kayıt atamıyor.300 gibi kayıt atabiliyor.Her çalışmasında.
Yapmak istediğim şey,alttaki makro kodu çalıştıktan sonra,300 kayıt içeri atıldıktan sonra,301.satırda eğer satır dolu ise bir başka makroyu çalıştırmak istiyorum.Eğer boş ise kayıt edildi uyarısı versin mesela.
Ya da 2000 satırı bir kerede atacağım bir makro kodu mevcut mu?Nasıl yapılabilir?
Yardım edebilir misiniz ?
Sub kaydet()
Dim cn As ADODB.Connection
Dim cm As ADODB.Command
Set cn = New ADODB.Connection
Set cm = New ADODB.Command
cn.connectionstring = "Driver={SQL Server};Server=teanserver;Database=open;Uid=uuuu;p wd=cava"
cn.Open
If cn.State = adStateOpen Then
cm.ActiveConnection = cn
cm.CommandType = adCmdText
cm.CommandText = ""
For i = 4 To 300
If Range("L" + Trim(Str(i))).Value2 <> "" Then
cm.CommandText = cm.CommandText + Range("L" + Trim(Str(i))).Value2 + ";"
Else
Exit For
End If
Next
cm.Execute
Set cn = Nothing
Else
MsgBox ("Bağlantı Kurulamıyor!!")
End If
MsgBox ("Kayıt edildi.")
End Sub
