UPDATE dizininde söz dizim hatası

Katılım
20 Temmuz 2005
Mesajlar
270
iyi akşamlar sayın arkadaşlar, kapalı bir dosyaya UPDATE yapamadığım için bu sorumu sormuştum.arkadaşlar açıklamamı ayrıntılı bir şekilde yapmam konusunda uyardı ve bu başlıkla yeniden yeni konu başlığı açtım.açıklamamı ekte sunduğum uygulamada yaptım.yardım edecek arkadaşların acil çözümlerini bekliyor saygılar sunuyorum.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,284
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Dosyadaki kodların bakılacak standart hanesi ne olacaktır?

Örnek1.xls kod yapısı:
E3= 504-7-4-1-06-5-7-90-382-31-13-01 (12 hane)

bilgi.xls kod yapıları:

504-7-4-1-06-5
504-7-4-1-06-6
504-7-4-1-06-7

701-4-4-2-06-8 (
6 hane)
256-56-05-9 (4 hane)
504-4-1-5-05-6
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodlarınıza aşağıdaki ilaveleri yapınız.

Not: Bilgi dosyasındaki sayfa adını ödenek olarak değiştiriniz.

Kod:
Function hesapla(tutarx, kod1x) As Integer
    Dim MyFile As String, MySh As String
    Dim LookUpRange As String
    Dim ResultRange1 As String
    Dim ResultRange2 As String
    Dim LookUpValue As String
    [B][COLOR=red]Dim topharcama As Double[/COLOR][/B]
 
    toplamx = Empty
    harcananx = Empty
    toptut = Format(tutarx, "0.00")
 
    MyFile = "C:\rapor\bilgi.xls"
    MySh = [B]"[COLOR=red]ödenek[/COLOR]"[/B]
    LookUpRange = "kod"
    LookUpValue = kod1x
    ResultRange1 = "toplam"
    ResultRange2 = "harcanan"
 
    If Dir(MyFile) = Empty Then
        MsgBox MyFile & " dosyasi bulunamadi"
        Exit Function
    End If
    KapDuseyAra MyFile, MySh, LookUpRange, LookUpValue, ResultRange1, ResultRange2
 
    MyMsg = "Toplam = " & Format(toplamx, "0.00") & vbCrLf & "Harcama = " & Format(harcananx, "0.00") & vbCrLf
 
    If harcananx > toplamx Then
       MsgBox MyMsg & "harcama toplamdan büyüktür"
       Exit Function
    Else
       MsgBox MyMsg & "harcama toplamdan küçüktür"
    End If
    MsgBox LookUpValue
 
    topharcama = toptut + harcananx
    MsgBox topharcama
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & MyFile & ";Extended Properties=Excel 8.0;"
    conn.Execute = "update [ödenek$] set harcanan =" & [B][COLOR=red]Val[/COLOR]([/B]topharcama[B]) [/B]& " where kod=" & LookUpValue
    conn.Close
End Function
 
Katılım
20 Temmuz 2005
Mesajlar
270
sayın anemos ve rifat ipek arkadaşlar ilginizden dolayı teşekkür ederim.
sayın anemos
701-4-4-2-06-8 (6 hane) dediğiniz alanı 14 uzunluğunda karakter olarak
kod1 = Strings.Left(Sheets(ad).Cells(3, "E"), 14) kod1 içerisine attığım için bilgi dosyasındada 6 hane değil 14 karakter olarak karşılaştırma yapıyorum.
sayın rifat ipek
göndermiş olduğunuz kodu uyguladım
"toplamx" ile "harcananx"
"KapDuseyAra MyFile, MySh, LookUpRange, LookUpValue, ResultRange1, ResultRange2"
fonksiyonundan boş olarak dönüyor.ve boş olduğu içinde toplam yapamadığından hata veriyor.
bende uğraşacağım ama sizilerinde yardımlarına ihtiyacım var.iyi çalışmalar
 
Katılım
20 Temmuz 2005
Mesajlar
270
sayın rifat ipek arkadaş,
bir önceki mesajımda toplamx ile harcananx sahaları boş geliyor demiştim.daha önce tanımlı olan bu sahaları silmişim.tanımını yaptıktan sonra istediğim UPDATE işlemi oldu çok teşekkür ediyorum.
sayın hocam
"topharcama = toptut + harcananx" ifadesinde "toplamharcama" değişkeni
örneğin
45780,92 değer almasına rağmen update ederken
45780,00 olarak update ediyor.
yani kuruş hanesini almıyor.
update ederken farklı bir yazım türümü var acaba?bunuda çözersek sorunumu halledeceğim.
format işlemleri yaptım ama başarılı olamadım.uğraşmaya devam edeceğim.

sayın anemos sizlerede teşekkür ediyor iyi günler diliyorum.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Peki sadece aşağıdaki satırı değişrirek denermisiniz*
Kod:
conn.Execute = "update [ödenek$] set harcanan =[COLOR=red][B]'[/B][/COLOR]" & topharcama & "[COLOR=red][B]'[/B][/COLOR] where kod=" & LookUpValue
Hata tutarların doğru veri tipine atılmadığından kaynaklanmaktadır.

' işareti tutarları olduğu gibi Text olarak kaydetmektedir.

Fakat tüm denemelerime rağmen çözüm bulamadım.
 
Katılım
20 Temmuz 2005
Mesajlar
270
sayın recep ipek şimdi aldım cevabınızı ve 5 dakika öncede yeniden soru başlığı açmıştım . yazmış olduğunuz kodu denedim ve oldu ne diyeceğimi bilemiyorum.bu saate kadar bu konu ile uğraşıyordum. beni büyük bir dertten kurtardınız çok çok teşekkür ediyor hayırlı akşamlar diliyorum.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Çözüm olduğuna bende sevindim.

Dediğim gibi sorun tutarların doğru veri tipine tanımlanmadığından kaynaklanıyor.

Tanımlarınızı detaylı olarak kontrol ederseniz sanırım çözüm bulabilirsiniz.
 
Katılım
20 Temmuz 2005
Mesajlar
270
sayın recep ipek haklısınız forumdada gördüğüm kadarı ile sizlerin haricinde çoğumuz olayları deneme yanılma metodu ile çözmeye çalışıyoruz.ve sizleride meşgul ediyoruz.şahsen ben balık tutmayı istiyorum.sizleri yoracağını biliyorum ama bu gibi tanımlamaların nerelerde nasıl kullanılacağına dair örnekler çoğaltılabilirmi.sizin yaptığınız gibi açıklamalarda bulunulursa daha faydalı ve kalıcı olacağına inanıyorum.neyse sorunumu hallettiniz ve sizde sorunsuz bir yaşam sürün ve mutlu olun diyorum.iyi akşamlar
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Katılım
20 Temmuz 2005
Mesajlar
270
dediğiniz gibi hayattaki sorunlar da excel gibi kolay çözülse ama olmuyor işte.kişi ve excel karşıkarşıya ama hayatta karşı karşıya kaldığımız o kadar çok kişi varki mücadele etmek zorlaşıyor.yinede umutlu,sevgi dolu olmakta yarar var diyorum.sayın ripek arkadaş iyi günler
 
Üst