Skip to main content

AccessTr.neT


Update Deyiminde Sözdizimi Hatası (Run Time Error -2147217900 "(80040e14)" hatası

Update Deyiminde Sözdizimi Hatası (Run Time Error -2147217900 "(80040e14)" hatası

Sad #13
feraz selam,

Doğru hatırlıyorsun, güncelleme işlemini sayı biçimlerini de değiştirince başarmıştık, ama hatırlarsan eksik kaldı, şöyle ki birim fiyatlar tam sayı halini aldı ( Örnek (13,90 = 14,00 TL oldu gibi )

Veritabından sayı biçimlerini tekrar eski haline getirip denedim bu kez farklı bir hata verdi ? Anlamadım
Cevapla
#14
Selam abey,@berduş hocamız halleder Allah'ın izniyle.
Cevapla
#15
(15/04/2020, 21:33)feraz yazdı: Selam abey,@berduş  hocamız halleder Allah'ın izniyle.

Artık kısmet,  sayin @feraz 

Saglicakla kal.
Cevapla
#16
1 - textbox1 değerini nereden alıyor?
2 - güncelleme yapabilmem için neler yapılmalı adım adım anlatır mısınız?
hangi kutulara hangi değerler atanmalı

kodun ilgili kısmını aşağıdakiyle değiştirip dener misiniz?
Not: normalde seçilen ürünün Idinin otomatik gelmesi gerekmez mi?
anahtar alanı neden elle giriliyor? anahtar değerini elle girince sorunsuz güncelledi

Kod:
Dim id As Long

Dim brüt As String
Dim fyt As String
Dim isk1 As String
Dim isk2 As String
Dim isk3 As String
Dim mktr As String
Dim tutar As String
Dim vergi As String
'dogru tanimladimmi ondalikli olarak  bir deneyin accesste nasil olacak sonuc


id = TextBox1.Value
brüt = Replace(TextBox10.Value, ",", ".")
fyt = Replace(TextBox9.Value, ",", ".")
isk1 = Replace(TextBox46.Value, ",", ".")
isk2 = Replace(TextBox47.Value, ",", ".")
isk3 = Replace(TextBox48.Value, ",", ".")
vergi = Replace(TextBox49.Value, ",", ".")
mktr = Replace(TextBox8.Value, ",", ".")
ser1 = TextBox24.Value
ser2 = TextBox25.Value
ser3 = TextBox26.Value
ser4 = ComboBox5.Value
stkad = TextBox7.Value
stkkd = ComboBox4.Value
tutar = Replace(TextBox23.Value, ",", ".")

Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.Path & "\veritabani.mdb"

StrTcVr = IIf(Len(TextBox46) = 0, ", İskonto1=Null", ", İskonto1=" & isk1) & IIf(Len(TextBox47) = 0, ",İskonto2=Null", ",İskonto2=" & isk2) & IIf(Len(TextBox48) = 0, ",İskonto3=Null", ",İskonto3=" & isk3)


  SqlG = "UPDATE SiparisKayitlari SET Stok_Kodu='" & stkkd & "'" & ",Stok_Adi='" & stkad & "',Miktar=" & mktr & _
  ",Fiyat=" & fyt & ", BrütTutar=" & brüt & "" & _
  ",İskonto1=" & isk1 & ",İskonto2=" & isk2 & ",İskonto3=" & isk3 & " ,Tutar=" & tutar & ",KDV=" & vergi & _
  ",Serbest_1='" & ser1 & "',Serbest_2='" & ser2 & "',Serbest_3='" & ser3 & "',Serbest_4=" & ser4 & " WHERE kimlik = " & id
               

baglan.Execute (SqlG)

Set baglan = Nothing

bu arada serbest alanlarının türü ne? ilk 3ü metin 4.sü uzun tam sayı mı? ilk 3ünü metin gerisi sayı gibi ayarladım ama açıkçası emin olamadım
ayrıca alanlarınızda her hangi bir sınırlandırma görmedim serbest4 alanı uzun tamsayı ama ilişkili metine virgüllü sayı da girilebiliyor.
deneme yaparken "serbest" alanlarına virgüllü sayı girmeden deneyin
yada aşağıdaki gibi ama yukardaki uyarılar burada da geçerli
Kod:
Dim id As Long

Dim brüt As Double
Dim fyt As Double
Dim isk1 As Double
Dim isk2 As Double
Dim isk3 As Double
Dim mktr As Double
Dim tutar As Double
Dim vergi As Double
'dogru tanimladimmi ondalikli olarak  bir deneyin accesste nasil olacak sonuc


id = TextBox1.Value
brüt = TextBox10.Value
fyt = TextBox9.Value
isk1 = TextBox46.Value
isk2 = TextBox47.Value
isk3 = TextBox48.Value
vergi = TextBox49.Value
mktr = TextBox8.Value
ser1 = TextBox24.Value
ser2 = TextBox25.Value
ser3 = TextBox26.Value
ser4 = ComboBox5.Value
stkad = TextBox7.Value
stkkd = ComboBox4.Value
tutar = TextBox23.Value

Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.Path & "\veritabani.mdb"

StrTcVr = IIf(Len(TextBox46) = 0, ", İskonto1=Null", ", İskonto1=" & isk1) & IIf(Len(TextBox47) = 0, ",İskonto2=Null", ",İskonto2=" & isk2) & IIf(Len(TextBox48) = 0, ",İskonto3=Null", ",İskonto3=" & isk3)


  SqlG = "UPDATE SiparisKayitlari SET Stok_Kodu='" & stkkd & "'" & ",Stok_Adi='" & stkad & "',Miktar=" & mktr & ",Fiyat=ccur('" & fyt & _
  "'), BrütTutar=ccur('" & brüt & "')" & _
  ",İskonto1=ccur('" & isk1 & "'),İskonto2=ccur('" & isk2 & "'),İskonto3=ccur('" & isk3 & "') ,Tutar=ccur('" & tutar & "'),KDV=ccur('" & vergi & "')" & _
  ",Serbest_1='" & ser1 & "',Serbest_2='" & ser2 & "',Serbest_3='" & ser3 & "',Serbest_4=" & ser4 & " WHERE kimlik = " & id

baglan.Execute (SqlG)

Set baglan = Nothing

bu arada dikkatimi çekti aynı siparişNo'dan birden fazla vara mesela "X00000000001"den 5 tane var daha önceki bir konunuzda eklediğimiz kod düzgün çalışmıyor mu?
Cevapla
#17
@berduş hocam selam,

En son sorunuzdan başlayayım,

Aynı sipariş numarasından birden fazla var çünki aynı sipariş içinde birden çok kalem ürün oluyor, Stok_Adi alanına bakarsanız sipariş numarası tek ama ürünler farklı .. gibi,

Serbest1, 2,3,4 alanları sayısal olacak, deneme yanılma yöntemiyle sorunu çözmeye çalışırken öyle kalmış demekki

Textbox1 değerini şuradan alıyor,

Sipariş Numarası yanındaki kutucuğa tıklıyoruz, içeride kayıtlı siparişlerden birine çift tık yapıyoruz, ilgili siparişe ait kayıtlar userform'a geliyor, Kalem bilgileri sayfasında değiştirmek istediğim kaleme çift tıkladığımda textbox1 e o satırın kimlik numarasını alıyor..

Kodlarınızı akşam seve seve deneyeceğim hocam, çalışmasada emek verip uğraşmıssınız Allah rası olsun.. Sağolun..

Hocam birde iskontolardan biri boş ise güncelleme yapmıyordu,

Textboxlar boş ise update yapmıyor, onla ilgili nasıl bir çözüm bulabiliriz.
Son Düzenleme: 16/04/2020, 17:48, Düzenleyen: kanakan52.
Cevapla
#18
Serbest1,2, ve 3 alanları tabloda metin olarak geçiyordu,
Serbest4 ise uzun tamsayı olarak geçiyordu o nedenle o şekilde ayarladım.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task