Excelden Veri Tabanını Güncelleme

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhabalar,

Arkadaşlar excelden veri tabanını (oracle) günlemek için kod örneğine gereksinimim var.

Örneğin A sütunu Sicilleri B sütunu da örneğin ücret olsun. Sicili bulup ücretini günleyen basit bir kod örneği olsa benim için yeterli. Nasıl yapıldığını görsem sanırım yeterli olacaktır.

Veri tabanı alanı SICIL ve UCRET, table da PERSON olursa sanırım daha rahat anlarım.

Şimdiden teşekkürler.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Connection sorununuz olmadığını ve sicil sutununun string olduğunu varsayarsak şöyle bir syntax olabilir:
Kod:
update [person]
  set [ucret] = xxx
     where [sicil] = 'yyy'
Burada sicil no = 'yyy' olan kişinin ücreti xxx olarak güncelleniyor.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba Zeki Bey,

Kod için teşekkür ederim update sintaxsını zaten biliyorum, benim derdim, exceldeki her bilgi için mi veri tabanına bağlanacak, onu anlamadım.

Yani excelde 10 satır varsa yapı nasıl olmalı?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Tek connection ve 10 Execute kullanılacak.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Örnek rica etsem?

Connection da dahil olmak üzere, olası mı Zeki Bey?
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhabalar;

Oracle için Connection String'i alttaki adresten alabilirsiniz.

http://www.connectionstrings.com/?carrier=oracle

Kod:
Dim cnn As New ADODB.Connection 
Set cnn = New ADODB.Connection 
cnn.ConnectionString = "oracle connection satırı" 
cnn.Open 
cnn.Execute " update [person] set [ucret] = xxx where [sicil] = 'yyy'; " 
cnn.Close 
Set cnn = Nothing
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın Zeki Bey, Sayın beab05,

Yarın işyerinde deneyeceğim, sonucu bildiririm.

Teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Dim cnn As New ADODB.Connection
Set cnn = New ADODB.Connection
cnn.ConnectionString = "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=necdet;PWD=necdet;SERVER=oracle8;"

kırmızı olan satırda :

Compile error:

User-defined type not defined hatası alıyorum. Birşey eksik ama ne ?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ADO referanslarını ekleyin ya da, değişkenleri Late Binding olarak deklare edin...

.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Aşağıdaki gibi bir kalıp kullanabilirsiniz.

Kod:
Sub DENEME()
    
[COLOR=darkgreen]    'Ref : Microsoft Activex Data Object 2.X Library[/COLOR]
    
    Dim cnn As ADODB.Connection
    Dim sSql As String
    Dim i As Integer
    
    Set cnn = New ADODB.Connection
    
    With cnn
        .ConnectionString = "[COLOR=red]Buraya Connection stringinizi yazın[/COLOR]"
        .Open
    End With
 
    For i = 1 To 10

        sSql = "UPDATE [person] " & _
                    "SET [ucret] =" & Cells(i, 2) & " " & _
                        "WHERE [sicil] = '" & Cells(i, 1) & "'; "

        cnn.Execute (Sql)

 
    Next i
    
    cnn.Close
    Set cnn = Nothing
 
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Çok teşekkürler arkadaşlar.

Ferhat Bey, bütün numara Microsoft Activex Data Object te imiş, onu keşfettim. Günleme işleminde de başarılı oldum. Kodlar aşağıdaki gibi oldu.

Kod:
Sub baglan()
Dim i As Integer
Dim cnn As New ADODB.Connection
Set cnn = New ADODB.Connection
cnn.ConnectionString = "DRIVER={Microsoft ODBC for Oracle};UID=necdet;PWD=sifrem;SERVER=oracle8"
cnn.Open
For i = 2 To [A65536].End(3).Row
    cnn.Execute " update necdet set job = '" & Cells(i, "C") & "' where empno = " & Cells(i, "A")
Next i
cnn.Close
Set cnn = Nothing
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Eee. Necdet hocam, siz lalenin peşinden koşarken; ayağınızın altındaki papatyayı farketmemişsiniz anlaşılan :) Allah başka dert vermesin ...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayenizde yeni bir şey daha öğrenmiş olduk. Artık kim tutar beni :)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Haluk Bey,

Benim bilgisayarımdan başka bir bilgisayarda çalışmayacak :)

O yüzden önemli değil başka bilgisayar :)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,369
Excel Vers. ve Dili
Ofis 365 Türkçe
Limon ne demek Kemal Bey,

Hem öğreneceğiz hem takılacağız, işin sırrı bu :)
 
Üst