Sql De #fonk! Hatasının Ayıklanması Hk.
#1
Herkese Merhaba;

Sql de bir alana ilişkin bir dizi left, right,InStr fonksiyonları kullanarak sonuç türetiyorum. Fakat bazı veriler istediğim şablonda olmadığı için #Fonk! hatası alıyorum. Sorguda böyle tipte hata alırsam (#Fonk! , #Hata hata ingilizce karşılıkları #Func!, #Error! vb. ) İlgili alana "-" Tire yazdırarak geçmek istiyorum. Webde aşağıdaki gibi bir çözüm buldum fakat bende çalışmadı. 


Visual Basic
  1. Public Function SplitStore(ByVal value_ As String) As String
  2.  
  3.    If InStr(1, value_, "#") = 0 Then
  4.        SplitStore = value_
  5.        Exit Function
  6.    End If
  7.  
  8.    Dim arr As Variant
  9.        arr = Split(value_, "#")
  10.  
  11.    SplitStore = "#" & Format(arr(1), "000") & " -" & arr(0)
  12. End Function




Yardımlarınız için şimdiden teşekkür ederim.

Saygılarımla


Eklenti Dosyaları
.jpg   hata.JPG (Boyut: 15,21 KB / İndirilme: 41)



  Alıntı
Bu mesajı beğenenler:
#2
Örnek hazırlamaya çalışıp, kodunuzu denemek istedim, hatalı satırları elde edemedim.
konuya örnek dosya eklerseniz, bakılabilir.



  Alıntı
Bu mesajı beğenenler:
#3
dsezgin hocam;

Direkt sql de 0/0 yada 1/0 gibi bir hesaplama yaptırırsanız #Sayı hatası veriyor mesela.



  Alıntı
Bu mesajı beğenenler:
#4
Hesaplama işlemini VBA yapılması ve hata durumunda cevaba eksik yazdırılması yapılabilir.

Visual Basic
  1. Public Function SplitStore(ByVal value1 As String, ByVal value2 As String) As String
  2. On Error GoTo HATA
  3. Dim Sonuc As Long
  4. SplitStore = (value1 / value2)
  5. Exit Function
  6. HATA:
  7. If Eval(Err & " In (6, 11)") Then SplitStore = "#" & Format(value2, "000") & "-" & value1
  8. End Function





  Alıntı
Bu mesajı beğenenler:
#5
@dsezgin hocam sorun galiba fonksiyondan değil fonksiyon sonucunun sorgu içinde ayrı bir işlemde kullanılmasından kaynaklanıyor. iif ve IsError  bileşiminden oluşan hata kontrolü bile işe yaramadı



  Alıntı
Bu mesajı beğenenler:
#6
(18-08-2023, 18:00)halily demiş ki: sorun galiba fonksiyondan değil fonksiyon sonucunun sorgu içinde ayrı bir işlemde kullanılmasından kaynaklanıyor. iif ve IsError  bileşiminden oluşan hata kontrolü bile işe yaramadı

Sn halily, adnan Hocam;
VBA ya düşürülmesi gereken hesaplama sonucunu öncelikle hata tanımlaması yaparak bos değer atıyor. SQL de tire pozisyonu için en basit kontrol ile
IIf([a]=0 Or [b]=0;"-";[a]/[b]) seklinde yapılabilir. ADO ve DAO da SQL'in verileri de hesaplanmış alan bos değer gözükmekte.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-18 [VBA] windows 7 Permission Denied hatasının sebebi nedir? (FSO.CopyFile) Mehmet Eser 2 2.586 26-12-2012, 14:26
Son Mesaj: Mehmet Eser

Foruma Git:


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