[VBA] runtime 3346 hatası (puantaj)
#1
access-sql-17 
Merhaba,

Sayın Sezgin beyin hazırlamış olduğu, günlük puantaj tutmak için kullandığım kodlarda biraz değişiklik yapmam gerekti. Yalnız bu değişiklik sonrasında runtime 3346 hatası almaya başladım. Örnek dosyamı da ekliyorum ve içerisinde etiketlerle anlatım da yaptım. (kullanıcı "user" şifre "123")

Sezgin beyin bana verdiği kodlar şu şekildeydi;

Visual Basic
  1. CurrentDb.Execute "INSERT INTO t_cetele ( guzergah_id, plaka_gir, tek_sayisi, tarih, firma_fiyat, tedarik_fiyat ) " _
  2. & "SELECT " & Me.guzergah_id & ", '" & Me.plaka_gir & "', " & IIf(Weekday(Trh, vbMonday) = 6 And Me.cmt = -1, 0, IIf(Weekday(Trh, vbMonday) = 7 And Me.pzr = -1, 0, tek_sayisi)) & ", #" & Format(Trh, "mm\/dd\/yyyy") & "#, " & Nz(DLookup("Nz([t_firma_fiyat],0)", "t_fiyatlar", "[guzergah_id]=" & Me.guzergah_id), 0) & ", " & Nz(DLookup("Nz([t_tedarik_fiyat],0)", "t_fiyatlar", "[guzergah_id]=" & Me.guzergah_id), 0)



yaptığım değişiklikle şu şekilde oldu;

Visual Basic
  1. CurrentDb.Execute "INSERT INTO t_cetele ( guzergah_id, plaka_gir, tek_sayisi, tarih, firma_fiyat, tedarik_fiyat ) " _
  2. & "SELECT " & Me.guzergah_id & ", '" & Me.plaka_gir & "', " & IIf(Weekday(Trh, vbMonday) = 6 And Me.cmt = -1, 0, IIf(Weekday(Trh, vbMonday) = 7 And Me.pzr = -1, 0, tek_sayisi)) & ", #" & Format(Trh, "mm\/dd\/yyyy") & "#, " & Me.f_fiyatgor.Form!gunluk_fiyat & ", " & Nz(DLookup("Nz([t_tedarik_fiyat],0)", "t_fiyatlar", "[guzergah_id]=" & Me.guzergah_id), 0)



Daha önce firma fiyatına tablodan bakmaktaydı. önceki halini servis araçları için başka bir puantaj formunda kullanmaktayım. Servis araçlarının fiyatları günlük fiyat yazdığı için sorun olmuyordu.
Bu formda filo araçlarının puantajları tutulacak ve fiyat, aylık fiyat üzerinden girilmekte. bu yüzden sorgularla aylık girilen fiyatı, ayın günü sayısına böldürerek günlük fiyatını hesaplatarak puantaj tablosuna işlemesi gerekmekte.

ikinci sıkıntım ise;
puantaj formum üzerinde ayın gününü hesaplattığım bir metin kutum mevcut. denetim kaynağı şu şekil;

=DateDiff("d";[t2]-(Day([t2]-1));DateSerial(Year([t2]);(Month([t2])+1);1))

t1 kutusundan başlangıç tarihi, t2 kutusundan bitiş tarihini seçiyorum.
formül t2 kutusundaki tarihin ay kısmını baz alarak hesap yapmakta.
şubatsa sonuç 29 oluyor.
yalnız şöyle bir sıkıntı oluyor,
t1 01.02.2016 / t2 01.02.2016 seçtiğimde formül sonucu 60 hesaplıyor.
02.02.2016 / 02.02.2016 yada farklı bir gün için t1 ve t2 aynı seçtiğimde sonuç 29
sadece ayın 1'i için 60 hesaplamakta. nedenini anlayamadım. bu konuda da yardımlarınızı rica ediyorum.

