AccessTr.neT

Tam Versiyon: Access Runtime Error 3346
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Ustalarım merhaba, bu güne kadar başıma gelmeyen fakat işin içinden çıkamadığım bir sorunla karşı karşıya kaldım. Kafam durdu ben neyi kaçırıyorum acaba.

access runtime error 3346 Sorgu değerleri ile hedef alanların sayısı aynı değil. 

Uğraşmakta olduğum çalışmada bu hatayı alıyoum. Ancak sorunum değerlerle alakalı değil. Sorguyu çalıştırdığımda texbox içindeki değerler içinde küsüratlı değerler varsa sonuç bu oluyor. Eğer sonuç küsüratlı değilse sorgu çalışıyor ve kayıt işlemi gerçekleşiyor. 0,40 * 2 = 0,80 olduğunda yukarıdaki hatayı alıyorum. Eğer sonuç 0,50*2=1 olursa sorun çıkmıyor. Sizce neyi atlıyorum ben kafam karıştı iyice. Veritabanı içindeki değerler sayı olarak giriliyor. Ondalıklı olan kısımdada sorun gözükmüyor. Ama formdan çekmeye çalıştığımda sonuç hüsran. Yardımlarınız için şimdiden teşekkür ederim. Sorguda hata olduğunu sanmıyorum. Ancak incelerseniz sevinirim. Şimdiden teşekkürler....


CurrentDb.Execute "INSERT INTO stok ( malzeme1c, malzeme2c, malzeme3c, malzeme4c, malzeme5c, malzeme6c, malzeme7c, malzeme8c, malzeme9c, malzeme10c, malzeme11c, malzeme12c, malzeme13c, malzeme14c, malzeme15c, malzeme16c, malzeme17c, malzeme18c, malzeme19c, malzeme20c, malzeme21c, malzeme22c, malzeme23c, malzeme24c ) " & _

"VALUES(" & Me.maal1 & "," & Me.maal2 & "," & Me.maal3 & "," & Me.maal4 & "," & Me.maal5 & "," & Me.maal6 & "," & Me.maal7 & "," & Me.maal8 & "," & Me.maal9 & "," & Me.maal10 & "," & Me.maal11 & "," & Me.maal12 & "," & Me.maal13 & "," & Me.maal14 & "," & Me.maal15 & "," & Me.maal16 & "," & Me.maal17 & "," & Me.maal18 & "," & Me.maal19 & "," & Me.maal20 & "," & Me.maal21 & "," & Me.maal22 & "," & Me.maal23 & "," & Me.maal24 & ")"
burdan anladıgımız kadarıyla sizin (0,50*2=1 ) şeklinde kullandıgınız yerde ölçüt hatası var yani (virgüllü) girdiğiniz için hata alıyorsunuz,o alanı text alanı yapmalısınız,yada ondalıklı sayıyı  string'e çevirmelisin.
yani birde '" & Me.xxxxxx & "' şeklinde deneyin
veri tabanınızda, ondalık alan yapar iseniz sorun ortadan kalkar. bunun için sayı seçtikten sonra çift özelliğini aktif edin ve küsürat kaç haneden olacak onu belirtin. mesala diyelim küsürat olarak 2 hane belirtiniz. üç hane olunca hata vermemesi için, yuvarla yani round özelliği ile 2 haneye yuvarlatın.

round(Me.maal6;2) 

derseniz 0,2*0,08 = 0,016 yapar 

round 2 hane ayarladığınız için 0,02 sonucu döndürür.
Arkadaşlar yardımlarınız için çok teşekkür ederim. Sorun çözülmüştür. Düzeltilen kod aşağıdadır.

Belki birine daha lazım olur. Çok teşekkür ederim sayın TARUZ Hocam... SORUN ÇÖZÜLMÜŞTÜR.

"VALUES(" & Me.maal1 & "," & Me.maal2 & "," & Me.maal3 & "," & Me.maal4 & "," & Me.maal5 & "," & Me.maal6 & "," & Me.maal7 & "," & Me.maal8 & "," & Me.maal9 & "," & Me.maal10 & "," & Me.maal11 & "," & Me.maal12 & "," & Me.maal13 & "," & Me.maal14 & "," & Me.maal15 & "," & Me.maal16 & "," & Me.maal17 & "," & Me.maal18 & "," & Me.maal19 & "," & Me.maal20 & "," & Me.maal21 & "," & Me.maal22 & "," & Me.maal23 & "," & Me.maal24 & ")"

Düzenlenen kod şekli budur.

VALUES(" & Replace(Me.maal1, ",", ".") & "," & Replace(Me.maal2, ",", ".") & ",
"VALUES(" & Me.maal1 & "," & Me.maal2 & "," & Me.maal3 & "," & Me.maal4 & "," & Me.maal5 & "," & Me.maal6 & "," & Me.maal7 & "," & Me.maal8 & "," & Me.maal9 & "," & Me.maal10 & "," & Me.maal11 & "," & Me.maal12 & "," & Me.maal13 & "," & Me.maal14 & "," & Me.maal15 & "," & Me.maal16 & "," & Me.maal17 & "," & Me.maal18 & "," & Me.maal19 & "," & Me.maal20 & "," & Me.maal21 & "," & Me.maal22 & "," & Me.maal23 & "," & Me.maal24 & ")"



Kodu bu şekilde devam ettirmem gerkiyor ancak satır sonuna vardık. Alta bir türlü geçemiyorum. Alt satıra geçtiğimde hata alıyorum. ," & Me.maal23 & "," & Me.maal24 & ")"  & _ şeklinde yapıyorum ama olmuyor... 
Merhaba, örnek uygulamanızı eklerseniz inceleyebiliriz.
Sayfalar: 1 2 3