• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excelden Veri Tabanını Güncelleme

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,618
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.
 
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.
 
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ı?
 
Tek connection ve 10 Execute kullanılacak.
 
Örnek rica etsem?

Connection da dahil olmak üzere, olası mı Zeki Bey?
 
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
 
Sayın Zeki Bey, Sayın beab05,

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

Teşekkürler.
 
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 ?
 
ADO referanslarını ekleyin ya da, değişkenleri Late Binding olarak deklare edin...

.
 
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
 
Ç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
 
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 ...
 
Sayenizde yeni bir şey daha öğrenmiş olduk. Artık kim tutar beni :)
 
Haluk Bey,

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

O yüzden önemli değil başka bilgisayar :)
 
Limon ne demek Kemal Bey,

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