şimdiden ilgilenen herkese teşekkür ederim.


Eklenti Dosyaları
.rar   aractakip.rar (Boyut: 712,04 KB / İndirilme: 61)



  Alıntı
Bu mesajı beğenenler:
#2
güncel.....



  Alıntı
Bu mesajı beğenenler:
#3
gunsay deyimini =DateDiff("d"; DateSerial(Year(t1); Month(t1); 1) - 1; DateAdd("d"; -IIf(Month(DateSerial(Year(t1); Month(t1); 31)) > Month(t1); Day(DateSerial(Year(t1); Month(t1); 31)); 0); DateSerial(Year(t1); Month(t1); 31)))


Private Sub Komut33_Click()
...
CurrentDb.Execute "INSERT INTO t_cetele ( guzergah_id, plaka_gir, tek_sayisi, tarih, firma_fiyat, tedarik_fiyat ) " _
& "SELECT " & CLng(Me.guzergah_id) & ", '" & Me.plaka_gir & "', " & IIf(Weekday(Trh, vbMonday) = 6 And Me.cmt = -1, 0, IIf(Weekday(Trh, vbMonday) = 7 And Me.pzr = -1, 0, tek_sayisi)) & ", #" & Format(Trh, "mm\/dd\/yyyy") & "#, " & Replace(Me.f_fiyatgor.Form!gunluk_fiyat, ",", ".") & ", " & Nz(DLookup("Nz([t_tedarik_fiyat],0)", "t_fiyatlar", "[guzergah_id]=" & Me.guzergah_id), 0)
...
End Sub

koyu olan yerleridegistirin. fiyati VBA ya alininca ondalik ayrac (virgul) SQL'i etkilemekte, guzergah_id ise veri tipi metin olarak tabloya eklenemiyor.



  Alıntı
Bu mesajı beğenenler:
#4
Merhaba Sezgin bey,

Yine hızır gibi yetiştiniz Allah razı olsun. puantaj sıkıntım çözüldü çok teşekkür ederim.
Fakat gunsay için verdiğiniz deyim t1 ve t2 arasındaki gün sayısını hesaplıyor. Benim istediğim ilgili ayın gün sayısını bulmak. Ben yine denemeler yapacağım. Sizin de bu konuyla ilgili fikriniz olursa çok memnun olurum.



  Alıntı
Bu mesajı beğenenler:
#5
sorunumu çözdüm

gunsay deyimini =Day(DateSerial(Year([t2]);Month([t2])+1;0)) seklinde yapınca oldu.
şu an t2 de seçtiğim aya göre sonuca ulaşabiliyorum.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [SORGU] Puantaj Sorguda Isim Gelmiyor VARLIK66 6 266 09-01-2023, 10:19
Son Mesaj: onur_can
  [FORM] personel takip-puantaj-stok takip personel kartı açılmıyor mustafa.sogutlu 5 2.967 27-12-2022, 14:33
Son Mesaj: metınaycıcek
  Puantaj Programı V07 IceMan7 5 2.764 14-05-2021, 21:38
Son Mesaj: kamil_55
  Geçerlilik Kuralı Hatası (check Hatası) adnnfrm 5 650 24-03-2021, 21:38
Son Mesaj: halily
  [FORM] Puantaj Kayıt Formlarında Kayıt Hataları M_Kemal_Askeri 11 1.002 26-02-2021, 15:27
Son Mesaj: M_Kemal_Askeri
  MS Access 1 kaydı anahtar hatası yüzünden tabloya ekleyemiyor" hatası Access70 2 643 24-05-2020, 18:18
Son Mesaj: Access70
  [RAPOR] Puantaj çalıştırmak omurozkan 4 675 16-04-2020, 12:33
Son Mesaj: omurozkan
  [FORM] Runtime blumanx 3 542 26-11-2019, 13:15
Son Mesaj: blumanx

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi